最牛逼的的shell命令
远程diff
[root@jiangyi01.sqa.zmf /home/ahao.mah/ALIOS_QA/tools/iperf]
#ssh ahao.mah@dnstest02.tbc cat /home/ahao.mah/iperf.sh | diff -yW 150 iperf2.sh -
清空或创建一个文件
> file.txt
在以普通用户打开的VIM当中保存一个ROOT用户文件
:w !sudo tee %
快速备份一个文件
cp filename{,.bak}
echo {a,b,c}{a,b,c}
#echo {a,b,c}{a,b,c}{a,b,c}
aaa aab aac aba abb abc aca acb acc baa bab bac bba bbb bbc bca bcb bcc caa cab cac cba cbb cbc cca ccb ccc
重置终端
如果你试过不小心cat了某个二进制文件,很可能整个终端就傻掉了,可能不会换行,没法回显,大堆乱码之类的,这时候敲入reset回车,不管命令有没有显示,就能回复正常了。
实际上reset命令只是输出了一些特殊字符,我们看BusyBox里面最简单的reset程序的实现:
printf("\033c\033(K\033[J\033[0m\033[?25h");
输出的这些字符对Shell是有特殊意义的:
\033c: "ESC c" - 发送重置命令;
\033(K: "ESC ( K" - 重载终端的字符映射;
\033[J: "ESC [ J" - 清空终端内容;
\033[0m: "ESC [ 0 m" - 初始化字符显示属性;
\033[?25h: "ESC [ ? 25 h" - 让光标可见;
其中字符显示属性经常用来设定打印字符的颜色等,可参考这个博文。
reset
在午夜的时候执行某命令
echo cmd | at midnight
显示一个文件并且在每行开头添加行号
$ cat test.txt | nl
1 line 1
2 line 2
muahao@aliyun.com