文章目录
- 一、标准输入输出
- 二、输出重定向
- 三、输入重定向
一、标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 标准输入 | |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
二、输出重定向
类型 | 符号 | 作用 |
---|---|---|
标准输出重定向 | 命令 > 文件 | 以覆盖的方式, 把命令的正确输出输出到指定的文件或设备当中。 |
命令 >> 文件 | 以追加的方式, 把命令的正确输出输出到指定的文件或设备当中。 | |
标准错误输出重定向 | 错误命令 2> 文件 | 以覆盖的方式, 把命令的错误输出输出到指定的文件或设备当中。 |
错误命令 2>> 文件 | 以追加的方式, 把命令的错误输出输出到指定的文件或设备当中。 | |
正确输出和错误输出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式, 把正确输出和错误输出都保存到同一个文件当中。 |
命令 >> 文件 2>&1 | 以追加的方式, 把正确输出和错误输出都保存到同一个文件当中。 | |
命令 &> 文件 | 以覆盖的方式, 把正确输出和错误输出都保存到同一个文件当中。 | |
命令 &>> 文件 | 以追加的方式, 把正确输出和错误输出都保存到同一个文件当中。 | |
命令 > 文件1 2> 文件2 | 以覆盖的方式,把正确输保存到文件1中, 把错误输出保存到文件2中。 | |
命令 >> 文件1 2>> 文件2 | 以追加的方式,把正确输保存到文件1中, 把错误输出保存到文件2中。 |
由于我们事先无法得知我们输入的一条命令是否会报错,所以我们通常使用正确输出和错误输出同时报错的形式。
输出重定向有一种特殊的用法,就是把输出的信息重定向到
/dev/null
,
/dev/null
就像一个垃圾箱,可以接受任何输出信息,当你把输出重定向到
/dev/null
时,也就意味着你把输出信息丢弃了。例如:
三、输入重定向
输入重定向就是改变输入的方式,由标准输入改为文件输入或其他输入方式。以
wc
命令为例,讲解一下输入重定向。
wc
命令的作用是统计文本中的字节、单词、行的数量。若使用标准输入,则输入
wc
后,按下回车,输入一系列文本后,按
ctrl+D
退出,就会输出你输入的文本的统计信息,如下图所示:
最后一行的
5 7 14
分别表示行数、单词数、字节数。
wc
还有一些选项:
-c
是统计字节数,
-w
是统计单词数,
-l
是统计行数。
倘若使用文件作为
wc
命令的输入,则应该这样写:
wc < 文件名