共計 1355 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章主要介紹了 linux 中的管道與重定向是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 linux 中的管道與重定向是什么文章都會有所收獲,下面我們一起來看看吧。
在 linux 中,管道是一種兩個進程間進行單向通信的機制;可以把一個程序的輸出數據,通過這個通道,輸入給另一個程序。重定向是指修改原來默認的一些東西,對原來系統命令的默認執行方式進行改變。
熟悉操作系統的朋友,常常會聽到、用到管道和重定向這兩個詞,那么究竟什么是管道,什么是重定向?他們對我有用嗎?可以說,管道和重定向是操作系統的精髓之一,在操作系統的進程、程序和管理等各方面,都離不開管道的功能,至于重定向,更是系統管理員最常用的手段之一,我們可以毫不夸張地說,沒有管道和重定向,簡直就是沒法管理 Linux。
管道:
定義:管道是一種兩個進程間進行單向通信的機制。
學過操作系統的人都知道這種單向的通信模式被稱為半雙工。因為管道傳遞數據的單向性,管道又稱為半雙工管道,并且這種單向性一旦確定就不可以再更改。
Linux 中的管道,可以把一個程序的輸出數據,通過這個通道,輸入給另一個程序,Linux 的管道通過符號 | 實現。
重定向:
定義:Linux 重定向是指修改原來默認的一些東西,對原來系統命令的默認執行方式進行改變。
比如說簡單的我不想看到在顯示器的輸出而是希望輸出到某一文件中就可以通過 Linux 重定向來進行這項工作。Linux 的重定向機制,通過符號 和 來實現,代表輸入,代表輸出。
重定向中的標準輸出:
下圖中給出一個實例來簡單說明:
重定向命令中 cat txt1 txt2 中的 txt2 的創建方式是:
1. 該文件若不存在,系統會自動將它創建出來;
2. 當這個文件已存在的時候,那么系統會先將這個文件清空,然后再將數據寫入;
3. 也就是說若以 輸出到一個已存在的文件中,那個文件就會被覆蓋掉。
4. 如果想保留之前的內容,那么需要使用兩個重定向符號。
重定向中的錯誤輸出:
上面介紹的都是在能夠獲得正確的結果的前提下進行的。假設我現在要 find 一個東西,而這個東西又恰好打不到呢?這個就需要 error log 了。在 Linux 中,1 代表了標準輸出,而 2 代表了錯誤輸出。例如:
1:以覆蓋的方法將正確的數據輸出到指定的文件或設備上;
1:以追加的方法將正確的數據輸出到指定的文件或設備上;
2:以覆蓋的方法將錯誤的數據輸出到指定的文件或設備上;
2:以追加的方法將錯誤的數據輸出到指定的文件或設備上。
注:1 或 2 與 之間是沒有空格的。
重定向中的標準輸入:
在學習其標準輸入之前我們還是來聊聊如何從鍵盤獲得數據吧。
學習了,我就再給大家帶一個相似但是雖不同的東西——
是的,它有什么不同的呢,我們可以通過下圖來感受一下:
好的,我想單純從圖片上你是感受不到什么的了。那就讓我來說明一下吧。當我們輸入了命令 cat catfile eof 后回車時,還不會感覺有什么不妥。可是,當我們在某一行中輸入了 eof 的時候,就結束了(如果你的那一行字符串中只是包含了 eof 是不會同樣的效果的)。
關于“linux 中的管道與重定向是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“linux 中的管道與重定向是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道。