2007年2月4日星期日

2007-2-4 linux 学习笔记

1.如果我想查看某个gz文件里面都有什么文件,而又不想解压缩的话,可以用
zcat flie.tar.gz | cpio �Clist 
 
2.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
 
3.tar -C指定解压缩的目录
tar -C 可以指定要将文件解压缩的目录。这个在gentoo安装手册上已经学到了:) 
 
4.用&&和||组合命令
cmd1 && cmd2 cmd2只有在cmd1成功执行后才会执行。
cmd1 || cmd2 cmd2只有在cmd1失败后才会执行。 
 
5.用{}和()执行批量命令
例如:
( 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。 
 
6.用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就会统计匹配的次数。 
 
 
 
 
               朱恒
        zhuheng1229@sohu.com
          2007-02-04

没有评论: