平时养成一些好的操作习惯,克服不良的 UNIX 使用模式,提高效率。
原文链接: UNIX 高手的 10 个习惯 by Michael Stutz (stutz@dsl.org)
简要整理如下:
- 在单个命令中创建目录树。
需创建多级目录时,使用 mkdir 的 -p 选项。且可用{ }创建多个同级子目录。如下:
mkdir -p project/{sub1/d1,sub2,sub3,sub4/{d1,d2,d3},sub5/d1/d1}
- 更改路径;不要移动存档。
tar解包时,使用大写C参数指定解包到的位置,注意区分-c参数。
参考:tar命令的C参数 将命令与控制操作符组合使用。
需执行多个命令时,无关联关系可用 ;
若第二个依赖于前一个命令执行结果,使用
&& (第一个成功才执行第二个命令) (零退出状态表示成功)
cd tmp/a/b/c && tar xvf ~/archive.tar
|| (第一个失败才执行第二个命令)
cd tmp/a/b/c || mkdir -p tmp/a/b/c
谨慎引用变量。
一般将变量调用包括在双引号中。否则可能出现 引用和非引用混淆。
条件:~ $ ls tmp/
目录下两个文件:a b
VAR="tmp/*"
echo $VAR
tmp/a tmp/b (回显变量VAR)
echo "$VAR"
tmp/* (回显变量VAR 替换后的串)
echo $VARa
空 (回显变量VARa)
echo "$VARa"
空 (回显变量VARa 替换后的串)
echo "${VAR}a"
tmp/*a (VAR替换后组合成串)
echo ${VAR}a
tmp/a (替换后为变量tmp/*a,含通配符,仅有一项匹配)- 使用转义序列来管理较长的输入。
使用反斜杠 () 来将较长的行延续到下一行 - 在列表中对命令分组。
- 在 find 之外使用 xargs。
- 了解何时 grep 应该执行计数——何时应该绕过。
- 匹配输出中的某些字段,而不只是对行进行匹配。
- 停止对 cat 使用管道。