Linux命令学习(一)
今天在IBM Developer上看到一篇名为《Learn 10 good UNIX usage habits》的文章,对linux下的命令又有了一些新的认识,以下是我的笔记:
mkdir -p一次创建多个目录
例如:
mkdir -p temp/{a,b,c}
ls temp
a b c
大括号({})中是要创建的目录名,以逗号(,)隔开,注意不能空格(或者如果真的需要空格的话,用转义符(\))。
大括号可以嵌套,例如:
mkdir -p temp{a/{a1,a2},b,c/{c1,c2}}
tree temp
temp
|-- a
| |-- a1
| `-- a2
|-- b
`-- c
|-- c1
`-- c2
tar -C指定解压缩的目录
tar -C 可以指定要将文件解压缩的目录。这个在gentoo安装手册上已经学到了:)
用&&和||组合命令
cmd1 && cmd2 cmd2只有在cmd1成功执行后才会执行。
cmd1 || cmd2 cmd2只有在cmd1失败后才会执行。
用{}和()执行批量命令
例如:
( cd temp; VAR=$PWD; cd; tar jxvf temp.tar.bz2 -C $VAR ) | less
temp
temp/a
...
echo $VAR
注意,括号和命令以及命令和命令之间要有空格。
使用大括号({})组合命令的话,最后一个命令后面要跟随分号(;)。
下面的命令等价于上面的命令:
{ cd temp; VAR=$PWD; cd; tar jxvf temp.tar.bz2 -C $VAR; } | less
还有一点可能跟unix下不太一样,文章中说如果()中有定义变量,不会影响到当前的shell,而{}则会影响到,我在linux下测试没有出现这种情况,定义的变量都不会影响当前的shell。
用grep -c来统计匹配的行数
grep -c 的作用类似grep | wc -l,不同的是,如果是查找多个文件,grep -c会统计每个文件匹配的行数,每行一个文件的列出来,而wc -l 则列出总的统计数字。
另外grep -c 要比 grep | wc -l快一点。
grep -o加wc -l统计所有的匹配
如果一行有多个匹配的话,grep -c只能记为一行,用grep -o | wc -l就会统计匹配的次数。
Write a comment