Linux 管道

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 管道相关的知识,希望对你有一定的参考价值。

Linux 管道 “|”


我们在使用Linux的时候,会遇到这种情况:执行命令A的结果,然后把执行结果放到B文件里,我们可能会使用重定向解决,但是文件C需要调用这个执行结果的时候,我们还要读取文件B?这个时候我们就需要管道命令了。


管道(使用符号“|”表示)用来连接命令

  1. 管道命令的操作符是:”|”,处理前一个命令的正确执行结果,传递给下一个命令,将作为标准的输入,只传递正确的信息(错误结果需要转换为正确结果)。

  2. 语法:命令1 | 命令2 | 命令3 | …
    技术分享图片
    – 将命令1的输出发送给命令2的输入,命令2的输出发送到命令3的输入
    – 错误默认不能通过管道转发,可利用2>&1 或 |& 实现
    – 最后一个命令会在当前shell进程的子shell进程中执行用来
    – 组合多种工具的功能
  3. 举例
    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 管道的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境进程间通信:管道及有名管道

linux学习——管道

Linux进程间通信

Linux--进程通信

Linux--进程通信

linux命令管道工作原理与使用方法