Board logo

标题: 管道和重定向 [打印本页]

作者: 苹果也疯狂    时间: 2015-7-20 11:05     标题: 管道和重定向

一.重定向所谓重定向就是指:重新定义请求,将其转向其他位置。
eg:ls -l >lsoutput.txt
这条语句,ls -l这个指令(请求)本来是在终端上显示当前目录的内容的,执行完这条语句之后便完成了ls -l指令的重定向:不在终端显示,而是把显示内容保存在文件lsoutput.txt文件中

假如你在一个脚本程序里想用kill命令终止一个进程,但是有可能当你执行kill命令的时候那个进程就已经结束了,这时它会在终端上输出恼人的error信息,咋办?给它重定向输出吧!即:不让它在终端上显示,而是重定向输出到一个文件中。可在脚本中这样写:
kill -HUP 1234 >killout.txt 2>killerr.txt
因为标准错误输出的文件描述符编号是2,所以使用“2>”操作符.上面的命令即将标准输出和错误输出分别重定向到killout.txt和killerr.txt中了。如果想把两组输出都重定向到一个文件中,可以用">&"操作符来结合两个输出。如下所示:
kill -1 1234 >killouterr.txt 2>&1

二.管道
可以用管道操作符"|"来连接进程。
ps -xo comm | sort | uniq | grep -v sh | more
这个命令首先按字母顺序排序(sort命令是排序)ps命令的输出,再用uniq命令除去名字相同的进程,然后用grep -v sh删除名字为sh的进程.然后用more命令将结果分页在屏幕上显示出来。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0