linux运维开发之路(三)— 输入输出重定向篇

一、 理解系统的输入输出

          输入:通过我们的键盘、鼠标和其他硬件在系统中录入的字符。

       输出:系统接受到我们输入的功能字符后,经过进程的处理产生的字符(输出有两种出现,编号为1的正确输出以及编号为2的错误输出,这两种输出都会被系统默认定向到字符设备中)

二、管理输入输出的符号
         输出重定向
               >        重定向正确输出
              2>       重定向错误输出
              &>      重定向所有输出
  注意:  重定向会覆盖原文件内容

             find  /etc/  -name  passwd  >  file          ## 重定向正确的输出到file文件,错误的到字符设备。

             linux运维开发之路(三)— 输入输出重定向篇

             find  /etc/  -name  passwd  2>  file         ## 重定向错误的输出到file文件,正确的到字符设备

             linux运维开发之路(三)— 输入输出重定向篇

             find  /etc/  -name  passwd  &>  file            ##  重定向所有的输出到file文件

             linux运维开发之路(三)— 输入输出重定向篇
 
        输出追加
             >>     追加正确的输出到文件最后
             2>>    追加错误的输出到文件最后
             &>>    追加全部的输出到文件最后
      注意:追加不会覆盖原文件的内容
              find  /etc/  -name  passwd  >>  file

              linux运维开发之路(三)— 输入输出重定向篇

              find  /etc/  -name  passwd  2>>  file               ## 将错误的输出追加到file文件以前内容的结尾,不会覆盖file文件原先的内容

              linux运维开发之路(三)— 输入输出重定向篇

              find  /etc/  -name  passwd  &>>  file     ##  将所有的输出继续追加到file文件

              linux运维开发之路(三)— 输入输出重定向篇

         >file   ## 删除file里面的所有内容

        linux运维开发之路(三)— 输入输出重定向篇   

三、管道符的应用
      管道的作用
          “|” 将前一条命令的输出变成后一条的输入
      注意:
            管道只允许正确的输出通过
            如果需要保存输出内容,那么需要复制一份输出,用到的命令是 “tee”

            find  /etc/  -name  passwd  |  wc  -l
            find  /etc/  -name  passwd  2>&1  |  tee file  |  wc  -l  保存所有输出并统计行数  

四、输入重定向
       cat > file <<EOF
       hello
       world
       EOF

       > 输入重定向会覆盖原先文件file的内容

       linux运维开发之路(三)— 输入输出重定向篇

       cat >> file <<EOF
       hello
       world
       EOF

       >> 输入追加重定向不会覆盖原先文件file的内容

      linux运维开发之路(三)— 输入输出重定向篇