Shell 教程技巧

复制文本到剪贴板 sudo apt install xclip vim ~/.zshrc alias copy='xclip -selection clipboard' 这样我们就可以用copy命令来考本文件内容到系统剪贴板了。 copy aaa.txt 判断工作区是否clean if [ -z "$(git status --porcelain)" ]; then # Working directory clean else # Uncommitted changes fi

2022-05-28 12:39:50 · 1 min · Eddie Wang

C和gdb调试

开启coredump #如果该命令的返回值是0,则表示不开启coredump ulimit -c # 开启coredump ulimit -c unlimited 准备c文件 #include<stdio.h> void crash() { char * p = NULL; *p = 0; } int main(){ printf("hello world 1"); int phone [4]; phone[232] = 12; crash(); return 0; } 编译执行 gcc -g hello.c -o hello ./hello 之后程序崩溃,产生core文件。 gdb分析 gdb 启动的二进制文件 core文件 gdb ./hello ./core 之后输入: bt full 可以查看到更详细的信息 ➜ c-sandbox gdb ./hello ./core GNU gdb (Raspbian 7.12-6) 7.12.0.20161007-git Copyright (C) 2016 Free Software Foundation, Inc....

2022-05-28 12:35:26 · 1 min · Eddie Wang

Tmux 常见问题以及解决方案

oh my tmux 关闭第二键ctrl-a ctrl-a可以用来移动光标到行首的,不要作为tmux的第二键 set -gu prefix2 unbind C-a Tmux reload config :source-file ~/.tmux.conf tmux 显示时间 ctrl b + t tmux从当前目录打开新的窗口 bind '"' split-window -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}"

2022-05-28 12:30:58 · 1 min · Eddie Wang

hugo博客增加mermaid 绘图插件

增加mermaid shortcodes 在themes/YourTheme/layouts/shortcodes/mermaid.html 增加如下内容 <script async type="application/javascript" src="https://cdn.jsdelivr.net/npm/mermaid@9.1.1/dist/mermaid.min.js"> var config = { startOnLoad:true, theme:'{{ if .Get "theme" }}{{ .Get "theme" }}{{ else }}dark{{ end }}', align:'{{ if .Get "align" }}{{ .Get "align" }}{{ else }}center{{ end }}' }; mermaid.initialize(config); </script> <div class="mermaid"> {{.Inner}} </div> 在blog中增加如下代码 Warning 注意下面的代码,你在实际写的时候,要把 /* 和 */ 删除 {{/*< mermaid align="left" theme="neutral" */>}} pie title French Words I Know "Merde" : 50 "Oui" : 35 "Alors" : 10 "Non" : 5 {{/*< /mermaid >*/}} pie title French Words I Know "...

2022-05-27 11:49:44 · 1 min · Eddie Wang

klogg: 目前我最喜欢的日志查看工具

项目信息 github地址 https://github.com/variar/klogg 1. 安装 klogg是个跨平台软件,windows, mac, linux都可以安装。具体安装方式参考github项目地址 2. 界面布局 文件信息栏 日志栏 过滤器设置栏 过滤后的日志显示栏 3. 文件加载 klogg支持多种方式加载日志文件 将日志文件拖动到klogg中 直接将常见的压缩包文件拖动到klogg中,klogger将会自动将其解压后展示 支持从http url地址下载日志,然后查看 支持从剪贴板复制日志,然后展示 4. 过滤表达式 因为klogg支持正则过滤,所以他的功能就非常强悍了。 逻辑表达式 表达式 例子 备注 与 and “open” and “close” 包含open,并且包含close 或 or “open” or “close” 包含open, 或者 close 非 not not(“open”) 不包含open 与或非同时支持复杂的运算,例如包含open 但是不包含close: "open" and not("close") 5. 快捷方式 klogg的快捷方式很多参考了vim, vim使用者非常高兴。 键 动作 arrows 上下或者左右移动 [number] j/k 支持用j/k上下移动 h/l 支持用h/l左右移动 ^ or $ 滚动到某行的开始或者结尾 [number] g 跳到对应的行 entered G 跳到第一行 Shift+G 跳到最后一行 Alt+G 显示跳到某一行的对话框 ’ or " 在当前屏幕快速搜索 (forward and backward) n or N 向前或者向后跳 * or ....

2022-04-13 19:41:53 · 1 min · Eddie Wang

macbook pro 使用1664天的感受

我之前写过一篇文章《macbook pro使用三年后的感受》,今天这篇文章是用4.5年的感受。 再次梳理一下,中间遇到过的问题 蝴蝶键盘很早有有些问题了,最近疫情在家,键盘被用坏了,J键直接坏了。只能外接键盘来用 屏幕下方出现淡红色的纹路,不太明显,基本不影响使用 中间我自己给macbook换过一次电池,换电池之前只要不插电,macbook很容易就关机了 风扇经常转,噪音有点吵,我已经觉得无所谓了 17年买这台电脑的时候,应该是9400左右。配置应该是最低配的 i5双核2.3Ghz, 8G内存,128硬盘的。 有些人可能惊讶,128G的硬盘怎么能够用的。但是我的确够用,我的磁盘还有将近50G的剩余空间呢。 我不是视频或者影音工作者,用的软件比较少。整个应用程序所占用的空间才4个多G。剩下的文稿可能大部分是代码。 由于我我基本上都是远程用ssh连上nuc上开发,所以mac上的资料更少。 但是macbook键盘坏了这个问题,是不能忍的。偶尔要移动办工的时候,不可能再带个外接键盘吧。 是时候准备和陪伴我4.5年的电脑说再见了。 本来想买14寸的macbook pro m1的,但是重量的增加以及很丑的刘海也是我不能忍的。 所以我觉得我会买一台轻便点的windows笔记本,而且windows还有一个很吸引我的点,就是linux子系统。这个linux子系统,要比mac的系统更加linux。 各位同学有没有推荐的windows的轻便笔记本呢?

2022-04-04 21:29:13 · 1 min · Eddie Wang

github clone加速

我有一个github仓库,https://github.com/wangduanduan/opensips, 这个源码比较大,git clone 比较慢。 我们使用https://www.gitclone.com/提供的加速服务。 # 从github上clone git clone https://github.com/wangduanduan/opensips.git # 从gitclone上clone # 只需要在github前面加上gitclone.com/ # 速度就非常快,达到1mb/s git clone https://gitclone.com/github.com/wangduanduan/opensips.git 但是这时候git repo的仓库地址是 https://gitclone.com/github.com/wangduanduan/opensips.git,并不是真正的仓库地址,而且我更喜欢用的是ssh方式的远程地址,所以我们就需要修改一下 git remote set-url origin git@github.com:wangduanduan/opensips.git

2022-03-29 09:17:23 · 1 min · Eddie Wang

[未完成] 浪潮之底系列 - tcpdump的故事

故事发生在1988年的美国。这一年互联网的始祖网络,阿帕网已经诞生了将近20年。而我们所熟知的linux将在三年后,也就是1991才出现。 在1988年,这时候的互联网只有阿帕网。 然而这个网络并没有想象中的那么好用,他还存在很多问题,而且也经常崩溃。 解决阿帕网崩溃的这个问题,落到了LBL(Lawrence Berkeley National Laboratory实验室的肩上。 这个实验室有四个牛人,他们同时也是tcpdump的发明人。 Van Jacobson Sally Floyd Vern Paxson Steve McCanne 这个实验室主要的研究方向是TCP拥塞控制、BSD包过滤、VoIP等方向。 为了解决阿帕网经常崩溃的问题,就必须要有一个好用的抓包工具。 本着不重复造轮子的原则,这时候也已经又了一个叫做etherfind的工具,但是这个工具有以下的问题 包过滤的语法非常蹩脚 协议编解码能力非常弱 性能也非常弱 总之一句话,他们认为etherfind不行。 工欲善其事,必先利其器。所以他们就想创造一个新的工具。这个工具必须要有以下的特征 能够从协议栈底层过滤包 把高级的过滤语法能够编译的底层的代码 能够在驱动层进行过滤 创建了一个内核模块叫做 Berkeley Packet Filter(BPF) 参考 https://baike.baidu.com/item/ARPAnet/3562284

2022-03-27 17:33:18 · 1 min · Eddie Wang

为什么我又开始使用Firefox浏览器

对于浏览器,我有以下几个需求 能在所有平台上运行,包括mac, windows, linux, ios, 安卓 能够非常方便的同步浏览器之间的数据,例如书签之类的 能够很方便的安装扩展程序,无需翻墙 按照这些条件,只有Firefox能否满足。 当然安装使用Firefox的时候,也出现了几小插曲。 macos 我在ios上登录Firefox上的账户,在MacOS的Firefox却无法登陆,查了才发现,原来FireFox的账号分为国内版和国际版,两者之间数据不通,所以在macos上,也要登陆国内版本,就是带有火狐通行证的登陆页面。 需要在同步页面点击切换至本地服务。 linux/manjaro manjaro上安装的firefox居然没有切换本地服务这个选项,后来发现这个浏览器上没有附加组件管理器所以需要去 http://mozilla.com.cn/moz-addon.html, 安装好附加组件管理器,登陆的时候,应该就可以跳转到带有火狐通行证的登陆页面了。

2022-02-25 23:03:41 · 1 min · Eddie Wang

有意思的命令行工具

1. datamash https://www.gnu.org/software/datamash/ 能够方便的计算数据的平均值,最大值,最小值等数据。 2. textsql https://github.com/dinedal/textql 能够方便的对csv文件做sql查询 3. graph-cli https://github.com/mcastorina/graph-cli 能够直接读取csv文件,然后绘图。

2022-02-25 09:23:35 · 1 min · Eddie Wang