利用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 '^-'
*.在使用管道符的组合命令中, 只有第一个命令需要 "被作用对象"
希望对题主有帮助,欢迎追问
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)