在Linux系统中正确输出的编号为1,错误输出的编号为2
管理输入输出的符号:
1.
(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中