16. Linux 管道符( ‘|’ )

16. Linux 管道符( ‘|’ ),第1张

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

注意:

1、管道命令只处理前一个命令正确输出,不处理错误输出。

2、管道命令右边命令,必须能够接收标准输入流命令才行。

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

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

区别是:

1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入

左边的命令应该有标准输出 >右边只能是文件

左边的命令应该需要标准输入 <右边只能是文件

2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行

这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。

题主你好,

首先, linux下的管道符使用"竖杠"表示:

|

它的作用是:

连接两个命令,将第一个命令的输出作为第二个命令的输入.

形象一点的比喻:

管道符好比流水线上的传送带,比如,一个流水线是由两步组成的,先由第一道工序将黄桃洗净,然后通过传送带将洗净的黄桃送到第二道工序装罐,用管道的思维去处理这个过程就是:

清洗 黄桃 | 装罐

需要注意的是,其实每个过程都是由 "动作+被作用对象"组成,也就是说,上面的例子其实是:

清洗 黄桃

装罐 洗净的黄桃

这两步组成的,但由于管道符的使用,除了第一道工序需要"被作用对象"外,后面的工序使用的是管道符传过来的"前一道工序处理过的对象".

举例来说,使用ls和grep这两个命令实现只输出文件的详细信息,不输出目录的详细信息.正常情况下这俩半个命令的用法是:

ls 选项 路径

grep 模式 文件流

而使用管道连在一起的写法:

ls -l /root/ok/tmp | grep '^-'

*.在使用管道符的组合命令中, 只有第一个命令需要 "被作用对象"

希望对题主有帮助,欢迎追问


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8445029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存