大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。 连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。下面来看看管道是如何在构造一条Linux命令中得到应用的。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了自贡免费建站欢迎大家使用!
注意:
1、管道命令只处理前一个命令正确输出,不处理错误输出。
2、管道命令右边命令,必须能够接收标准输入流命令才行。
这条命令使用一个管道符“|”建立了一个管道。管道将rpm -qa命令的输出(包括系统中所有安装的RPM包)作为grep命令的输入,从而列出带有licq字符的RPM包来。
这条命令使用了两个管道,利用第一个管道将cat命令(显示passwd文件的内容)的输出送给grep命令,grep命令找出含有“/bin /bash”的所有行;第二个管道将grep的输出送给wc命令,wc命令统计出输入中的行数。这个命令的功能在于找出系统中有多少个用户使用bash。
区别是:
1、左边的命令应该有标准输出 | 右边的命令应该接受标准输入
左边的命令应该有标准输出 右边只能是文件
左边的命令应该需要标准输入 右边只能是文件
2、管道触发两个子进程执行"|"两边的程序;而重定向是在一个进程内执行
这些都是网上总结很多的,其实只要多加清楚用法,也一定有自己的一份不同描述。
简单来说就是,一个命令的结果作为另外一个命令(结果)的输入,管道是linux提供的一种常见的进程通信工具,也是很多shell命令能够灵活组合产生强大用途的一个重要工具。
管道是Linux由Unix那里继承过来的进程间的通信机制,它是Unix早期的一个重要通信机制。其思想是,在内存中创建一个共享文件,从而使通信双方利用这个共享文件来传递信息。由于这种方式具有单向传递数据的特点,所以这个作为传递消息的共享文件就叫做“管道”。
在管道的具体实现中,根据通信所使用的的文件是否具有名称,有“匿名管道”和“命名管道”。
管道命令符 " | " 的作用是将前一个命令的标准输出当作后一个命令的标准输入,格式为"命令A|命令B"。
例如:
搜索rsyslogd进程: $ ps -ef | grep rsyslogd
用反野形式查看/etc 目录中有哪些文件: $ ls -l /etc/ | more
bash解释器支持多种文本通配符,包括:
我们之前在学文本查询搜索命令时就用到了通配符,例如,在 /etc 目录下搜索所有的以host开头的文件:
$ find /etc -name "host*"
另外,bash解释器还支持很多的特殊字符扩展:
例如:
先定义名称为PRICE的变量值为5
$ PRICE=5
输出“价格是5”:
输出“价格是$5”,但因为美元符号与代表变量取值的$符号冲突,所以需要用到转义字符:
使用单引号,变量将不再被取值:
执行 uname -a 后可以查看到本机内核的版本与架构信息(反引号里面的命令会被执行):