IO 重定向及管道

程序  : 指令  +  数据     (程序不管怎么样 也是存在  IO   )

                        

    程序的数据流有三种:

           输入的数据流:  <--   标准输入(stdin),键盘 ;

           输出的数据流:  -->   ( stdout )  , 显示器;

           错误输出流   :   -->  错误输出  (stderr) , 显示器;      [解释器辅助产生的数据流]

     fd   :  file descripteor  ,文件描述符

          标准输入 : 0

          标准输出 : 1

          错误输出:  2

    IO重定向:

      输出重定向 : >      特性-覆盖输出

      输出重定向:  >>   特性 -  追加输出

        # set  -C

          禁止覆盖输出重定向至已存在的文件:

          此时可以使用强制覆盖输出重定向: >|

            

        # set +C     表示关闭上述特性   这个命令仅对当前shell终端有效

        错误输出流重定向: 2> , 2>>       2>>=错误追加]

        合并正常输出流和错误输出流:   

            (1):&> ,  &>>    [&>> =  合并正确和错误追加]

            (2): COMMON > /path/to/somefile 2>&1

                COMMON  >> /path/to/somefile 2>&1

            特殊设备:/dev/null

               

               

       输入重定向: <

        tr命令 :  tr [OPTION]... SET1 [SET2]

            移除文件当中出现的字符

           移除文件当中出现的所有小写

       用法一:

          tr  set1 set2 < /path/from/somefile   

              

       用法二: 

          tr -d SET1 < /PATH/FROM/SOMEFILE

              

 

        NOTICE:不修改原文件

     Here Document:   <<

        cat << EOF

        方法一:cat > /PATH/TO/SOMEFILE << EOF

        方法二 :cat > /PATH/TO/SOMEFILE << END

           

 

     管道 : 连接程序,实现将前一个命令的输出直接定向后一个程序当做输入数据流

        COMMON1  |  COMMON2 | COMMON3

        

        

           

         tee 命令  可以定向的保存文件到其它路径   经常与管道配合使用

        tee 命令:

          COMMON  | tee /PATH/TO/SOMEFILE

      练习一: 把/etc/passwd 文件的前6行的信息转换为大写字符后输出

          

          

 

posted @ 2018-04-01 16:51  超我  阅读(4)  评论(0编辑  收藏  举报