Linux命令中的管道和重定向

2021-08-17 20:16:29 字數 1425 閱讀 1728

在linux中有很多標準的命令例如findsortdu等,可以滿足我們完成文件管理、系統管理等諸多需求,但是大多時候一些複雜的需求都需要多個命令搭配起來使用,對於linux來說乙個命令對應於乙個程序,因此多個命令協同工作,就涉及到多個程序的通訊,linux提供一種管道的方式來完成程序間通訊。

linux很多命令都需要輸入、輸出以及錯誤資訊,預設的輸入輸出以及錯誤資訊都是標準輸入(鍵盤)和標準輸出(螢幕),但有時候我們希望輸入、輸出、錯誤資訊是從其他地方輸入、輸出到其他(例如檔案),這裡就會涉及到輸入、輸出、錯誤資訊的重定向。

管道在linux中對應管道符號|

commanda | commandb
commanda | xargs commandb
commanda執行的輸出作為commandb的輸入。

例如:

ls -l|xargs head -10

# 列出前十個檔案

輸入重定向符號:<

commanda < file
輸入重定向到file

特殊的輸入重定向符號<<

commanda 輸出重定向符號:>(覆蓋),>>(追加)

command > file

command >> file
系統中預設的檔案描述符號:

例如:

ls -l > file 2 > /dev/null # 將輸出重定向到file,且將錯誤輸出重定向到/dev/null中
這裡/dev/null只有個特殊的檔案,重定向這裡的輸出都會被其丟棄,因此有時候為了抑制錯誤輸出,則只需要將其重定向到黑洞/dev/null即可。

命令說明

command > file

將輸出重定向到 file。

command < file

將輸入重定向到 file。

command >> file

將輸出以追加的方式重定向到file。

n > file

將檔案描述符為 n 的檔案重定向到 file。

n >> file

將檔案描述符為 n 的檔案以追加的方式重定向到 file。

n >& m

將輸出檔案 m 和 n 合併。

n <& m

將輸入檔案 m 和 n 合併。

<< tag

將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

Linux命令中的管道和重定向

在linux中有很多標準的命令例如find sort du等,可以滿足我們完成文件管理 系統管理等諸多需求,但是大多時候一些複雜的需求都需要多個命令搭配起來使用,對於linux來說乙個命令對應於乙個程序,因此多個命令協同工作,就涉及到多個程序的通訊,linux提供一種管道的方式來完成程序間通訊。li...

Linux中的重定向和管道

file descriptors fd,檔案描述符 程序使用檔案描述符來管理開啟的檔案 fd是訪問檔案的標識,即鏈結檔案 0是鍵盤唯讀,1,2是終端可以理解是螢幕,3 是檔案,可讀可寫 例項 ps aux grep vim 檢視程序號 root localhost ll proc 5606 fd 查...

linux重定向 管道

1 這條命令是什麼意思?cat file1 file2 grep name tee file3 file4 file5 wc l 該命令表示 將 file1 file2 中的包含 name 的行重定向輸出。使用 tee 命令表示 將該輸出有兩個去向。乙個是定向到檔案 file3,file4,flie...