Linux中的输入输出管理
输入输出的定义
-
字符设备
显示字符到屏幕上的设备文件 -
标准输入—stdin
编号是0,在电脑中的位置为 /proc/self/fd/0 ##self可在桌面的System Monitor/bash 中找到
主要由键盘、鼠标和打字机等获得 -
标准正确输出—stdout
标号为1,在电脑中的位置为 /proc/self/fd/1 -
标准错误输出—stderr
标号为2,在电脑中的位置为 /proc/self/fd/2
如何管理输入
- 输入即外界传递到程序中的信息
- > ———##输入重定向(单行)
例:
tr 'a-z' 'A-Z' < westos ##转换westos文件中的所有字母为大写
- >>——##输入重定向(多行录入)
- 例:
vim westos ##进入vim后编辑下述内容
date ##日期
passwd westos <<EOF ##更改用户westos的密码,需要多行录入。EOF是任意字符,一般写为EOF
westos
westos
EOF ##当字符再次出现的时候表示录入结束
cal ##日历
sh westos ##运行westos这个文件
- 如何管理系统的输出
1、重定向
符号 | 输出重定向 |
---|---|
> | 重定向正确输出 |
2> | 重定向错误输出 |
&> | 重定向正确和错误输出 |
注意:重定向输出后会覆盖原文件的内容
例:做以下定向输出实验时不能在超级用户下做,需切换到普通用户。
find /etc -name passwd > westos.out
##查找/etc/下的passwd文件正确输出保存到/tmp目录中的westos.out中
find /etc -name passwd 2> westos.out
##查找/etc/下的passwd文件错误输出保存到/tmp/目录中的westos.err中
find /etc -name passwd &> westos.all
##查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中
2、追加输出
符号 | 追加输出 |
---|---|
>> | 追加正确输出到文件最后 |
2>> | 追加错误输出到文件最后 |
&>> | 追加所有输出到文件最后 |
注意:追加和重定向功能类似,但是不会覆盖原文件内容
3、管道 “|”
作用:把前一条命令的输出变成输入传递到下一条命令进行操作
注意:管道只处理正确输出,利用“2>&1”可以把编号为2的输入转换到编号为1的输出中;可以利用“tee”复制输出到指定位置;管道在一条命令中可以使用多次
例:
powershell
find /etc -name passwd 2>&1 | tee /dev/pts/0 | wc -l
##查找/etc/下的passwd文件统计输出行数并显示输出内容
find /etc -name passwd 2> /dev/null
##查找/etc/下的passwd文件屏蔽错误输出
4、补充题
用脚本非交互模式编写文件westos.file内容为:
hello linux
hello westos
hello linux
westos linux is very nice !!
vim xiaowuzi ##编辑xiaowuzi文件
cat >westos.file <<EOF
hello linux
hello westos
hello linux
westos linux is very nice !!
EOF
sh xiaowuzi ##运行xiaowuzi文件
cat westos.file ##看westos.file文件内容