linux系统输入输出管理

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

当系统运行一个程序时,需要从某个位置读取输入信息,然后经过cpu处理
最后将输出显示到屏幕或者文件,进程通过文件描述的编号通道来获取输入并输出
标准输入0    从键盘获得输入
标准输出1    输出到屏幕(即控制台)
错误输出2    输出到屏幕(即控制台) 

输入设备: 就是键盘、鼠标和一些硬件设备在系统输入的字符
输出设备: 就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符并且输出到屏幕上
输入会有两种:编号1为正确输出,编号2为错误输出
默认这两种输出都会被系统定向到字符设备中 /dev /pts中 

2.控制输入输出的符号(这里面牵扯到一个管道符的问题)
输出重定向 : 正确为1 , 错误为2 (因为计算机为二进制)
注意:直接输出重定向会覆盖掉原文内容

>重定向正确输出 (将正确的定向输出到指定地方)
2>重定向错误输出 (将错误的定向输出到指定地方)
&>将所有的都重定向输出
>file清空file


以下实验必须在普通用户模式下进行

(1)先找到实验文件

重定向的目的文件如果存在直接覆盖,如果没有也不需要提前建立,它会在重定向的同时建立这个文件

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


(3)find /etc/ -name passwd 2> file.err ##定向错误输出到file.err

(4)find /etc/ -name passwd &> file.all ##定向所有输出到file.all

(5)> file ##清空file

定向输出正确或者错误的到文件中时,剩下的错误或者正确的直接显示在shell命令框,并且定向输出到的目的文件的内容会被覆盖

输出追加在后面不覆盖

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


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

(1)find /etc/ -name passwd >> file ##追加正确输出到file

(2)find /etc/ -name passwd 2>> file##追加错误输出到file

(3)find /etc/ -name passwd &>> file##追加所有输出到file

3.管道的应用
什么是管道以及管道的作用

(1) | (管道)把前一条命令的输出变成后一条命令的输入
(2)管道只识别正确的信息,也无判断能力,只能让正确的信息通过 (根本就看不见错误的东西,不存在判断能力)
注意:

管道只允许正确输出通过
通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”

此实验在普通用户下操作:
find /etc/ -name passwd | wc -l##结果为2,因为错误输出不能通过管道

find /etc -name passwd 2>&1|wc -l ##结果为19,因为编号为2的输出被“2>&1”转换为编号1

find /etc -name passwd 2>&1|tee file |wc -l ##保存一份输出到file再统计行数

注意:当使用tee时,一定要注意其与wc -l的顺序,如果wc -l在前,那么输出保存的内容便是wc -l统计的结果

重定向总结如下:
重定向符号:

“>“      输出重定向到一个文件或者设备,并且覆盖原来的文件
“>! “    输出重定向到一个文件或者设备,强制覆盖原来的文件
“>>“     输出重定向到一个文件或者设备,追加在原来的文件后面(不覆盖原来文件的内容)
“< “     输入重定向到一个程序

标准错误重定向符号:

“2>"         将一个标准错误输出重定向到一个文件或者设备,覆盖原来的文件
"2>>"      将一个标准错误输出重定向到一个文件或者设备,追加到原来的文件后面
"2>&1"   将一个标准错误输出重定向到标准输出   注释:1代表标准输出 2代表错误输出
">&"       将一个标准错误输出重定向到一个文件或者设备,覆盖原来的文件
"|&"         将一个标准错误 管道输送 到另一个命令作为输入

4.输入重定向
什么叫做输入重定向?

允许用户不通过键盘输入而从文件中得到输入数据,这就允许用户使用一些编辑器生成一些文件,然后将文件内容输送到一个命令中。
简单说,一般输入设备总是键盘,如果你把文件的内容作为输入,这个就是“输入重定向”

输入重定向的意思是在命令行一条一条输入的内容不必很繁琐的输入
只需要将所有想要执行的命令打包其写入一个文件中,执行此文件便可
例如:用输入重定向同时执行passwd cal date命令

先建立一个file.sh文件,并在插入模式写入以下内容
cat >file  <<EOF
hello
WORLD
EOF

此模式必须在root(超级用户模式下才能成功)
必须以EOF结束才可以

file.sh   passwd   westos 
将passwd 和 westos文件同时写在file.sh shell脚本当中,可以实现前两个文件的批处理
将两个文件打包在一块,这样有利于打包提高效率,只有超级用户才有这个权力
这样做有利于文件的批处理,将好多文件集中包装在一起.
<<之后的字符表示开始,当再次出现相同的字符时,停止输入,可以自定义字符
sh是对脚本进行调用解析,sh记录命令

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值