标题:
管道和重定向
[打印本页]
作者:
苹果也疯狂
时间:
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