Linux 管道
Linux 管道 “|”我们在使用Linux的时候,会遇到这种情况:执行命令A的结果,然后把执行结果放到B文件里,我们可能会使用重定向解决,但是文件C需要调用这个执行结果的时候,我们还要读取文件B?这个时候我们就需要管道命令了。
管道(使用符号“|”表示)用来连接命令
[*] 管道命令的操作符是:”|”,处理前一个命令的正确执行结果,传递给下一个命令,将作为标准的输入,只传递正确的信息(错误结果需要转换为正确结果)。
[*]语法:命令1 | 命令2 | 命令3 | …
http://i2.运维网.com/images/blog/201807/17/f69f508b45aad485519536b97302a8d1.png
– 将命令1的输出发送给命令2的输入,命令2的输出发送到命令3的输入
– 错误默认不能通过管道转发,可利用2>&1 或 |& 实现
– 最后一个命令会在当前shell进程的子shell进程中执行用来
– 组合多种工具的功能
[*]举例
a.ls -l /etc | less: 一页一页地查看输入
b.echo "hello world" | mail -s "test" user@example.com :通过电子邮件发送输入
http://i2.运维网.com/images/blog/201807/17/d1aa4891a1ce9e2caa466fe0697203de.png
c.echo "testprint"| lpr -P printer_name: 把输入发送给打印机
d. echo 2.5+1.5 |bc:计算
http://i2.运维网.com/images/blog/201807/17/132fdbe1f5b05ab1e8da29a0de69ea86.png
e.将错误信息转换为正确信息
http://i2.运维网.com/images/blog/201807/17/a9d87da07cd0fa8e00affec5d79b987e.png
http://i2.运维网.com/images/blog/201807/17/3a931a73c0edfe884381c4c71081c44e.png
正确信息统计出有422个
http://i2.运维网.com/images/blog/201807/17/b98d539e5eedc0d6e4eee5ae37c5fa8d.png
用2>&1转换后正确信息加上错误的一共443个
http://i2.运维网.com/images/blog/201807/17/11e15763422458dcac6969a10a829423.png
用|&转换后正确信息加上错误的一共443个
f.tar -cvf - /home | tar -xvf -:将 /home 里面的文件打包,但打包的数据不是记录到文件,而是传送到 stdout,经过管道后,将 tar -cvf - /home 传送给后面的 tar -xvf - , 后面的这个 - 则是取前一个命令的 stdout, 因此,就不 需要使用临时file了
页:
[1]