Linux重定向與管道

2021-10-08 11:23:57 字數 2141 閱讀 3065

對於任何一條 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...