重定向及管道

重定向及管道

重定向

重定向的应用场景
1.屏幕输出的内容很重要,需要保存的时候;
2.后台执行,也不希望它干扰前台输出;
3.系统的例行命令的执行结果,希望保存的时候;
4.一些命令,我们能够预想到除了的位置,这个我们可以2>/dev/null;
5.错误的信息和正确信息要进行分离的时候。
重定向的符号
>:输出内容重定向一个文件或者设备,并且将原先文件或设备中存在的内容覆盖
>>:输出内容重定向一个文件或者设备,追加的方式
<:输入重定向到一个程序
标准输入和输出
标准输入:代码0,或者stdin,使用的符号<
标准输出:代码1,或者stdout,使用的符号 1>
标准错误输出:代码2,或者stderr,使用的符号为2>
例子
前提条件:显示普通文档test1,test2,其中test2是不存在
1.用ls -l查看
[root@localhost zhangsan]# ls -l test1 test2
ls: cannot access test2: No such file or directory
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
2.将1题中正确内容写入到suc.log
[root@localhost zhangsan]# ls -l test1 test2 > suc.log  
ls: cannot access test2: No such file or directory
[root@localhost zhangsan]# cat suc.log 
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
3.将1题中错误的内容写入到err.log中
[root@localhost zhangsan]# ls -l test1 test2 2>err.log
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
[root@localhost zhangsan]# cat err.log 
ls: cannot access test2: No such file or directory
4.我们以追加的方式,将信息输出到err.log和suc.log中
[root@localhost zhangsan]# ls -l test1 test2 >>suc.log 2>>err.log
[root@localhost zhangsan]# cat suc.log 
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
[root@localhost zhangsan]# cat err.log 
ls: cannot access test2: No such file or directory
ls: cannot access test2: No such file or directory
5.将错误信息丢掉,调到/dev/null
[root@localhost zhangsan]# ls -l test1 test2 2>/dev/null
-rw-r--r--. 1 root root 0 Apr 15 17:51 test1
6.将错误和正确信息绑定到一个流中,然后将其输出到/dev/null中
[root@localhost zhangsan]# ls -l test1 test2 &> /dev/null

管道

管道命令
command1 | command2 | command3
注意
1.管道命令只能处理前一个命令的正确输出,不能处理错误的输出;
2.管道命令的右侧命令必须具有接受标准输入能力
例:
find / -name passwd 2>/dev/null |wc -l
管道常见的命令组合
grep cut sort uniq awk grep find sed
详细信息请参考:点击打开链接
阅读更多

没有更多推荐了,返回首页