在Linux系統中正確輸出的編號爲1,錯誤輸出的編號爲2
管理輸入輸出的符號:
(1)輸出重定向:
> | 重定向正確輸出 |
---|---|
2> | 重定向錯誤輸出 |
&> | 重定向所有輸出 |
注意:每次輸出後會覆蓋文件原本內容
直接“>“ 文件名 可以直接清空文件內容
示例: 以下實驗必須在student用戶下完成
首先我們通過命令find /etc -name passwd 查找etc目錄下含有名稱爲passwd的文件
共有2個正確輸出和17個錯誤輸出
1)定向正確輸出到file
2)定向錯誤輸出到file.err
3)定向所有輸出到file.all
4)定向正確輸出到file同時定向錯誤輸出到file.err
5)清空文件file
(2) 輸出追加
>> | 追加正確輸出到文件最後 |
---|---|
2>> | 追加錯誤輸出到文件最後 |
&>> | 追加所有水出到文件最後 |
示例:
同樣我們通過命令find /etc -name passwd 查找etc目錄下含有名稱爲passwd的文件
定向正確輸出到file
此時文件file 內容爲
再追加錯誤輸出到文件file內
此時文件file的內容爲
我們可以看到錯誤輸出被追加到文件file的最後
2."|" 管道符 將輸出變成輸入 管道符只能通過編號爲1 的正確輸出
示例:顯示/etc/passwd文件的第15-18行內容
首先我們可以通過vim查看/etc/passwd文件的第15-18行內容爲
要顯示第15-18行我們可以先顯示其前18行再顯示這18行的後4行,此時便需要用管道符“|"將前18行的輸出轉爲輸入
3.“tee” 複製輸入變成輸出
示例:顯示/bin中文件名包含大寫字母的文件,保存到bin_file文件中並統計個數顯示到屏幕
如題我們需要對一個輸出進行兩種操作此時便需要用到“tee“來對輸出進行復制
首先我們通過指令
查看目錄bin下文件名包含大寫字母的文件
然後我們便可通過管道符“|“與“tee“複製該輸入保存到bin_file文件中,並通過管道符“|“將該輸出變爲輸入再執行wc -l指令統計其個數顯示到屏幕
4.“2>&1” 把錯誤輸出的編號由2轉變爲1
以該輸出爲例
若想對該輸出進行行數統計則需要該輸出通過管道符“|“後執行wc -l 指令
但是由於管道符“|“只能通過編號爲1的正確輸出所以若直接執行find /etc -name passwd | wc -l指令,錯誤輸出無法經過管道符而顯示到字符欄,只有兩個正確輸出經過管道符並執行指令wc -l 得到錯誤結果2
所以爲了使錯誤輸出能夠通過管道符,需要通過“2>&1將該輸出的錯誤輸出的編號由2改成1,如此便可使所有輸出通過管道符執行wc -l指令得到正確答案
例題:在student用戶下查找/etc下passwd文件,顯示命令輸出並保存輸出到file.all中