Linux 管道
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 管道相关的知识,希望对你有一定的参考价值。
Linux 管道 “|”
我们在使用Linux的时候,会遇到这种情况:执行命令A的结果,然后把执行结果放到B文件里,我们可能会使用重定向解决,但是文件C需要调用这个执行结果的时候,我们还要读取文件B?这个时候我们就需要管道命令了。
管道(使用符号“|”表示)用来连接命令
-
管道命令的操作符是:”|”,处理前一个命令的正确执行结果,传递给下一个命令,将作为标准的输入,只传递正确的信息(错误结果需要转换为正确结果)。
- 语法:命令1 | 命令2 | 命令3 | …
– 将命令1的输出发送给命令2的输入,命令2的输出发送到命令3的输入
– 错误默认不能通过管道转发,可利用2>&1 或 |& 实现
– 最后一个命令会在当前shell进程的子shell进程中执行用来
– 组合多种工具的功能 - 举例
a.ls -l /etc | less : 一页一页地查看输入
b.echo "hello world" | mail -s "test" [email protected] :通过电子邮件发送输入
c.echo "testprint"| lpr -P printer_name: 把输入发送给打印机
d. echo 2.5+1.5 |bc:计算
e.将错误信息转换为正确信息
正确信息统计出有422个
用2>&1转换后正确信息加上错误的一共443个
用|&转换后正确信息加上错误的一共443个
f.tar -cvf - /home | tar -xvf -:将 /home 里面的文件打包,但打包的数据不是记录到文件,而是传送到 stdout,经过管道后,将 tar -cvf - /home 传送给后面的 tar -xvf - , 后面的这个 - 则是取前一个命令的 stdout, 因此,就不 需要使用临时file了
以上是关于Linux 管道的主要内容,如果未能解决你的问题,请参考以下文章