linux命令详解(10)linux 管道(pipe)命令详解.

2014-12-6 17:56:34     29 人阅读    

 linux 管道命令是在日常维护中使用最频繁的命令之一

使用管道(pipe)命令可以将一个进程的输出作为另一个进程的而输入,和标准输出,输出到文件不同,他输出的结果会直接调用另一个进程,并把输出的结果当做另一个进程的输入数据。

例如:  通过ls命令(进程)将 /tmp目录输出后,通过 sort命令(进程) 进行排序展示

[root@iZ258ostsiaZ ~]# ls /tmp | sort
hsperfdata_root
ssh-CNSVC19257


一、下面通过几个经典的 管道使用命令介绍管道的强大功能。

1、查看系统中已经安装的软件包中,带有mysql字符的数量
[root@iZ258ostsiaZ ~]# rpm -qa | grep mysql |wc -l
3

2、查看正在明星的 nginx进程
[root@iZ258ostsiaZ ~]# ps -aux | grep nginx
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root     14579  0.0  0.0   3752   552 ?        Ss   Nov12   0:00 nginx: master process ../sbin/nginx
nobody   14580  0.0  0.1   4364  1692 ?        S    Nov12   0:25 nginx: worker process
root     20496  0.0  0.0   5504   712 pts/0    S+   10:38   0:00 grep nginx

3、把 进程的列表通过分页的方式进行查询
  [root@iZ258ostsiaZ ~]# ps aux | less

 

二、如果在管道中想让后面的运行命令先执行的话可以通过添加反引号的方式.


例如:先通过which mysql 找到mysql的具体地址,然后使用rpm -qf查询找个安装包...
[root@iZ258ostsiaZ ~]# rpm -qf `which mysql`
mysql-5.1.73-3.el6_5.i686


三、管道配合 xargs命令,更强大的命令执行..

   [root@iZ258ostsiaZ ~]# echo mysql |xargs rpm -qa
    mysql-5.1.73-3.el6_5.i686
    上面的命令是 第一个命令 echo mysql  结果,通过管道给 xargs ,xargs 会调用 rpm -qa 命令,就把上一个输出当做输出执行。
    上面的命令等于  rpm -qa `echo mysql`
 
   继续看下一个
   [root@iZ258ostsiaZ ~]# ls /user/bin/rpm* |xargs rpm -qa

   上面的命令 是把 /user/bin/ 下面所有的 以rpm开头的文件当做参数传递给 xargs, xargs 会调用 rpm -qa ,把每一行都作为查询初入并执行命令,相当于批量执行了
 
   如果 /user/bin/ 下面有  如下  3个文件
   rpm1 
   rpm2
   rpm3
那么上面的命令就相当于 
 rpm -qa rpm1 
 rpm -qa rpm2 
 rpm -qa rpm3

厉害吧~~~  xargs 还有许多更强大,更好用的功能 我们后续介绍

  

   
本文是作者在读取《linux命令详解手册》之后的随手笔记,如果大家喜欢这本书,可以去购买


原文地址:http://www.itmmd.com/201412/266.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

linux命令详解(11)alias watch命令详解   上一篇
下一篇  linux命令详解(9)重定向 stdin 和 stdout使用详解

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!