zoukankan      html  css  js  c++  java
  • linux命令管道工作原理与使用方法

    一、管道定义

    管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称为半双工管道。管道的这一特点决定了器使用的局限性。管道是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’

    3

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

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

    4

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

    5

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

    6

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

  • 相关阅读:
    如何启用apache的gzip压缩?
    Zend Framework配置Nginx的rewrite
    数据库差异比较工具
    心愿王泽 杨颖 乔媛 唐景莲
    在所有存储过程中查找一个关键字
    通用分页存储过程
    JavaScript开发工具 Aptana
    js如何控制select控件(下拉列表)
    Read and write flat file
    Extreme Programming
  • 原文地址:https://www.cnblogs.com/sallyliu/p/6385806.html
Copyright © 2011-2022 走看看