快速业务通道

linux 输入输出重定向以及管道

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-03-28
输入/输出重定向,管道
1、标准输入:/dev/stdin(键盘), 描述符号是0
2、标准输出:/dev/stdout(屏幕), 描述符号是1
3、错误输出:/dev/stderr(错误消息输出到屏幕上),描述符号是2

COMMAND_OUTPUT > OUTPUT_FILENAME
#重定向stdout到一个文件
#如果没有这个文件就创建一个,否则就覆盖原文件里面的内容

:> OUTPUTFILENAME
#如果文件没有,就创建一个0长度的文件(==touch)
#:是一个占位符,不产生任何输出
#>会把文件“FILENAME”截断为0长度

> FILENAME
#>会把文件“FILENAME”截断为0长度
#如果文件没有,就创建一个0长度的文件(==touch)
#(与上面的“:>”效果相同,但是在某些shell下可能不能工作)
如图所示 COMMAND [options] > file.list
#创建一个包含目录树列表的文件
如图所示: COMMAND_OUTPUT >> OUTPUT_FILENAME
#重定向stdout到一个文件
#如果没有这个文件就创建一个,否则就追加到文件后边
如图所示:
1>filename
#重定向stdout到文件filename中
1>>filename
#重定向并且追加stadout到文件filename中
如图所示
2>filaname
#重定向stderr到文件filename中
2>>filename
#重定向并且追加staderr到文件filename中
如图所示 &>filename
#把stdout和stderr都重定向到文件filename中
如图所示 2>&1
#重定向stderr到stdout
#得到的错误的消息与stdout一样,发送到一个地方
如图所示: i>&j 拥有帝国一切,皆有可能。欢迎访问phome.net
#重定向文件描述符i到j中
#指向i文件的所有的输出都发送到j中去
>&j
#默认的重定向文件描述符1
#所有传递到stdout的传输都送到j中去
0<filename
>filename
#从文件中接受输入
#与“>”是成对命令
#eg:grep "mota" < filename
[j]<>filename
#为了读写filename,把文件filename打开,并分配文件描述符“j”给他
#如果文件filename不存在,就创建他
#如果文件描述符“j”没指定,默认是fd 0,stdin.
#这种应用通常是为了写到一个文件指定的地方
下面看一个脚本: 这个实验 就是在指定的字符串的指定位置添加一个指定的符号,实验结果如下图所示
关闭文件描述符
n<&- 关闭输入文件描述符n
0<&-或<&— 关闭stdin
n>&- 关闭输出文件描述符n
1>&- 或>&- 关闭stdout
自定义输出重定向:
自定义重定向符号:>&
exec 3~9 filename #定义n为自定义的重定向文件
COMMAND >&3 #输出到自定义重定向文件中
exec 3>&- #撤销自定义

管道:用于连接多个命令,把前一个命令的输出结果当作第二个命令的输入结果
COMMAND1 | COMMAND2 | COMMAND3
eg: echo "123456" | passwd --stdin user

本文出自 “IT梦-齐-分享” 博客,请务必保留此出处http://roqi410.blog.51cto.com/2186161/620917

拥有帝国一切,皆有可能。欢迎访问phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号