Linux系統的輸入與輸出

在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中

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章