Shell重定向-阿里云开发者社区

开发者社区> 开发与运维> 正文

Shell重定向

简介:

    Liunx下系统打开的3个文件,即标准输入、标注输出和标准错误输出。用户的shell将键盘设为默认的标准输入,默认的标准输入和标准错误输出为屏幕。也就是说,用户从键盘输入命令,然后将结果和错误消息输入到屏幕

    所谓的重定向,就是不适用系统默认的标注输入/输入,而是重定向,因此重定向分为输入重定重定向,输入重定向和错误输出重定向。要实现重定向就需要了解重定向操作符,shell就是根据重定向操作符来决定重定向操作的。

    (1)输入重定向     操作符‘<’和 ‘<<’

    输入重定向用于改变命令的输入源,利用输入重定向,就可以将一个文件的内容作为命令的输入,而不是键盘输入

wKiom1bnh0LSdrEZAAAMo2BvCCE977.jpg

这里是利用wc命令统计输入给它的文件/etc/shadow的行数、单词数和字符数

    还有一种输入重定向操作符是‘<<’。这种重定向是告诉shell,当前命令的标准输入为来自命令行中一堆分隔符中间的内容

wKioL1bniaLDjKyGAABByBI0Egk739.jpg

上面的命令是将一堆分隔号aa之间的内容作为wc命令的输入。分隔符可以是任何字符。shell将在第一个分隔号后开始读取内容,直到出现另一个分隔号读取结束,然后将内容送给wc命令处理

    (2)输入重定向 操作符‘>’和‘>>’

    输出重定向不是将命令的输出结果在屏幕输出,而是输出到一个指定文件中。

    在Linux下输出重定向用的很多。例如,某个命令的输出很长,一个屏幕无法显示完毕,这时可以将命令的输出指定到一个文件,然后用more命令查看这个文件,从而得到命令输出的完整信息。

wKioL1bnowrS7-nmAAAMJ4IElWc593.jpg

这条命令是将ps -ef输出的系统运行进程信息全部输出到ps.txt文件,而不是输出到屏幕,可以用more命令来查看ps.txt文件中系统运行的信息进程。

注:如果在‘>’后面指定的文件不存在,shell就会自动重建一个;如果文件存在,那么这个文件原有的内容将被覆盖;如果不想覆盖存在的文件,可以使用‘>>’操作符。

wKioL1bnpRaT0mngAAARVk3huCA268.jpg

这条命令是将/etc目录及其子目录下的所有文件信息追加到/root/install.log文件的后面。/root/install.log文件原来的内容仍然存在。

    (3)错误重定向 操作符‘2>’‘2>>’

    错误重定向和标出输出重定向一样。对错误输出的重定向

wKiom1bnpjPjuaftAAAMQF_jcSE990.png

其中,tar是打包名命令,可以在屏幕上看到tar的解压过程,如果‘text.tar.gz’是个损坏的压缩包,就会把错误消息输出到errot.txt文件中。




     本文转自诚之恋 51CTO博客,原文链接:http://blog.51cto.com/vickyzhang/1751259,如需转载请自行联系原作者




版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章