设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout |
1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
标准的输入输出设备就这些,还有其他的输入输出设备:鼠标,打印机,投影仪等。
我们可以把输出到屏幕上的结果重定向到文件里;
ls > text.log 把ls命令的结果保存到text.log 文件中, text.log文件不存在会自动创建, > 会覆盖之前文件的内容,我们用 ls >> text.log 就会追加而不会覆盖。这是保存正确的输出信息。 > 和 >> 两边是有空格的。
ls 2>text.log 把ls命令错误的信息保存到text.log 文件中, text.log文件不存在会自动创建, > 会覆盖之前文件的内容,我们用 ls 2>>text.log 就会追加而不会覆盖。这是保存错误的信息。 2> 和 2>> 两边是无空格的。
这个命令比较不实用,我们都知道命令错误还会不修改是吧,他错误和正确保存信息格式不一样就没太大用处。
所以我们用下面的
ls &>>text.log 错误和正确都放入同一个文件
ls>>text.log 2>>text2.log 错误和正确分开放入文件
我们在有些情况下,只想知道结果,而不管过程,过程产生的我们不关心,我们可以放入系统提供的一个空洞文件,相当于一个垃圾袋,放入就找不到了
ls &>/dev/null
直接输入wc回车然后开始随意输入完毕后 ctrl + D 结束输入 显示输入了 7 行 9个单词(以空格和换行区分) 43个字符。我们也可以加上选项只查看单个内容。
我们的WC 命令是统计键盘输入的,但是我们把键盘输入重定向到文件,就可以统计文件的信息了。
wc < text.log wc text.log 这两种都可以计算文件的信息。
wc << cl ..... cl 这种是一个标记当 << 后面的内容遇到第二个时,中间的内容就会被统计。