一、输入输出的定义
1.输入
用键盘,鼠标这些硬件在系统录入的字符
2.输出
系统接收到我们想要实现的功能字符后,经过进程的处理产生字符
输出会有两种情况
编号1为正确输出
编号2为错误输出
默认两种输出都会被系统定向到字符设备中
二、管理输出
1.非交互式多行录入
vim C_pass.sh
passwd
sh C_pass.sh
是不能自动运行的
passwd <<END
hello
world
END
sh C_pass.sh
可以自动运行避免交互
2.管理输出
1.重定向
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
2>&1 #把错误输出的编号由2转换为1
用student用户做以下实验
find /etc/ -name passwd > file.out
find /etc/ -name passwd 2> file.out
find /etc/ -name passwd &> file.all
find /etc/ -name passwd > file 2>&1
注意:重定向是会覆盖原文件内容的!!!”
vim westos
hello westos
find /etc/ -name passwd > redhat
cat westos #原文件内容丢失
2.追加
保持原文件内容不变的情况下把输出追加到文件之后
>> ##追加正确输出
2>> ##追加错误输出
&>> ##追加所有输出
find /etc/ -name passwd >> redhat
find /etc -name passwd 2>> redhat
find /etc -name passwd &>> redhat
3.管道
把输出变成下一个程序的输入
管道是用来组合多条命令的使用的
ls /bin | wc -l
注意:通过管道后输出会变成输入,那么是无法保存在文件中的
tee ##复制输出到指定位置
ls /bin | tee file | wc -l
cat file # file中已经保存了输出