文件输入输出的管理
1.输入输出的定义
1)输入就是我们的键盘,鼠标和我们用这些硬件在系统只哦个录入的字符
2)输出就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符
输出会有两种出现:
编号1为正确输出
编号2为错误输出
默认着两种输出都会被系统定向到字符设备中
2.非交互式多行录入
用重定向完成非交互式多行录入
cat >file <<END #查看dong.sh的文件把它导入到file中
hello dong
welcome to Xi'an
END #保证首尾一致可以
在我们调用sh命令不能自动运行,需要借助<<输入重定向符号进行重定向。
echo命令用于在shell中打印shell变量的值,或者直接输出制定的字符串。
3.如何管理输出
用student普通用户做以下实验:
> #重定向正确输出
2> #重定向错误输出
&> #重定向所有输出
2>&1 #把错误输出的编号由2转换为1
find /etc/ -name passwd > file.out #将passwd里面正确的输出( > )重定向到file.out中
find /etc/ -name passwd 2> file.out #将passwd里面错误的输出(2>)重定向到file.out中
find /etc/ -name passwd &> file.all #将passwd里面全部的输出(&>)重定向到file.all中
find /etc/ -name passwd > file 2>&1 #将passwd里面错误的输出转化为正确的输出(2>&1)重定向到file中
"注意:从定向是会覆盖原文件内容的!!!"
vim westos
hello westos ##westos文件内容
find /etc/ -name passwd > westos
cat westos ##原文件内容不见了,只剩下重定向passwd的正确内容
追加:保持原文件内容不变的情况下把输出追加到文件之后
>> ##追加正确输出
2>> ##追加错误输出
&>> ##追加所有输出
find /etc/ -name passwd >> westos #将passwd的正确输出内容追加( >> )到westos中
find /etc/ -name passwd 2>> westos #将passwd的错误输出内容追加( 2>> )到westos中
这次用追加重定向把其它内容追加到原文件内容的后面,原文件中的内容依然存在。
4.管道:把输出变成下一个程序的输入。管道是用来组合多条命令的使用的。
ls /bin | wc -l
"注意:通过管道后输出会变成输入,那么是无法保存在文件中的"
ls /bin | tee file | wc -l
cat file ## file中已经保存了输出
tee ## 复制输出到指定位置