linode最新内核docker服务无法启动
升级完linode发现docker服务无法启动了,containerd服务报找不到overlay模块
1 | ... |
linode内核早就启用overlay模块了,这是docker bug导致的。
执行以下命令来解决此问题:
1 | $ su - |
References:
[1]Docker won’t start using the latest Linode kernel
bash中一串命令的执行()与{}
bash中一串命令执行用()和{}区别
- ()只是对一串命令重新开一个子shell进行执行
- {}对一串命令在当前shell执行
- ()和{}都是把一串的命令放在括号里面,并且命令之间用;号隔开
- ()最后一个命令可以不用分号
- {}最后一个命令要用分号
- {}的第一个命令和左括号之间必须要有一个空格
- ()里的各命令不必和括号有空格
- ()和{}中括号里面的某个命令的重定向只影响该命令,但括号外的重定向则影响到括号里的所有命令
References:
[1]shell中的(),{}几种语法用法
nodetool自动监控bootstrapping\repairing\rebuilding进度
不用其他监控套件,只是用nodetool工具借助netstats指令简单的监控收发数据流进度:
1 | watch -n 10 'nodetool netstats | grep "Receiving\|Sending" | gawk {'"'"' print $1" - "$11/$4*100"% Complete, "($4-$11)/1024/1024/1024" GB remaining" '"'"'}' |
References:
[1]On Cassandra Stream Monitoring
vim技巧两则:使用数字序列替换匹配的pattern和插入数字序列
使用数字序列替换
vim查找替换时,可以使用一个数字序列来替换匹配的内容
1 | :let i=1 \[range\]g/PATTERN/s//\\=i/g let i=i+1 |
插入数字序列
1 | :put =range(11,15) |
可以在文件当前行后插入5行:
1 | 11 |
函数式替换
在替换命令 s/// 中可以使用函数表达式来书写替换内容,格式为
1 | :s/替换字符串/\\=函数式 |
在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。
举个栗子,将文件从第一行开始的行首替换为如下样式:
1 | mem\[0\]= |
可以执行如下替换:
1 | :%s/^/\\='mem\['.(line(".")-1).'\]=' |
References:
[1]Making a list of numbers
[2]vi/vim的巧妙使用-数值加减,递增,序列等
nginx for windows x64
Kevin Worthington 一直在维护nginx for windows x64版本的build,致敬。
linux 修改按键映射
xmodmap(X modify key map)可以修改X下的键位映射
比如0现在用的键盘没有右边的CTRL,很难用,右侧的INSERT键刚好在空格右侧不远的地方,可以把它修改为右CTRL
可以使用xev程序来查看当前的keymap,可以看到右侧的INSERT键位映射为:
1 | KeyPress event, serial 33, synthetic NO, window 0x2a00001, |
导出原映射
1 | $ xmodmap -pke > ~/.Xmodmap |
修改映射
控制键要先clear,最后再add
编辑.Xmodmap文件,文件开头处添加
1 | clear Control |
将keycode 118修改为
1 | keycode 118 = Control_R NoSymbol Control_R |
然后文件尾部添加
1 | add Control = Control_L Control_R |
测试配置
修改好映射文件后
1 | $ xmodmap ~/.Xmodmap |
GDM,XDM和LightDM在开启xsession时会自动读取$HOME/.Xmodmap,但不稳定,时好时坏:(
使用startx时激活你自己的映射表,请添加下面的文件和内容:
1 | ~/.xinitrc |
References:
[1]Xmodmap
[2]linux下修改键位映射
bash $-变量
MacOS missing xcrun问题
升级MacOS后brew upgrade经常会出现如下错误:
1 | The bottle needs the Apple Command Line Tools to be installed. |
是因为系统升级后没有安装相应版本的Apple Command Line Tools
解决办法就是像错误提示里说的一样:
1 | $ xcode-select --install |