Linux shell编程 12 ---- 管道+I/O重定向

来源:互联网 发布:p2p网络摄像机软件 编辑:程序博客网 时间:2024/05/16 16:57


 1 管道简介

     1 管道技术是Linux的一种基本的进程间通信技术,它利用先进先出排队模型来指挥进程间的通信。对于管道,我们可以形象的理解为连接两个实体的一个单向连接器


     2 Shell编程中管道符号是"|",命令直接利用管道进行通信的一般格式

        command1 | command2 | command3 | ... | commandn

        command1~commandn是n个命令,如果没有管道那么结果将会直接显示在Shell中,当Shell遇到管道的时候,就将输出发送下一个命令


 2 cat和more命令

    1 cat和more命令都是用来显示文件的内容,它们的基本格式特比较类似

       cat 选项 文件

       more 选项 文件


    2 cat命令的选项名称及其意义

        选项                 意义

         -a                显示文件的所有内容

         -b                由1开始对所有输出的行数编号,但对空行不编号

         -E                每一行末尾显示"$"

         -n                由1开始对所有的输出行进行编号

         -s                当遇到连续的两行以上的空行时就替换为一行空白行

         -v                不可显示的字符以可见的形式显示


    3 more命令的选项名称及其意义

        选项                  意义

        -num            一次显示的行数

        -f                  计算行数时,以实际的行数,而非自动换行过后的行数

        -s                 当遇到连续的两行以上的空行时就替换为一行空白行

        +num           从第num行开始显示


    4 cat和more命令的最大区别在于,cat命令是不提供分页功能的,但是more命令是显示超过一页的文件时提供了分页功能


 3 I/O重定向

    1 I/O重定向是一个过程,这个过程捕捉一个文件,命令,程序或脚本,甚至代码块的输出,然后把捕捉到的输出作为输入发送给另外一个文件,命令,程序


    2 文件标识符是从0开始到9结束的整数,指明了与进程相关的特定数据流的源。当Linux系统启动一个进程时,将自动为该进程打开三个文件,标准输入,标准输出,标准错误输出,分别由文件标识符0,1,2标识,该进程如果要打开其它的文件,则从整数3开始表识

 

    3 基本I/O重定向符号及其意义

              符号                           意义

        cmd1 | cmd2              管道符,将cmd的标准输出作为cmd2的标准输入

        > filename                  将标准输出写道文件filename之中

        < filename                  将文件filename的内容作为标准输入

        >> filename                将标准输出追加到filename,如果不存在则先创建一个