标准输入输出:
设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /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是标识符,这个标识符可以是你想要设置的任意标识符。