理解输入输出的定义
1)字符设备
字符设备就是显示字符到屏幕上的设备文件
2)stdin
标准输入
编号为0
键盘 鼠标 打字机
3)stdout
标准正确输出
标号为1
4)stderr
标准错误输出
标号为2
如何管理输入
1)< #输入重定向
tr ‘a-z’ ‘A-Z’ < test ##把test文件中的内容定向到tr程序中这里把“gang”文件中的内容定向到tr中转换了大小写
2)<< 多行录入
tr ‘a-z’ ‘A-Z’ <<EOF(字符任意)
EOF (当首字母再次出现表示录入结束)
当输入有多行时,通过EOF结束来将多行输入定向到tr中
如何管理系统输出
1)输出重定向
1> (1一般省略)
2>
&>
find /etc -name passwd > lg.out ##重定向正确输出
find /etc -name passwd 2> lg.out ##重定向错误输出
find /etc -name passwd &> lg.out ##重定向所有输出
先将etc中passwd的正确输出重定向到lg.out中,里面只有两条正确输出;其次把错误输出重定向到lg.out中,原先正确的两条输出被覆盖为错误的14条输出;
最后时所有输出重定向,文件里面的原内容被覆盖为14条错误输出和2条正确输出。
即:重定向管理输出后会覆盖原文件内容。
2)追加
1>>
2>>
&>>
find /etc -name passwd >> lg.out ##追加正确输出
find /etc -name passwd 2>> lg.out ##追加错误输出
find /etc -name passwd &>> lg.out ##追加所有输出
注意:追加和重定向功能类似,但是不会覆盖原文件内容
首先>>lg.out将正确输出追加到lg.out中,即除去文件原有的内容有添加了正确输出;2>>将错误输出追加了;&>>将所有输出追加了。
3)管道 “|”
把前一条命令的输出变成输入传递到下一条命令进行操作
注意: *管道只处理正确输出
*2>&1把编号为2的输入转换到编号为1的输出中
*tee 复制输出到指定位置
*管道在一条命令中可以使用多次
首先显示错误的输出以及统计正确的输出的条数为2;然后显示编号为1的输出中有16条。
通过tee将通过管道符的输入复制到指定文件并又通过管道符统计输出条数。