码迷,mamicode.com
首页 > 系统相关 > 详细

Linux 管道

时间:2018-07-17 18:07:28      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:电子邮件   proc   printer   处理   输入   lin   结果   符号   因此   

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" user@example.com :通过电子邮件发送输入
    技术分享图片
    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 管道

标签:电子邮件   proc   printer   处理   输入   lin   结果   符号   因此   

原文地址:http://blog.51cto.com/13805636/2145945

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!