標準輸入標準輸出標準錯誤重定向

2021-06-25 11:23:16 字數 1869 閱讀 9356

重定向操作符

描述>

將命令輸出寫入到檔案或裝置(如印表機),而不是命令提示符視窗或控制代碼。

<

從檔案而不是從鍵盤或控制代碼讀入命令輸入。

>>

將命令輸出新增到檔案末尾而不刪除檔案中已有的資訊。

>&

將乙個控制代碼的輸出寫入到另乙個控制代碼的輸入中。

<&

從乙個控制代碼讀取輸入並將其寫入到另乙個控制代碼輸出中。

|

從乙個命令中讀取輸出並將其寫入另乙個命令的輸入中。也稱作管道。

i/o重定向詳解及應用例項

1、 基本概念(這是理解後面的知識的前提,請務必理解)

a、 i/o重定向通常與 fd有關,shell的fd通常為10個,即 0~9;

b、 常用fd有3個,為0(stdin,標準輸入)、1(stdout,標準輸出)、2(stderr,標準錯誤輸出),預設與keyboard、monitor、monitor有關;

c、 用 < 來改變讀進的資料通道(stdin),使之從指定的檔案讀進;

d、 用 > 來改變送出的資料通道(stdout, stderr),使之輸出到指定的檔案;

e、 0 是 < 的預設值,因此 < 與 0《是一樣的;同理,> 與 1> 是一樣的;

f、 在io重定向 中,stdout 與 stderr 的管道會先準備好,才會從 stdin 讀進資料;

g、 管道「|」(pipe line):上乙個命令的 stdout 接到下乙個命令的 stdin;

h、 tee 命令是在不影響原本 i/o 的情況下,將 stdout 複製乙份到檔案去;

i、 bash(ksh)執行命令的過程:分析命令-變數求值-命令替代(``和$( ))-重定向-萬用字元展開-確定路徑-執行命令;

j、 ( ) 將 command group 置於 sub-shell 去執行,也稱 nested sub-shell,它有一點非常重要的特性是:繼承父shell的standard input, output, and error plus any other open file descriptors。

k、 exec 命令:常用來替代當前 shell 並重新啟動乙個 shell,換句話說,並沒有啟動子 shell。使用這一命令時任何現有環境都將會被清除。exec 在對檔案描述符進行操作的時候,也只有在這時,exec 不會覆蓋你當前的 shell 環境。

2、 基本io

cmd > file 把 stdout 重定向到 file 檔案中;

cmd >> file 把 stdout 重定向到 file 檔案中(追加);

cmd 1> fiel 把 stdout 重定向到 file 檔案中;

cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 檔案中;

cmd 2> file 把 stderr 重定向到 file 檔案中;

cmd 2>> file 把 stderr 重定向到 file 檔案中(追加);

cmd >> file 2>&1 把 stderr 和 stderr 一起重定向到 file 檔案中(追加);

cmd < file >file2 cmd 命令以 file 檔案作為 stdin,以 file2 檔案作為 stdout;

cat <>file 以讀寫的方式開啟 file;

cmd < file cmd 命令以 file 檔案作為 stdin;

cmd << delimiter here document,從 stdin 中讀入,直至遇到 delimiter 分界符。

重定向》 與標準輸入 標準輸出 標準錯誤輸出

當linux執行乙個程式的時候,會自動開啟三個流,標準輸入 standard input 標準輸出 standard output 標準錯誤輸出 standard error 比如在開啟命令行時,預設情況下,命令列的標準輸入連線到鍵盤,標準輸出和標準錯誤都連線到螢幕,儘管三個流都開啟,但他會根據需要...

標準輸出 標準錯誤重定向(格式)

command filename 把把標準輸出重定向到乙個新檔案中 command filename 把把標準輸出重定向到乙個檔案中 追加 command 1 fielname 把把標準輸出重定向到乙個檔案中 command filename 2 1 把把標準輸出和標準錯誤一起重定向到乙個檔案中 c...

重定向標準錯誤輸出

第5章介紹了標準輸出的概念,並解釋了如何重定向命令的標準輸出。除了標準輸出之外,命令還可以將輸出傳送到標準錯誤輸出。命令將錯誤訊息傳送到標準錯誤輸出,這樣就可以避免與傳送到標準輸出的資訊混淆在一起。與處理標準輸出一樣,預設情況下,shell將命令的標準錯誤輸出傳送到螢幕上。除非重定向標準輸出和標準錯...