一.输入输出的定义
字符设备:就是显示字符到屏幕上的文件
stdin:标准输入 编号为0 (键盘鼠标打字机)
stout:标准正确输出 编号为1
sterr:错误输出 编号为2
二.如何管理输入
- “<” 输入重定向
tr 'a-z' 'A-Z ' < test #把test文件中的内容定向到tr程序中
- “<<” 多行录入
tr 'a-z' 'A-Z ' << EOF #此处EOF可为任意字符
test #此处的test只表示test字符
test1
EOF #当首字母再次出现表示录入结束
三.如何管理系统输出
1.输出重定向
> 、2>、 &>
find /etc/ -name passwd >file #将正确输出赋予文件file
find /etc/ -name passwd 2>file #将错误部分的输出赋予文件
find /etc/ -name passwd &>file #将全部输出赋予文件
#重定向管理会覆盖原文件内容
2.追加
>> 、2>>、 &>>
find /etc -name passwd >> 1.out #追加正确输出
find /etc -name passwd 2>> 1.out #追加错误输出
find /etc -name passwd &>> 1.out #追加所有输出
#追加与重定向功能类似,但不会覆盖原文件内容
附加:
gnome-session-quit --force 注销当前用户
find xxxxxx 2>/dev/null 屏蔽错误输出
xxx |tee /dev/pts/0| xxx 显示输出
四.管道符
“|”,竖线
作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
把前一条输出变成输入传递到下一条命令操作
find /etc/ -name passwd | wc -l #查看etc中passwd的正确输出有多少行
find /etc/ -name passwd 2>&1 |wc -l #查看etc中passwd的全部输出有多少行
(2>&1将错误输出导入正确输出中)
注:
1.管道只处理正确输出
2.2>&1把编号为2的输入转换到编号为1的输出中
3.管道在一命令中可使用多次
xargs命令扩展
由于很多命令不支持 | 管道来传递参数,而日常工作中又有这个必要,所以就有了 xargs 命令。
简单来说,xargs命令就相当于对管道命令进行了一个扩展,让所有命令都支持管道
例:搜索/etc目录下的所有".conf"结尾的文件信息,然后以详细列表形式显示
find /etc -name "*.conf" | ls -l
在ls命令之前添加一个xargs命令,这样ls命令就支持管道了,可以用于接收前一个命令的执行结果
find /etc -name "*.conf" | xargs ls -l