深入探究系统中的输入输出管理

系统中的输入输出管理

1.理解系统中的输入输出

shell中的指令----->cpu产生运算结果----->字符设备(默认/dev/pst)

输入输出系统是计算机系统中的主机与外部进行通信的系统。它由外围设备和输入输出控制系统两部分组成,我们在shell中键入指令,然后送入CPU中运算产生结果,再将结果送到字符设备中显示。

2.管理输入输出的符号

在这里插入图片描述

1).输出重定向
输出重定向:改变程序运行的输入来源和输出地点

主要有下述使用方法:

输出重定向
类型符号
1>重定向正确输出-----1一般省略
2>重定向错误输出
&>重定向所有输出

注意:
重定向会覆盖原文件内容
以下实验必须在非root用户下完成

实验:

find /etc/ -name passwd 

上述命令行是指在目录/etc中寻找名字中含passwd的文件
在这里插入图片描述

注意:上图中显示的输出仅有以下两个正确输出
/etc/passwd
/etc/pam.d/passwd

现在我们用以下命令进行输出重定向

find /etc/ -name passwd > file  
##定向正确输出到file

在这里插入图片描述

再查看文件法file的内容
在这里插入图片描述

find /etc/ -name passwd  2> file1
##定向错误输出到file1

在这里插入图片描述

find /etc/ -name passwd  &> file2
##定向所有输出到file2

在这里插入图片描述

分别查看文件file1和文件file2的内容
在这里插入图片描述

在这里插入图片描述

> file 				##清空file

2).输出追加

>>		##追加正确输出到文件最后
2>>		##追加错误输出到文件最后
&>>		##追加所有输出到文件最后

注意:
追加不会覆盖原文件内容

实验:
首先我们建立一个文件file,在文件里写入“hello,world ,westos“
我们先使用输出重定向将正确输出放到文件file中观察变化
然后再使用输出追加命令将输出放到文件file中观察变化
在这里插入图片描述

由下图可见,=输出重定向会覆盖原文件内容
在这里插入图片描述

先将file文件内容恢复“hello,world,westos”,现在使用输出追加命令再次查看文件内容,可见原文件内容没有被覆盖
在这里插入图片描述

/dev/null ##系统垃圾箱

3)管道符

符号为
|
作用:可以使多条命令同时执行(将前一条命令的正确输出作为管道符后面命令的标准输出)

例:显示/etcpasswd文件的第13-16行内容
在这里插入图片描述

注意

错误输出不能被管道符处理(如上个实验中fand /etc/ -name passwd命令中的错误信息)
例: find /etc/ -name passwd | tee file—>该条命令是指将管道符前面命令产生的输出复制一份保存到文件file中(事先已将文件file中的内容清空),我们观察结果可得错误输出并没有复制到文件file中,而是被管道符拦截下来。
在这里插入图片描述

错误输出编号为1,若想要用管道符处理错误信息,用 2>&1 将错误信息编号转变为1。

4)输入重定向

输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。

输入重定向
语法功能
命令<文件1命令把文件1的内容作为标准输入设备
命令<<标示符命令把标准输入中读入内容,直到遇到“标示符“分解符为止
命令<文件1>文件2命令把文件1的内容作为标准输入,把文件2作为标准输出

例:
在这里插入图片描述
图中 # cat <<ha(这个字符串是任意的,没有任何含义),它的作用是把两个标示符“ha”之间的内容作为标准输入传递给cat

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值