1.标准输入输出
设备 |
设备文件名 |
文件描述符 |
类型 |
键盘 |
/dev/stdin |
0 |
标准输入 |
显示器 |
/dev/stdout |
1 |
标准输出 |
显示器 |
/dev/stderr |
2 |
标准错误输出 |
2.输出重定向
类型 |
符号 |
作用 | ||
标准输出重定向 |
命令>文件 |
以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中。 | ||
命令>>文件 |
以追加的方式,把命令的正确输出输出到指定的文件或设备当中 | |||
标准错误输出重定向 |
错误命令 2>文件 |
以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中。 | ||
错误命令 2>>文件 |
以追加的方式,把命令的错误输出输出到指定的文件或设备当中 | |||
正确输出和错误输出同时保存 |
命令> 文件 2>&1 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 | ||
命令 >> 文件 2>&1 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 | |||
命令 &>文件 |
以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中 | |||
命令 &>>文件 |
以追加的方式,把正确输出和错误输出都保存到同一个文件当中 | |||
命令>>文件1 2>>文件2 |
把正确的输出追加到文件1中,把错误的输出追加到文件2当中 |
用法举例如下:
date > test --正确输出
date >> test --正确输出
sdfasdf 2> test --错误输出,注意2和>之间是连续的,不能有空格
dasdfas 2>> test --错误输出,注意2和>之间是连续的,不能有空格
date >> test 2>&1
date &> test
date >>test1 2>> test2
注意:ls &>>/dev/null,将一个命令的输出到/dev/null中,这个可以看做是一个文件,看做“黑洞”,但写入的内容永久丢失,我们写shell脚本时,有时候一些命令输出根本没什么意思,我们就可以利用这个方式,将其输出结果丢到这个“黑洞”中。
3.输入重定向
wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l 统计行数
理解:通常我们敲入命令输入,但是这里可以将文件当成命令执行。
命令<文件 --把文件作为命令输入
举例如下:
wc <hello.sh --统计文件hello.sh的字节数、单词数、行数
wc --只执行wc,可以输入要写的东西,使用ctrl+d结束,会统计你已经输出的结果。
wc <<hello --使用<<,表示当再次输入hello时退出。