码迷,mamicode.com
首页 > 系统相关 > 详细

linux命令管道工作原理与使用方法

时间:2017-02-10 13:11:00      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:通过   play   ges   back   应用   linu   错误输出   转发   能力   

 

一、管道定义

管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称为半双工管道。管道的这一特点决定了器使用的局限性。管道是Linux支持的最初Unix IPC形式之一,具有以下特点:

*** 数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道);如果要进行双工通信,需要建 立两个管道。

*** 管道只能用于父子进程或者兄弟进程间通信。,也就是说管道只能用于具有亲缘关系的进程间通信。

注意从管道读数据是一次性操作,数据一旦被读,它就从管道中被抛弃,释放空间以便写更多的数据。

 

二、管道命令

command1 | command2 | command3

 

操作符是:”|”,它只能处理经由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后,传递给下一个命令,作为标准的输入.

管理命令的输出说明:

技术分享

【指令1】正确输出,作为【指令2】的输入 然后【指令2】的输出作为【指令3】的输入 ,【指令3】输出就会直接显示在屏幕上面了。

通过管道之后【指令1】和【指令2】的正确输出不显示在屏幕上面

【提醒注意】:

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

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

 

三、管道应用

1.读出logcat.log文件的内容,通过管道转发给grep作为输入内容

cat logcat.log | grep –n ‘ActivitManager’

技术分享

 

#2.读出logcat.log文件的内容,通过管道转发给grep作为输入内容,过滤包含‘Displayed’的行,将输出内容再作为输入能过管道转发给下一个grep

cat logcat.log | grep –n ‘Displayed’| grep ??

技术分享

 

#3.读出logcat.log和wirelessqa.log文件的内容,出错的内容会打印在屏幕上,正确的会通过管道传给grep

技术分享

 

#4.读出logcat.log和wirelessqa.log文件的内容,出错的内容会重定向到/dev/null,正确的会通过管道传给grep

技术分享

 

#5.读出logcat.log通过管道传给ls,由于ls不支持标准输入,因此之前读入的数据丢失。

linux命令管道工作原理与使用方法

标签:通过   play   ges   back   应用   linu   错误输出   转发   能力   

原文地址:http://www.cnblogs.com/sallyliu/p/6385806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!