1. 程式人生 > >linux重定向總結:如何將shell命令的輸出資訊自動輸出到檔案中儲存

linux重定向總結:如何將shell命令的輸出資訊自動輸出到檔案中儲存

在做批量實驗室,例如跑批量MR的作業,我們會寫好shell指令碼,然後啟動指令碼,等所有作業執行完再去看結果,但是這些執行時的資訊如何儲存下來到檔案中呢?下面這個命令可以完成這個任務。

sh batchjob.sh 2>&1 | tee mylog.log

  其中sh batchjob.sh:表示要執行的shell腳步;0,1,2:在linux分別表示標準輸入、標準輸出和標準錯誤資訊輸出。

  下面來總結下重定向問題。

輸入輸出重定向之:'<' and '>'

  '<' and '>'分別用來支援linux中的輸入輸出重定向,其中'<'支援輸入重定向,'>'支援輸出重定向。

  1. '<':重定向輸入

    sh test.sh < hadoop-hadoop-jobtracker-brix-00.out,將hadoop-hadoop-jobtracker-brix-00.out的內容作為test.sh的輸入

      2. '>':將內容全域性覆蓋式的加入檔案,相當於刪除該檔案並重新建立該檔案,再寫入的效果

        ls * > test.txt ,將ls * 的所有資訊輸出到檔案test.txt中

  3. '>!':如果存在則覆蓋

  4. '>&':執行時螢幕上所產生的任何資訊寫入指定的檔案中

  5. '>>':追加到檔案中

  6. '>>&':螢幕上的資訊追加到檔案中

標準輸入輸出

  在 Linux 系統中:標準輸入(stdin)預設為鍵盤輸入;標準輸出(stdout)預設為螢幕輸出;標準錯誤輸出(stderr)預設也是輸出到螢幕(上面的 std 表示 standard)。在 BASH 中使用這些概念時一般將標準輸出表示為 1,將標準錯誤輸出表示為 2。下面我們舉例來說明如何使用他們,特別是標準輸出和標準錯誤輸出。

tee命令

tee指令會從標準輸入裝置讀取資料,將其內容輸出到標準輸出裝置,同時儲存成檔案。

轉載自:http://www.cnblogs.com/gslyyq

補充:在執行makefile的時候,也可以寫這樣的命令。

make >build_output.txt 2>&1