##################### 输入输出的定义 ############
1.输入
就是我们的键盘,鼠标和我们用这些硬件在系统中录入的字符2.输出
就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符
输入会有两种出现
编号1为正确输出##
编号2为错误输出##
默认着两种输出都会被系统定向到字符设备中
################### 如何管理输出 ################
示例
1.非交互式多行录入
vim C_pass.sh
passwd
sh C_pass.sh
是不能自动运行的#####################手动改密码
passwd <<END
lee
lee
END
sh C_pass.sh
可以自动运行避免交互################自动改密码
#########################非交互式改密码也可以这样
passwd --stdin 用户 ##非交互式更改用户密码(不需要再次输入)
#例如:
echo westos(密码) | passwd --stdin lee(用户) #######管道########
示例
###############自动创建文件并且填入内容
示例
##############自动创建文件并且填入内容
#2,重定向
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
2>&1 #把错误输出的编号由2转换为1
"注意:重定向是会覆盖原文件内容的!!!"
示例
find /etc/ -name passwd > file.out
find /etc/ -name passwd 2> file.out
find /etc/ -name passwd &> file.all
vim westos
hello westos
find /etc/ -name passwd > westos
cat westos ##原文件内容不见了
#3,追加
#保持原文件内容不变的情况下把输出追加到文件之后
>> ##追加正确输出
2>> ##追加错误输出
&>> ##追加所有输出
示例
find /etc/ -name passwd >> westos
find /etc -name passwd 2>> westos
find /etc -name passwd &>> westos
#4,管道
#把输出变成下一个程序的输入
#管道是用来组合多条命令的使用的
ls /bin | wc -l
"注意:通过管道后输出会变成输入,那么是无法保存在文件中的"
tee ##复制输出到指定位置
ls /bin | tee file | wc -l
cat file ##file中已经保存了输出