行位结束符引起的问题

CRLF 二进制 十进制 十六进制 八进制 字符/缩写 解释 00001010 10 0A 012 LF/NL(Line Feed/New Line) 换行键 00001101 13 0D 085 CR (Carriage Return) 回车键 CR代表回车符,LF代表换行符。 这两个符号本身都是不可见的。 如果打印出来 CR 会显示 \r LF 会显示 \n 不同系统的行结束符 Linux系统和Mac换行符是 \n Windows系统的换行符是 \r\n 如何区分文件的换行符? 可以使用od命令 od -bc index.md 假如文件的原始内容如下 - 1 - 2 注意012是八进制的数,十进制对应的数字是10,也就是换行符。 0000000 055 040 061 012 055 040 062 - 1 \n - 2 0000007 如果用vscode打开文件,也能看到对应的文件格式,如LF。 换行符的的差异会导致哪些问题? shell脚本问题 如果bash脚本里包含CRLF, 可能导致脚本无法解析等各种异常问题。 例如下面的报错,docker启动shell脚本可能是在windows下编写的。所以脚本无法 standard_init_linux.go:211: exec user process caused "no such file or directory" 如何把windows文件类型转为unix? # 可以把windows文件类型转为unix dos2unix file 如果是vscode,也可以点击对应的文件格式按钮。 ...

2023-01-16 15:03:03 · 1 分钟 · Eddie Wang

NUC11 安装 Deepin 20.2.4

硬件 内存:金士顿 16*2;869元 固态硬盘: 三星980 1TB; 799元 主机:NUC11 PAHI7; 4核心八线程;3399元 累计5000多一点, 是最新版Macbook pro M1prod的三分之一 启动盘制作 ventoy:试了几次,无法开机,遂放弃 rufus:能够正常使用;注意分区类型要选择GPT。最新款的一些电脑都是支持uefi的,所以选择GPT分区,一定没问题。 U盘启动 开机后按F2, 里面有一个是设置BIOS优先级,可以设置优先U盘启动 磁盘分区 因为之前设置了默认的整个磁盘分区,根目录只有15G, 太小了,所以我选择手动分区 先设置一个efi分区,就用默认的300M就可以,默认弹窗出来,是不需要设置挂在目录的 设置根分区 /, 我分了300G 设置/home分区,剩下的磁盘都分给他 我没有设置swap分区,因为我觉得32G内存够大,不需要swap 其他 后续的配置非常简单,基本点点按钮就能搞定 体验 总体来说,安装软件是最舒服的一件事。不需要像安装manjaro那样,到处找安装常用应用的教程。只需要打开应用商店,点击下载就可以了。 整个安装过程,我觉得磁盘分区是最难的部分。其他都是非常方便的。 感觉深度的界面很漂亮,值得体验 问题 NUC自带的麦克风无法外放声音,插有线耳机也不行,只有蓝牙耳机能用

2022-12-17 13:28:40 · 1 分钟 · Eddie Wang

Wireshark 使用技巧

0. 前提条件 wireshark 4.0.2 1. 时间显示 wireshark的默认时间显示是抓包的相对时间, 如果我们时间按照年月日时分秒显示,就需要进行如下设置: 视图->时间显示格式->选择具体的时间格式 2. UDP解码为RTP 方案1 在一个包UDP包上点击右键,出现如下弹框,选择Decode As 再当前值上选择RTP 方案2 方案1有一个缺点,只能过滤单一端口的UDP包,将其解码为RTP。 假如有很多的UDP包,并且端口都不一样,如果想把这些包都解码为RTP, 则需要如下设置。 选择分析->启用的协议 在搜索框中输入RTP, 然后启用RTP的rtp_udp

2022-12-11 14:33:04 · 1 分钟 · Eddie Wang

Windows更新之后 Linux报错 Error 0x80040154

最近我更新了Windows, 之后我的Windows Linux子系统Ubuntu打开就报错了 报错截图如下: 在网上搜了一边之后,很多教程都是说要打开Windows的子系统的功能。 但是由于我已经使用Linux子系统已经很长时间了,我觉得应该和这个设置无关。 而且我检查了一下,我的这个设置本来就是打开的。 然后我在Powershell里输入 wsl, 这个命令都直接报错了。 PS C:\WINDOWS\system32> wsl --install 没有注册类 Error code: Wsl/0x80040154 然后我到wsl的github上搜索类似的问题,查到有很多类似的描述,都是升级之后遇到的问题,我试了好几个方式,都没用。 但是最后这个有用了! https://github.com/microsoft/WSL/issues/9064 解决的方案就是: 卸载已经安装过的Windows SubSystem For Linux Preview 然后再Windows应用商店重新安装这个应用 Windows的升级之后,可能Windows Linux子系统组建也更新了某些了内容。 所以需要重装。 这里不得不吐槽一下WSL, 这个工具仅仅是个玩具。随着windows更新,这个工具随时都会崩溃,最好不要太依赖它。

2022-12-11 14:12:08 · 1 分钟 · Eddie Wang

为什么我不再使用语雀

我在2019年的六月份时候,开始使用语雀。 一路走来,我见证了语雀的功能越来越多,但是于此同时,我也越来越讨厌语雀。 2022年12月初,我基本上把语雀上的所有内容都迁移到我的hugo博客上。 我的博客很乱,也很多。我写了一个脚本,一个一个知识库的搬迁,总体速度还算快,唯一不便的就是图片需要一个一个复制粘贴。 有些图片是用语雀的绘图语言例如plantuml编写的,就只能截图保存了。 总之,我也是蛮累的。 简单列一下我不喜欢语雀的几个原因: 性能差,首页渲染慢,常常要等很久,首页才能打开 产品定位混乱,随意更改用户数据 我记得有时候我把知识库升级成了空间,过了一段时间,不知道为什么空间由变成了知识库。 数字花园这个概念真的很烂。我好好的个人主页,某一天打开,大变样,换了个名字,叫做数字花园。甚至没有给用户一个选择保留老版本的个人主页的权利。太不尊重用户了!! 就好像你下班回家,看见房门被人撬开,你打开房门,看见有人在你的客厅种满大蒜,然后还兴高采烈的告诉你,看,这是您的数字菜园!多好,以后不用买蒜了。 会员的流量计费规则, 或许现在的计费规则已经变了,我也没有再充会员,但是再以前。即使是会员,也是按流量计费的。什么叫按流量计费,假如你的一篇博客里上传了一张1mb的图片,即使你后来把这个图片删了,这1mb的流量还是会存在。而且流量是一直往上涨的,还不像运营商,每月一号给你清零一次的机会。

2022-12-06 21:10:38 · 1 分钟 · Eddie Wang

模块传参的重构

写过opensips脚本的同学,往往对函数的传参感到困惑。 例如: ds_select_dst()可以接受整数或者值为正数的变量作为第一个参数,但是nat_uac_test()的第一个参数就只能是整数,而不能是变量 为什么rl_check()可以接受格式化的字符串,而save()只能接受字符串。 为什么ds_select_dst("1", "4") 作为整数也要加上双引号? 为什么变量要加上双引号? ds_select_dst("$var(aa)", "4") 为什么t_on_branch("1")路由的钩子要加上双引号? 为什么route(go_to_something);这里又不需要加上引号? ds_select_dst("1", "0"); $var(aa)=1; ds_select_dst("$var(aa)", "0"); rl_check("gw_$ru", "$var(limit)"); #格式化的gw_$ru save("location"); #单纯的字符串作为参数 从3.0开始,传参可以更加自然。 整数可以直接传参,不用加双引号 do_something(1, 1); 输入或者输出的$var(), 不用加双引号,加了反而会报错 do_something($var(a), $var(b)); 格式化字符串,需要加双引号 do_something(1, "$var(bb)_$var(b)"); 参考 https://blog.opensips.org/2019/11/05/the-module-function-interface-rework-in-opensips-3-0/ https://www.opensips.org/Documentation/Script-Syntax-3-0#

2022-12-03 21:01:02 · 1 分钟 · Eddie Wang

Pdf学习资料

TelNYX.pdf OpenSIPS 2.3 mediasoup Cutting Edge WebRTC Video COnferencing FreeSWITCH-driven routing in OpenSIPS Voicenter: Contact center on Steroids Vlad_Paiu-Distributed_OpenSIPS_Systems_Cluecon14.pdf Vlad_Paiu-OpenSIPS_Summit_Austin_2015-Async.pdf Ionut_Ionita-OpenSIPS_Summit2017-Capturing_beyond_SIP FLAVIO_GONCALVES-Fraud_in_VoIP_Today.pdf Alexandr_Dubovikov-OpenSIPS_Summit2017-RTC_Threat_Intelligence_Exchange.pdf OpenSIPS_LoadBalancing.pdf Vlad_Paiu-OpenSIPS_Summit_2104-OpenSIPS_End_User_Services.pdf Razvan_Crainea-OpenSIPS_Summit2017-From_SIPI_Trunks_to_End_Users.pdf Razvan_Crainea-OpenSIPS_Summit-Scaling_Asterisk.pdf Vlad_Paiu-OpenSIPS_Summit-Service_Enabling_for_Asterisk.pdf Jonas_Borjesson-OpenSIPS_Summit_Austin_2015.pdf Michele_Pinasi-OpenSIPS_Summit2017-How_we_did_VoIP.pdf Bogdan_Iancu-OpenSIPS_Summit_Keynotes.pdf Giovanni_Maruzselli-OpenSIPS_Summit2017-Scaling_FreeSWITCHes.pdf Maksym_Sobolyev-OpenSIPS_Summit2017-Sippy_Labs_update.pdf docker-cluster.pdf voip malware attack tool .pdf Bogdan_Iancu-OpenSIPS_Summit-OpenSIPS_2_1.pdf Pete_Kelly-OpenSIPS_Workshop_Chicago_2015-Calling_Cards_B2BUA.pdf Bogdan_Iancu-OpenSIPS_Summit-keynotes.pdf Alex_Goulis-Opensips_CNAME.pdf OpenSIPS_2.0_Framework.pdf Norman_Brandinger-OpenSIPS_Summit_2014-Advanced_SIP_Routing_with_OpenSIPS_modules.pdf

2022-12-03 16:02:18 · 1 分钟 · Eddie Wang

MRCPv2 协议学习

简介 MRCPv2 是Media Resource Control Protocol Version 2的缩写 MRCP 允许客户端去操作服务端的媒体资源处理 MRCP 的常见功能如下 文本转语音 语音识别 说话人识别 语音认证 等等 MRCP 并不是一个独立的协议,而是依赖于其他的协议,如 SIP/SDP MRCPv2 RFC 发表于 2012 年 MRCPv2 主要由思科,Nuance,Speechworks 开发 MRCPv2 是基于 MRCPv1 开发的 MRCPv2 不兼容 MRCPv1 MRCPv2 在传输层使用 TCP 或者 TLS 定义 媒体资源: An entity on the speech processing server that can be controlled through MRCPv2. MRCP 服务器: Aggregate of one or more “Media Resource” entities on a server, exposed through MRCPv2. Often, ‘server’ in this document refers to an MRCP server. MRCP 客户端: An entity controlling one or more Media Resources through MRCPv2 (“Client” for short). DTMF: Dual-Tone Multi-Frequency; a method of transmitting key presses in-band, either as actual tones (Q.23 [Q.23]) or as named tone events (RFC 4733 [RFC4733]). Endpointing: The process of automatically detecting the beginning and end of speech in an audio stream. This is critical both for speech recognition and for automated recording as one would find in voice mail systems. Hotword Mode: A mode of speech recognition where a stream of utterances is evaluated for match against a small set of command words. This is generally employed either to trigger some action or to control the subsequent grammar to be used for further recognition. 架构 客户端使用SIP/SDP建立MRCP控制通道 SIP使用SDP的offer/answer模型来描述MRCP通道的参数 服务端在answer SDP中提供唯一的通道ID和服务端TCP端口号 客户端可以开启一个新的TCP链接,多个MRCP通道也可以共享一个TCP链接 ...

2022-12-01 10:08:38 · 3 分钟 · Eddie Wang

Deepin安装man命令

想查资料,发现 deepin 居然没有 man 这个命令。 安装 sudo apt-get install man-db 使用介绍

2022-11-03 11:55:51 · 1 分钟 · Eddie Wang

Linux 日志系统简述

1. 序言 日志文件包含系统的运行信息,包括内核、服务、应用程序等的日志。日志在分析系统故障、排查应用问题等方面,有着至关重要的作用。 2. 哪些进程负责管理日志? 默认情况下,系统上有两个守护进程服务管理日志。journald和rsyslogd。 journald是systemd的一个组件,journald的负责收集日志,日志可以来自 Syslog日志 内核日志 初始化内存日志 启动日志 所有服务写到标准输出和标准错误的日志 journal收集并整理收到的日志,使其易于被使用。 有以下几点需要注意 默认情况下,journal的日志是不会持久化的。 journal的日志是二进制的格式,并不能使用文本查看工具,例如cat, 或者vim去分析。journal的日志需要用journalctl命令去读取。 journald会把日志写到一个socket中,rsyslog可以通过这个socket来获取日志,然后去写文件。 3. 日志文件文件位置 日志文件位置 /var/log/ 目录 4. 日志配置文件位置 /etc/rsyslog.conf rsyslogd配置文件 /etc/logrotate.conf 日志回滚的相关配置 /etc/systemd/journald.conf journald的配置文件 5. rsyslog.conf 5.1. 模块加载 注意 imjournal就是用来负责访问journal中的日志 imuxsock 提供本地日志输入支持,例如使用logger命令输入日志 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imjournal # provides access to the systemd journal 5.2. 过滤 5.2.1. 优先级过滤 **模式:FACILITY.**PRIORITY 设备(FACILITY): kern (0), user (1), mail (2), daemon (3), auth (4), syslog (5), lpr (6), news (7), cron (8), authpriv (9), ftp (10), and local0 through local7 (16 - 23). 日志等级:debug (7), info (6), notice (5), warning (4), err (3), crit (2), alert (1), and emerg (0). 正则 = 指定某个级别 ! 排除某个级别 匹配所有级别 Example: ...

2022-10-26 08:44:12 · 3 分钟 · Eddie Wang