美文网首页Linux Shell
16. Linux 管道符( ‘|’ )

16. Linux 管道符( ‘|’ )

作者: 姜淑均 | 来源:发表于2017-09-03 07:53 被阅读18次

    利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。

    注意:
    1、管道命令只处理前一个命令正确输出,不处理错误输出。
    2、管道命令右边命令,必须能够接收标准输入流命令才行。

    1.利用一个管道

    # rpm –qa | grep licq
    

    这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。

    2.利用多个管道

    # cat /etc/passwd | grep /bin/bash | wc -l
    

    这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。

    管道命令与重定向区别

    区别是:
    1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入
    左边的命令应该有标准输出 > 右边只能是文件
    左边的命令应该需要标准输入 < 右边只能是文件
    2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行
    这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。

    相关文章

      网友评论

        本文标题:16. Linux 管道符( ‘|’ )

        本文链接:https://www.haomeiwen.com/subject/poydjxtx.html