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记录命令。

管道习题测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值