對於任何一條 linux 命令執行,它會是這樣乙個過程:
乙個命令執行了: 先有乙個輸入:輸入可以從鍵盤,也可以從檔案得到。 命令執行完成:成功了,會把成功結果輸出到螢幕:standard output預設是螢幕 命令執行有錯誤:會把錯誤也輸出到螢幕上面:standard error預設也是指的螢幕
三種輸入輸出的**分別是:
1)標準輸入(stdin);**為 0 ;
2)標準輸出(stdout):**為 1 ;
3)錯誤輸出(stderr):**為 2 ;
標準重定向符號
> 輸出重定向到乙個檔案或裝置 覆蓋原來的檔案
>> 輸出重定向到乙個檔案或裝置 追加原來的檔案
< 輸入重定向到乙個程式
標準錯誤重定向符號
2> 將乙個標準錯誤輸出重定向到乙個檔案或裝置 覆蓋原來的檔案 b-shell
2>> 將乙個標準錯誤輸出重定向到乙個檔案或裝置 追加到原來的檔案
2>&1 將乙個標準錯誤輸出重定向到標準輸出
將標準輸出到螢幕的資訊重定向輸出到指定檔案內。
為何要使用命令輸出重導向
• 當螢幕輸出的資訊很重要,而且我們需要將他存下來的時候;
• 背景執行中的程式,不希望他干擾螢幕正常的輸出結果時;
• 一些系統的例行命令(例如寫在 /etc/crontab 中的檔案)的執行結果,希望他可以存下來時;
• 一些執行命令,想檢視錯誤資訊時;
• 錯誤訊息與正確訊息需要分別輸出時。
常用輸出重定向
cmd > file 把 stdout 重定向到 file 檔案中;
cmd >> file 把 stdout 重定向到 file 檔案中(追加);
cmd 1> file 把 stdout 重定向到 file 檔案中;
cmd > file 2>&1 把 stdout 和 stderr 一起重定向到 file 檔案中;
cmd 2> file 把 stderr 重定向到 file 檔案中;
cmd 2>> file 把 stderr 重定向到 file 檔案中(追加);
cmd >> file 2>&1 把 stdout 和 stderr 一起重定向到 file 檔案中(追加);
輸入重定向:cat
cat命令的用途是連線檔案或標準輸入並列印。這個命令常用來顯示檔案內容,或者將幾個檔案連線起來顯示,或者從
標準輸入讀取內容並顯示,它常與重定向符號配合使用。
使用方式和作用
1)cat << eof,以eof輸入字元為標準輸入結束:
2)cat > filename,建立新檔案,並把標準輸入輸出到filename檔案中,以ctrl+d作為輸入結束:
3)cat > filename << eof,以eof作為輸入結束,其中eof可以是任何字串,和ctrl+d的作用一樣:
管道符號:|
利用linux所提供的管道符 「|」 將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第乙個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推。
command1正確輸出,作為command2的輸入,然後comand2的輸出作為,comand3的輸入,comand3輸出就會直接顯示在螢幕上面了。
通過管道之後:comand1,comand2的正確輸出不顯示在螢幕上面。
注意:1)管道命令只處理前乙個命令正確輸出,不處理錯誤輸出。
2)管道命令右邊命令,必須能夠接收標準輸入流命令才行。
linux 重定向與管道
linux中重定向表示符號有 linux中管道表示符號 先說重定向,重定向符號的指向的方向代表了資料的流向,這句話很重要!先說 與 可以看出資料流向為從左到右,命令在左邊,所以又叫重定向輸出。通常用於輸出到檔案。如cat test1.txt test2.txt,會發現,檔案test2.txt中的原有...
linux管道與重定向
1.重定向命令 輸出重定向覆寫 輸出重定向追加 2 錯誤重定向覆寫 2 錯誤重定向追加 輸出和錯誤作為同乙個流重定向覆寫 輸出和錯誤重定向追加 從檔案中提取輸入資訊 從標準輸入中讀入,直到遇到分解符才停止 set c 禁止覆寫 set c 允許覆寫 2.管道命令 command 1 command ...
Linux 重定向與管道
操作符 覆蓋目標檔案內容 huey huey k42je huey linux cmdline date foohuey huey k42je huey linux cmdline cat foofri may 8 09 55 42 cst 2015 操作符 在目標檔案尾部追加輸出內容 huey h...