linux输入输出重定向以及管道(精)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

输入/输出重定向,管道

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

#重定向文件描述符i到j中

#指向i文件的所有的输出都发送到j中去

>&j

#默认的重定向文件描述符1

#所有传递到stdout的传输都送到j中去

>filename

# 从文件中接受输入

# 与“>” 是成对命令

#eg: grep "mota" < filename

[j]<>filename

# 为了读写 filename ,把文件 filename 打开,并分配文件描述符“j” 给他 # 如果文件 filename 不存在,就创建他

# 如果文件描述符“j” 没指定,默认是 fd 0 , stdin 。

# 这种应用通常是为了写到一个文件指定的地方

下面看一个脚本:

这个实验

就是在指定的字符串的指定位置添加一个指定的符号,实验结果如下图所示

关闭文件描述符

n<&- 关闭输入文件描述符n

0<&-或<&—关闭stdin

n>&- 关闭输出文件描述符n

1>&- 或>&- 关闭stdout

自定义输出重定向:

自定义重定向符号:>&

ex ec 3~9 filename #定义n为自定义的重定向文件

COMMAND >&3 #输出到自定义重定向文件中

exec 3>&- #撤销自定义

管道:用于连接多个命令,把前一个命令的输出结果当作第二个命令的输入结果 COMMAND1 | COMMAND2 | COMMAND3

eg: echo "123456" | passwd --stdin user

相关文档
最新文档