linux系统的输入输出
一、系统中输入输出的理解
shell程序中的指令------>cpu产生运算结果------->字符设备
在shell程序中输入指令,送到cpu中运算产生的结果,再送到字符设备中显示。
二、管理输入输出的符号
1、输出重定向
改变程序的输入来源和输出地点
使用方法:
命令 > 文件 ###以覆盖的方式,把命令正确输出的内容导入到指定的文件、设备中
命令 >> 文件 ###以追加的方式,把命令正确输出的内容导入到指定的文件、设备中
命令 2> 文件 ###以覆盖的方式,把命令错误输出的内容导入到指定的文件、设备中
命令 2>> 文件 ###以追加的方式,把命令错误输出的内容导入到指定的文件、设备中
‘命令 &> 文件’ = ‘命令 > 文件2>&1’ ###以覆盖的方式,把命令正确和错误输出的所有内容导入到指定的文件、设备中
‘命令 &>> 文件’ = ‘命令 >> 文件2>&1’ ###以追加的方式,把命令正确和错误输出的所有内容导入到指定的文件、设备中
2、输出重定向
‘>’ ###重定向正确的输出
‘2>’ ###重定向错误的输出
‘&>’ ####重定向所有的输出
注:重定向会覆盖原文件;2>&1把错误的结果转换为正确的1,本来正确的不改变,即输出所有。
例:
在普通用户下进行:
find /etc/ -name passwd > file ###查找/etc/ 文件命中包含passwd的文件并将正确的输出导入file中
find /etc/ -name passwd 2> file.err ###查找/etc/ 文件命中包含passwd的文件并将错误的输出导入file.err中
find /etc/ -name passwd &> file.all ###查找/etc/ 文件命中包含passwd的文件并将正确和错误的输出导入file.all中
3、输出追加
‘>>’ ###追加正确输出到文件
‘2>>’ ####追加错误输出到文件
‘&>>’ ####追加所有的输出到文件
注:追加不会覆盖原文件内容
例:
4、管道符的应用
管道符的作用:’|‘管道符的作用是把前一条命令的输出变成后一条命令的输入
注:管道只允许正确的输出通过;错误的输出无法通过管道符。
通过管道的输出将会变成输入,管道符后的命令处理
如果需要保存输出的内容,那么需要复制一份输出,用到的命令是’tee’
5、输入重定向
把文件直接导入到命中
如下:
注:’<<EOF’为输入标书符,再次遇到EOF字符结束。