Linux系统的输入与输出

在Linux系统中正确输出的编号为1,错误输出的编号为2

管理输入输出的符号:

(1)输出重定向:

> 重定向正确输出
2> 重定向错误输出
&> 重定向所有输出

注意:每次输出后会覆盖文件原本内容
直接“>“ 文件名 可以直接清空文件内容
示例: 以下实验必须在student用户下完成
首先我们通过命令find /etc -name passwd 查找etc目录下含有名称为passwd的文件
在这里插入图片描述
共有2个正确输出和17个错误输出
1)定向正确输出到file
在这里插入图片描述

2)定向错误输出到file.err
在这里插入图片描述
3)定向所有输出到file.all
在这里插入图片描述
4)定向正确输出到file同时定向错误输出到file.err
在这里插入图片描述
5)清空文件file
在这里插入图片描述
(2) 输出追加

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

示例:
同样我们通过命令find /etc -name passwd 查找etc目录下含有名称为passwd的文件在这里插入图片描述
定向正确输出到file
在这里插入图片描述
此时文件file 内容为
在这里插入图片描述
再追加错误输出到文件file内
在这里插入图片描述
此时文件file的内容为
在这里插入图片描述
我们可以看到错误输出被追加到文件file的最后

2."|" 管道符 将输出变成输入 管道符只能通过编号为1 的正确输出
示例:显示/etc/passwd文件的第15-18行内容
首先我们可以通过vim查看/etc/passwd文件的第15-18行内容为
在这里插入图片描述
要显示第15-18行我们可以先显示其前18行再显示这18行的后4行,此时便需要用管道符“|"将前18行的输出转为输入
在这里插入图片描述
3.“tee” 复制输入变成输出
示例:显示/bin中文件名包含大写字母的文件,保存到bin_file文件中并统计个数显示到屏幕
如题我们需要对一个输出进行两种操作此时便需要用到“tee“来对输出进行复制
首先我们通过指令
在这里插入图片描述
查看目录bin下文件名包含大写字母的文件
然后我们便可通过管道符“|“与“tee“复制该输入保存到bin_file文件中,并通过管道符“|“将该输出变为输入再执行wc -l指令统计其个数显示到屏幕
在这里插入图片描述
4.“2>&1” 把错误输出的编号由2转变为1
以该输出为例
在这里插入图片描述
若想对该输出进行行数统计则需要该输出通过管道符“|“后执行wc -l 指令
但是由于管道符“|“只能通过编号为1的正确输出所以若直接执行find /etc -name passwd | wc -l指令,错误输出无法经过管道符而显示到字符栏,只有两个正确输出经过管道符并执行指令wc -l 得到错误结果2
在这里插入图片描述
所以为了使错误输出能够通过管道符,需要通过“2>&1将该输出的错误输出的编号由2改成1,如此便可使所有输出通过管道符执行wc -l指令得到正确答案
在这里插入图片描述

例题:在student用户下查找/etc下passwd文件,显示命令输出并保存输出到file.all中

在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章