Linux系統管理11:重定向與管道

Linux命令,進行命令的組合,協同工作,高效處理數據。提供管道和重定向機制,多命令協作就是通過管道和重定向來完成。

重定向

重定向:主要解決輸出信息的保存問題,以及輸入的形式

輸入從定向:把文件導入到命令中

輸出重定向:把原本要輸出到屏幕的數據信息寫道指定的文件中

日常學習中,相較於輸入重定向,使用輸出重定向的評率會更高。所以將輸出重定向分爲標準重定向和錯誤輸出重定向

標準輸入重定向(stdin,文件描述符爲0):默認從鍵盤輸入,也可以從其他文件或命令中輸入。

標準輸出重定向(stdout,文件描述符爲1):默認輸出到屏幕

標準錯誤重定向(stderr,文件描述符爲2):默認輸出到屏幕

輸入重定向中用到的符號及作用

符號 作用
命令<文件 將文件作爲命令的標準輸入
命令<<分界符 從標準輸入中讀取,知道遇見分解符才停止
命令<文件1<文件2 將文件1作爲命令的標準輸入,並將標準輸出到文件2

輸出重定向中用到的符號及作用

符號 作用
命令>文件 將輸出標準輸出重定向到一個文件中(清空原有文件數據)
命令 2>文件 將錯誤輸出重定向到一個文件中(清空原有文件數據)
命令>>文件 將標準輸出重定向到一個文件中(追加到原有內容的後面)
命令 2>>文件 將錯誤輸出重定向到一個文件中(追加到原有內容的後面)
命令>>文件 2>&1 或 命令 & >>文件 將標準輸出與錯誤輸出共同寫入到文件中(追加到原有內容的後面)

對於重定向中的標準輸出模式,可以省略文件描述符1不寫,而錯誤輸出模式的文件描述符2是必須要寫的

#在一個文件下創建三個文件,並在第一和第二個文件寫入內容
touch test1.txt test2.txt test3.txt
vi test1.txt
vi test2.txt
# 利用標準輸出重定向,將內容寫入text3.txt
ll > test3.txt
cat test3.txt
#總用量 8
#-rw-rw-r--. 1 summer summer  0 4月   4 14:19 test2.txt
#-rw-rw-r--. 1 summer summer 21 4月   4 14:18 test3.txt
#-rw-rw-r--. 1 summer summer 21 4月   4 14:18 test.txt

#利用標準輸出重定向將文件加在test2.txt文件內
ll >> test2.txt
cat test2.txt
#hello World
#welcome!
#總用量 12
#-rw-rw-r--. 1 summer summer 185 4月   4 14:19 test2.txt
#-rw-rw-r--. 1 summer summer  21 4月   4 14:18 test3.txt
#-rw-rw-r--. 1 summer summer  21 4月   4 14:18 test.txt

管道

管道命令符|

作用:把前面一個命令原本要輸出到屏幕的標準正常數據當做是最後一個命令的標準輸入

管道可以把一系列命令連接起來,將前面命令的輸出作爲後面命令的輸入,第1個命令利用管道傳給第二個命令,第二個命令的輸出傳遞給第三個命令的輸入,依次遞推

touch 1 2
vim 1
cat 1 | grep hello > 2
cat 2
#hello
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章