Linux中的输入输出管理
1.什么时输入输出?
1)字符设备:字符设备就是显示字符到屏幕上的设备文件
2)stdin 标准输入
标号为0
例如:键盘、鼠标、打字机
3)stdout 标准正确输出
标号为1
4)stderr 标准错误输出
标号为2
我们打开一个shell,看一下它的进程,然后在/proc/3060/fd就可以看到标号为0,1,2的文件了
这里的文件0,1,2里面就存储了输入和输出
2.如何管理输入
1)< 输入重定向
tr ‘a-z’ ‘A-Z’ < test 把test文件的内容定向到tr程序中
2)<< 多行录入
tr ‘a-z’ ‘A-Z’ < < EOF(此处的EOF可以是任意的字符,作为标识,和后面的标识一样即可)
westos
linux
EOF(当这个字符再次出现时表示录入结束)
3.如何管理系统的输出
1)输出重定向 >
输出重定向会覆盖原文件的内容
椭圆形里面的都是正确的输出,矩形圈中的都是错误的输出。
“>” 输出正确的结果
正确的输出被输出在了westos文件里面
“2>" 输出错误的结果
错误的输出被输出在了westos文件里面
“&>" 输出所有的结果
所有的输出都被输出在了westos文件里面
2)追加 >>
因为输出重定向时会覆盖原文件,所有使用>>就不会覆盖原文件,而是在原文件的基础上向后面继续补充。
">>"在文件原有内容的基础上,向文件内输出正确的输出
"2>>"在文件原有内容的基础上,向文件内输出错误的输出
"&>>"在文件原有内容的基础上,向文件内输出所有的输出
3)管道符 |
把前一条命令的输入变成输出传递到下一条命令进行操作
切记:管道只处理正确的输出
要想用管道输出错误的输出,我们则需要把错误的输出放在正确的输出的文件中,这样错误的输出就可以被输出出来了。
“2>&1"把编号为2的输入转换到编号为1的输出中
管道在一条命令中可以多次被使用
4)tee 复制输出到指定位置
把输出的结果复制了一份给了westos文件