开博仅仅是记录学习工作中某些(用到过,但不容易记住的)命令, 方便自己查找。 如果你恰好也在找这些命令并对你有些许帮助,那真是缘分啊
,欢迎拍砖!
linux命令总宝典
技巧a 用 --help 查看自带的葵花宝典,指定错不了。
技巧b 看help 或是其他啥的时候带个 “|more”的尾巴,统统分屏显示,省得被晃晕了
1. ls 命令显示文件的绝对路径
ls | sed "s:^:`pwd`/:"
其实这条命令组合用了管道 |, 后面sed 加了个正则表达式,把行首^替换成了pwd的返回值,就是当前的绝对路径。
s替换,:是界定符,程序猿都首选"/",其实啥符号都可以,我喜欢用#,其他的不解释。
嫌弃太复杂,还用上了RE,好吧, 还有这个终极最简版:
ls -d "$PWD"/*
够简单纯粹吧?注意$PWD一定是大写,因为是内置函数。和$PATH道理一样。
为什么要加选项 -d?不加你试试啊,目录就都展开了,没完没了啊,看到你崩溃为止。
2. diff 比较两个文件(二进制文件用 comp)
diff -Baby file1 file2
-Baby 选项好记忆。具体意思是这样的:
-bB,就忽略空格b和空行B造成的不同。
-a把文件当做文本文件处理
-y分屏显示,如果布局想再好看一点,可以加 -W 200
效果是这样的,不同的地方 用|标记。
下面2组命令仅仅是备忘。
作补丁和打补丁:
diff -urN version1/ version2/ > patch.list 和 patch -p0 < patch.list, 参数不解释。
3. comm 比较两个文件
2的功能完全可以用 comm实现,但是需要将2个文件先排序,sort一下,命令如下:
comm <(sort file1|uniq) <(sort file2|uniq)
例如 $cat a.txt
2
1
A
B
$cat b.txt
1
3
C
A
$ comm <(sort a.txt|uniq) <(sort b.txt|uniq)
结果是这样的
共三列,前2列是a、b文件独有内容,第3列是a,b共有内容。
如果不想输出某一列,就加上 -1/2/3选项,比如只输出共有内容,可用 -12选项将第1,2列去掉,如下:
common -12 <(sort a.txt|uniq) <(sort b.txt|uniq)