标准输入输出:


设备

设备文件名

文件描述符

类型

键盘

/dev/stdin

0

标准输入

显示器

/dev/stdout

1

标准输出

显示器

/dev/stderr

2

标准错误输出


输出重定向

输出重定向符号   >

1 标准输出重定向

命令 > 文件       以覆盖方式把命令的正确输出重定向到文件或设备

命令 >> 文件     以追加的方式把命令的正确输出重定向到文件或设备

2 标准错误输出重定向

命令 2> 文件       以覆盖方式把命令的错误输出重定向到文件或设备(2 是文件描述符)

命令 2>> 文件     以追加的方式把命令的错误输出重定向到文件或设备

3 正确和错误输出同时保存

(1)  命令 > 文件 2>&1    以覆盖的方式,把正确和错误输出都保存到同一个文件

(2)  命令 >> 文件 2>&1  以追加方式,把正确和错误输出都保存到同一个文件

(3)  命令 &> 文件  以覆盖的方式,把正确和错误输出都保存到同一个文件

(4)  命令 &>> 文件  以追加方式,把正确和错误输出都保存到同一个文件

(5)  命令 >> 文件1  2>>文件2   把正确的输出追加到文件1,把错误的输出追加到文件2


linux黑洞 null

当程序执行的过程中不需要看到程序的输出时则把输出重定向到null,此时程序的输出既不会显示,也不会保存

命令  &> /dev/null


输入重定向

以wc(word count 统计单词个数)为例

wc < test.log  (统计test.log中单词的个数)

wc <<doc

hello world

hello

shell

doc

当使用 << 符号时,程序会把  doc  与 doc 之间的输入当成wc命令的统计对象,当然doc是标识符,这个标识符可以是你想要设置的任意标识符。