当前位置:   article > 正文

linux下的重定向和管道_linux 管道和重定向

linux 管道和重定向

1.系统中输入输出的管理
程序:指令+数据
 读入数据:Input
 输出数据:Output
打开的文件都有一个fd: file descriptor (文件描述符) Linux给程序提供三种I/O设备
标准输入(STDIN)-0 默认接受来自键盘的输入
标准输出(STDOUT)-1 默认输出到终端窗口 
标准错误(STDERR)-2 默认输出到终端窗口 
I/O重定向:改变默认位置
--------------------- 

2.管理的输入输出
##输出重定向

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

  
注意:
    重定向会覆盖原文件内容

示例:
注意:以下实验必须在student用户下完成
find /etc/ -name passwd  > file        ##定向正确输出到file
find /etc/ -name passwd  2>     file.err    ##定向错误输出到file


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


> file                      ##清空file
##输出追加

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


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

示例:

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

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

find /etc/ -name passwd  &>>    file.all    ##追加所有输出到file



3.管道的应用
1.管道的作用
    “|” 管道的作用是把前一条命令的输出变成后一条命令的输入

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

此实验在普通用户下操作:
    ls /bin | wc -l     ##会看到的结果为1582,因为/bin下一共有1582个字节
    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统计的结果

4.输入重定向

输入重定向的意思是平常在命令行输入的内容不必很繁琐的一步步输入,只需要将其写入文件中,执行此文件便可
例如:

cat >file <<EOF
>hello
>linux

>test
>EOF

退出保存vim后,执行命令sh test.sh,就可以更改用户密码。

注意:
1.<<之后的字符表示开始,当再次出现相同的字符时,停止输入,可以自定义字符
2.sh是对脚本进行调用解析,sh记录命令。

管道习题测试

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/213051?site
推荐阅读
相关标签
  

闽ICP备14008679号