IO重定向

I/O(IN Out)重定向(本來位置被改到別處位置):

           指的改變默認輸入輸出的位置

   程序:數據+指令  IO

         可用于輸入的設備:文件

               鍵盤設備,文件系統上的常規文件,網卡等

          可用于輸出的設備:文件

               顯示器,文件系統上的常規文件,網卡等;

   程序的數據流有三種:

          輸入的數據流:<— 標準輸入(stdin),鍵盤;

          輸出的數據流:—> 標準輸出(stdout),顯示器;

          錯誤輸出流:  —> 錯誤輸出(stderr),顯示器;

          標準輸出重定向:>   特性:覆蓋輸出

                   ~]# date > date.log

                   ~]# cat date.log

                   Tue Mar 28 01:30:46 CST 2017

              標準輸出追加重定向: >>   特性:追加輸出

         Set: 控制bash的特性

              set -C  禁止將內容覆蓋到已經有的文件 特殊保護機制

          此時可使用強制覆蓋輸出:  >

              set +C   關閉上述輸出:

   標準錯誤輸出重定向:2>, 2>>  

                   ~]# fdfdfdfd > date.log

                   bash: fdfdfdfd: command not found…

                   ~]# fdfdfdfd 2> date.log

                   ~]# cat date.log

                   bash: fdfdfdfd: command not found…

                 ~]# fdfdfdfd 2>> date.log

                   ~]# fdfdfdfd 2>> date.log

                 ~]# cat date.log

                   bash: fdfdfdfd: command not found…

                   bash: fdfdfdfd: command not found…

           合并正常輸出流和錯誤輸出流:

                     (1) &>, &>>

                     (2) COMMAND > /path/to/somefile 2>&1

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

                   ~]# date &> date.log

                   ~]# cat date.log

                   Tue Mar 28 01:33:55 CST 2017

                   ~]# datefdfd &> date.log

                   ~]# cat date.log

                   bash: datefdfd: command not found…

          特殊設備: /dev/null

                  [root@MFX2 ~]#ls /var &> /dev/null

                      [root@MFX2 ~]#echo $?

                        0 (狀態值)   表示成功即目錄存在

                      [root@MFX2 ~]#ls /varr &> /dev/null

                      [root@MFX2 ~]#echo $?

                        2      表示失敗即目錄不存在

           標準輸出重定向到date.log 標準錯誤輸出重定向到date2.log

                  ~]# date22 > date.log 2> date2.log

            &> &>> 將標準輸出和標準錯誤輸出(覆蓋|追加)同一個文件

                   ~]# date &> date.log

                   ~]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                   ~]# date &>> date.log

                   ~t]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                       Tue Mar 28 01:41:14 CST 2017

                   ~]# datefdfd &>> date.log

                   ~]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                       Tue Mar 28 01:41:14 CST 2017

                   bash: datefdfd: command not found…

        標準輸入重定向: <

               tr [OPTION]… SET1 [SET2]

              把輸入的數據當中的字符,凡是在SET1定義范圍出現的,通通對位換為SET2出現的字符;

             用法1:

             tr SET1 SET2 < /PATH/FROM/SOMEFILE

             用法2:

             tr  -d SET1 < /PATH/FROM/SOMEFILE

     注意: 不修改原文件

                ~]#tr ‘a-z’ ‘A-Z’ < /etc/issue > issue.log

                ~]#cat issue.log

                  CENTOS RELEASE 6.8 (FINAL)

                  KERNEL \R ON AN \M

           -c 取指定字符的補集

                   ~]# tr -d -c ‘0-9’ < /etc/fstab

                   tr -d  ‘0-9’ < ./fstab > ./fstab  是不會成功的

                -s “s“  對重復字符去重

Here document(此處創建文檔): <<

             cat << EOF

             cat > /PATH/FROM/SOMEFILE <<EOF

         cat  >> shanghai.log << ‘EOF’

                   where are you from,I’m from $SHELL

                   EOF

              加引號與不加引號的區別

              加引號(雙引號和單引號)輸入內容里面的變量是不會被替換

              不加引號的話 輸入的內容里面變量會被替換

              結束符不一定要使用EOF,可以使用其他任意字符。

寫一個腳本 腳本定義個配置文件,執行腳本的時候自動生成自定義的配置文件

              #!/bin/bash

              cat >> my.cnf << EOF 或者 ‘EAD’

              a=b

              b=c

              EAD

              …

原創文章,作者:MFX,如若轉載,請注明出處:http://www.www58058.com/72470

(0)
MFXMFX
上一篇 2017-04-03 21:00
下一篇 2017-04-03 21:56

相關推薦

  • 細說linux上的特殊權限位

    linux上的文件的權限 linux的哲學思想之一就是一切皆文件。這樣說來,每臺安裝了linux的主機上,就會有大量的文件。而另一方面,linux在安全方面有著極為出色的表現。眾所周知,linux是一個多用戶的系統,因此為一個文件加上合適的權限為顯得非常有必要了。linux上的基本權限我就不一一介紹了,請不熟悉的同學自行百度腦補。我們來說說linux上文件和…

    Linux干貨 2017-04-10
  • 文件管理及常用命令(一)

    cat命令: -n 增加行號 空行也增加行號          [root@localhost ~]# cat f1     abcd     abc…

    Linux干貨 2016-08-08
  • rpm與yum的初步學習

    rpm與yum的初步學習   我們在使用linux系統時需要安裝和卸載軟件,我們這節就先來看一下rpm和yum的初步簡單實用。 linux軟件安裝:   安裝程序的方式:      通用二進制格式:直接解壓壓縮文件,就可以使用。但一定要注意安裝平臺。     &nbsp…

    Linux干貨 2016-08-24
  • 初學Linux的感受

    我是馬哥25期的學員,之前從來沒有接觸過Linux,近幾天學習Linux下來,收獲很多,懂了一些基本命令,以及安裝Linux系統. 我知道從一個什么也不懂的小白變成站在云端的大神,這之間需要付出多少的努力和汗水.開學典禮有幸見到馬哥本人,也見到 我的授課教師老王,之前看到兩位上課的視頻,詼諧幽默,我很喜歡! 但愿我這四個月痛并快樂著. 努力,然后看到勝利的曙…

    Linux干貨 2017-07-11
  • 簡明 Vim 練級攻略

    vim的學習曲線相當的大(參看各種文本編輯器的學習曲線),所以,如果你一開始看到的是一大堆VIM的命令分類,你一定會對這個編輯器失去興趣的。下面的文章翻譯自《Learn Vim Progressively》,我覺得這是給新手最好的VIM的升級教程了,沒有列舉所有的命令,只是列舉了那些最有用的命令。非常不錯。 ——————————正文開始—————————— …

    Linux干貨 2015-04-04

評論列表(1條)

  • renjin
    renjin 2017-04-05 14:57

    總結了bash的一些特性,和linux下的一些基礎的命令,內容寫的很好,排版上可以再往好的弄弄

欧美性久久久久