Linux的資料流重導向,和管線命令 資料流重導向(redirect)名稱 簡稱 代碼 使用方式標準輸入(standard input) stdin 0 <,將檔案的資料作為其他命令的輸入<<,設定輸入結束的字串 標準輸出(standard output) stdout 1 >,覆蓋方式將正確的資料輸出>>,累加方式將正確的資料輸出標準錯誤輸出(standard error output) stderr 2 2>,覆蓋方式將錯誤的資料輸出2>>,累加方式將錯誤的資料輸出資料流重導向,可以將命令的stdout或stderr分別輸出到其他的檔案或裝置中去。也可以將檔案或裝置作為stdin輸入,作為命令的輸入。 多條命令的執行順序$?代表命令執行結果,其值為0表示成功。cmd1;cmd2 分號兩邊的命令沒有相關性,只是按順序執行cmd1&&cmd2 1若cmd1執行完畢且正確執行($?=0),則執行cmd22若cmd1執行完畢且為錯誤($?<>0),則不執行cmd2cmd1||cmd2 1若cmd1執行完畢且正確執行($?=0),則不執行cmd22若cmd1執行完畢且為錯誤($?<>0),則執行cmd2cmd1&&cmd2||cmd3 1若cmd1的($?=0),則執行cmd22若cmd1的($?<>0),則執行cmd3 管線命令(pipe)cmd1|cmd2 cmd1的stdout,作為cmd2的stdin管線命令僅會處理stdout,對於stderr會予以忽略管線命令必須能夠接受前一個命令的資料成為stdin繼續處理才行,也就是說cmd2是有限制的 具體管線命令cut 從每行中,取出合格部分grep 在一行中,若有合格部分,則輸出此行。支援Regex。sort 對檔案中的多行進行排序uniq 若有重複的多行,只輸出第一個wc 統計檔案中的行,單詞,字元,位元組的數量tee 從stdin讀取,並同時輸出到stdout和檔案tr 替換或刪除一段文字col tab轉換成多個空格,或man page轉換為文本join 將兩個檔案中相同資料的兩行,串連成一行paste 直接將兩個檔案的兩行,合并成一行,並以tab分割expand 將tab轉換成空格split 將一個大檔案分割成幾個小檔案可用 cat pieces* >> file 來恢複xargs 從stdin中,以空格或換行來分割出多個參數,給其他命令許多命令不支援管線,可以通過xargs提供參數 減號- 代表stdin或stdout將/home裡面的檔案都打包,打包的資料輸出到stdout,第一個“-”代表stdout。經過管線後,解壓包的資料從stdin而來,第二個“-”代表stdinLinux代碼 $ tar -cvf - /home | tar -xvf -