1,cut
# last | cut -d ' ' -f1
表示以空白对last的输出进行切割,并取出第一段
2,wc
# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l
统计出当前有多少用户登录了
3,tr
#cat test.txt | tr -d ':'
在输出test.txt文件里内容时删除其中的冒号
#cat test.txt | tr 'a-z' 'A-Z'
将test.txt输出的内容全部替成大写
4,-exec
#find -maxdepth 1 -type f -name "x*" -exec rm {} \;
找出当前路径下以x开头的文件并删除,其中目录层级只找一层,另外也可以使用xargs
xargs 表示产生某个命令的参数的意思,即给命令传入参数,
它与-exec一样,其后接的命令都有限,可以编写一个脚本后让它们执行。
#find -maxdepth 1 -type f -name "x*" | xagrs rm
5,split
#split test.txt -l 3 tem
将test.txt文件以行进行分割,且命名为tem*
6,-
某些命令需要用到文件名来进行处理时,该stdin与stdouts可利用减号'-'来代替
# tar -zcvf - /home | tar -zxvf - -C /var
将/home目录进行打包,并在解压在/var目录下
7,head 与tail
# head -n -3 test.txt
输出除了test.txt后3行外的内容
# tail -n +3 test.txt
从test.txt的第3行开始输出,而
# tail -n 3 test.txt表示只输出未尾3行。
8, :!命令
当我们在编辑文本处于vi中时,但又想先执行一个命令,则可以在vi中使用 :!命令
9,补充下tr命令
有这样一个文件 test.txt,里在的内容是:
1
2
3
4
5
现在使用tr命令将里面的内容相加:
# cat test.txt | echo $[ $(tr "\n" "+")0 ]
tr "\n" "+" 将文本里的换行用+代替,但未尾会多出一个+,所以再加个0,
结果就是15了。
10,sed 命令
将原文件里指定内容删除并保存,如:
vi test.txt
123
hello
123
删除匹配'hello' 这一行
sed -i '/hello/d' test.txt
删除第二列
sed -i 2d test.txt
保险一点的方法可以这样:
sed -i .bak '/hello/d' test.txt
这样在删除之后会将原来的文件也保存一份test.bak