zoukankan      html  css  js  c++  java
  • 关于Linux_shell中的管道命令pipe “|”的简单学习和使用

    什么是 “|”?

    |其实是linux shell 中的一个命令:管道命令(pipe)
    管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,将其递给下一个命令,作为标准的输入 standard input。但是对于 stdandard error 信息没有直接处理能力。

    • 相关补充

      • linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。
      • linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output 2。以后打开文件,新增文件绑定描述符,并可以依次增加。一条shell命令执行,都会继承父进程的文件描述符。因此,所有运行的shell命令,都会有默认3个文件描述符。
    • 如何查看命令参数

      • file 我们通过file命令可以查看这是个什么东西(文件类型)
      • !$代表了上一条命信令的参数。
      • file !$综合使用可以查看上一条命令参数

      对于任何一条linux 命令执行,它会是这样一个过程:

      1. 先有一个输入:输入可以从键盘,也可以从文件得到standard input

      2. 命令执行完成:成功了,会把成功结果输出到屏幕:standard output默认是屏幕

      3. 命令执行有错误:会把错误也输出到屏幕上面:standard error默认也是指的屏幕

    如何使用?


    command1正确输出,作为command2的输入 然后comand2的输出作为,comand3的输入 ,comand3输出就会直接显示在屏幕上面了。
    相当于一个为三个command建立一个通道,将其输入和输出连接了起来。

    实例分析:

    • 实例一:查看文本文件内容有关echo的句子
      我们使用 cat test.sh | grep -n 'echo'试试:

      bingo! 将cat命令查找到的信息(输出)作为grep的查找范围(输入)。
    • 实例二:实现一个小程序testwc
      我们使用cat test.txt | testwc试试:

      利用cat命令查看文件内容并作为testwc(这个是之前实现的简单wc功能的小程序)的输入。
  • 相关阅读:
    生成指定规模大小的redis cluster对关系
    根据ip列表模拟输出redis cluster的主从对应关系
    获取redis实例绑定cpu的情况
    通过shell模拟redis-trib.rb info的输出
    又一种获取redis cluster slots分布的小脚本
    第3种方法获取redis cluster主从关系
    Lamada
    Linq笔记
    推荐博文
    SQL server 自带存储过程 sp_rename
  • 原文地址:https://www.cnblogs.com/blackay03/p/7838317.html
Copyright © 2011-2022 走看看