Linux中的输入输出管理

Linux中的输入输出管理

*输出实验需要用普通用户,输入实验需要用超级用户登陆

1 理解输入输出的定义

[1]字符设备
*字符设备就是显示字符到屏幕上的设备文件
*字符设备是指只能一个字节一个字节进行读写操作的设备,不能随机读取设备中的某一数据、读取数据要按照先后数据。
*字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED等。
*一般每个字符设备或者块设备都会在/dev目录(可以是任意目录,这样是为了统一)下对应一个设备文件。l
*inux用户层程序通过设备文件来使用驱动程序操作字符设备或块设备。

[2]stdin 标准输入
编号为0,用来显示输入信息
键盘 鼠标 打字机

[3]stdout
标准正确输出
编号为1,用来显示正确的信息

[4]stderr
标准错误输出
编号为2,用来显示错误的信息

2 如何管理输入

外界传递到程序中的信息
1)< #输入重定向

tr ‘a-z’ ‘A-Z’ < test
#把test文件中的内容定向到tr程序中

首先编辑一个test文件:
hello linux!
hello westos!!
然后利用tr程序将文件中的小写字母转换成大写字母
运行结果如下:

tr程序

2)<< #多行录入

tr ‘a-z’ ‘A-Z’ <<EOF(字符任意)
test #此处的test不能表示为文件名称只表示test字符
test1
EOF(当首字母再次出现表示录入结束)

*首先编辑一个test文件:
hello linux!
hello westos!!
之后编辑脚本文件:vim test.sh脚本文件
多行录入脚本文件
保存退出后,运行脚本文件:bash test.sh

多行录入脚本运行结果显示截图

3 如何管理系统输出

(1)输出重定向
[1] >
[2] 2>
[3] &>
find /etc -name passwd > westos.out
#重定向正确输出

find /etc -name passwd 2> westos.err
#重定向错误输出

find /etc -name passwd &> westos.all
#重定向所有输出

可以看出普通用户由于权限问题存在错误的输出:
所有输出截图
将正确的输出结果重定向到westos.out:

存入的正确的输出结果

因此只显示错误输出结果:
重定向正确结果
将错误的输出结果重定向到westos.err:

存入的错误的输出结果

因此只显示正确输出结果:

重定向错误结果
将全部的输出结果全部重定向到westos.all:
全部输出结果命令行:

[westos@westoslinux Desktop]$ find /etc -name passwd &>westos.all

注意:重定向管理输出后会覆盖原文件内容,若想要不覆盖,需要进行追加操作

(2)追加
[1] >>
[2] 2>>
[3] &>>
命令行

[westos@westoslinux Desktop]$ find /etc -name passwd >>westos.out
[westos@westoslinux Desktop]$ find /etc -name passwd 2>>westos.out
[westos@westoslinux Desktop]$ find /etc -name passwd &>>westos.out

find /etc -name passwd >> westos.out
#追加正确的输出

find /etc -name passwd 2>> westos.out
#追加错误的输出

find /etc -name passwd &>> westos.out
#追加所有的输出

shell中显示和重定向一致:

追加命令操作截图由于为了实验结果明显,将正确错误和全部结果全部追加到westos.out中:

追加文件中的内容*可以看出:追加和重定向功能类似,但是不会覆盖原文件内容

(3)管道 “|”
把前一条命令的输出变成输入传递到下一条命令进行操作

注意:
[1]管道只处理正确输出
[2]2>&1把编号为2的输入转换到编号为1的输出中
[3]tee 复制输出到指定位置
[4]管道在一条命令中可以使用多次

[westos@westoslinux Desktop]$ find /etc -name passwd 2>&1 |wc -l #统计passwd所有输出的数量
[westos@westoslinux Desktop]$ find /etc -name passwd 2>&1 |tee file1 |wc -l #将passwd中所有输出内容复制到file1文件中并统计行数

管道操作截图
将passwd中所有输出内容复制到file1文件中:
file1中存入全部的输出结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值