linux之管道與重定向

2021-09-13 18:41:48 字數 1664 閱讀 7631

在linux作業系統中,輸入和輸出是兩個相對的操作,使用者將資料輸入到系統的暫存器中,cpu呼叫處理,處理後的資料同樣放入暫存器中,當然系統有很多的暫存器,輸入輸出的內容在不同的暫存器中,而後在螢幕上顯示出來。

輸入重定向:

cat > file < + 檔名					##正確的輸出重定向			

2> + 檔名 ##錯誤的輸出重定向

&> + 檔名 ##全部重定向

>> ##追加正確輸出到檔案最後

2>> ##追加錯誤輸出到檔案最後

&>> ##追加所有輸出到檔案最後

示例:

find /etc/ -name passwd > file ##定向正確輸出到file

find /etc/ -name passwd 2> file ##定向錯誤輸出到file

find /etc/ -name passwd &> file ##定向所有輸出到file

find /etc/ -name passwd >> file ##追加正確輸出到file

find /etc/ -name passwd 2>> file##追加錯誤輸出到file

find /etc/ -name passwd &>> file##追加所有輸出到file

「> + file」 ##清空file

檢視檔案中的內容

注意:輸出重定向必須使用普通使用者才能有效果
何為管道,顧名思義,就是類似與現實中的管道,在linux中管道的作用是將一條命令的輸出可以變成後一條命令的輸入。

注意:

管道只允許正確的輸出通過

通過管道的輸入將會變成輸入,而變成輸入的這些輸出是會被第二條命令處理的

如果需要儲存輸出內容,那麼需要複製乙份輸出,用到的命令是「tee」

示例

find /etc/ -name passwd | wc -l       ##會看到的結果為2,因為錯誤輸出不能通過管道

find /etc -name passwd 2>&1|wc -l ##會看到19,因為編號為2的輸出被「2>&1」轉換為編號1

find /etc -name passwd 2>&1|tee file |wc -l ##儲存乙份輸出到file再統計行數

find /etc -name	passwd 1>/dev/null 2>&1 |tee file |wc -l 輸出為0
因為在執行2>&1的時候,1>/dev/nul也在執行,所以所有的輸出都被丟掉了,故wc -l統計的行數為0

linux 重定向與管道

linux中重定向表示符號有 linux中管道表示符號 先說重定向,重定向符號的指向的方向代表了資料的流向,這句話很重要!先說 與 可以看出資料流向為從左到右,命令在左邊,所以又叫重定向輸出。通常用於輸出到檔案。如cat test1.txt test2.txt,會發現,檔案test2.txt中的原有...

Linux重定向與管道

對於任何一條 linux 命令執行,它會是這樣乙個過程 乙個命令執行了 先有乙個輸入 輸入可以從鍵盤,也可以從檔案得到。命令執行完成 成功了,會把成功結果輸出到螢幕 standard output預設是螢幕 命令執行有錯誤 會把錯誤也輸出到螢幕上面 standard error預設也是指的螢幕 三種...

linux管道與重定向

1.重定向命令 輸出重定向覆寫 輸出重定向追加 2 錯誤重定向覆寫 2 錯誤重定向追加 輸出和錯誤作為同乙個流重定向覆寫 輸出和錯誤重定向追加 從檔案中提取輸入資訊 從標準輸入中讀入,直到遇到分解符才停止 set c 禁止覆寫 set c 允許覆寫 2.管道命令 command 1 command ...