• 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不支持标准输入,因此之前读入的数据丢失。

  • 相关阅读:
    关于发现宇宙微波背景(CMB)辐射的一则趣闻
    windows 8,关闭随意窗体都提示“已停止工作”的解决的方法
    非洲小孩
    Android自己定义控件背景及其Drawable以实现扁平化
    POJ2533:Longest Ordered Subsequence
    iOS Dev (63) 怎样在 TableView 滚动时收起键盘?
    自己用c语言做的日历
    time .h 的用法
    动态规划--目标和问题
    Linux shell编程学习笔记---第八章
  • 原文地址:https://www.cnblogs.com/sallyliu/p/6385806.html
Copyright © 2020-2023  润新知