在linux中,管道是一種兩個進程間進行單向通訊的機制;可以把一個程式的輸出數據,經過這個通道,輸入給另一個程式。重定向是指修改原來預設的一些東西,對原來系統指令的預設執行方式進行改變。
本教學操作環境:linux7.3系統、Dell G3電腦。
熟悉作業系統的朋友,常常會聽到、用到管道和重定向這兩個詞,那麼究竟什麼是管道,什麼是重定向?他們對我有用嗎?可以說,管道和重定向是作業系統的精髓之一,在作業系統的進程、程式和管理等各方面,都離不開管道的功能,至於重定向,更是系統管理員最常用的手段之一,我們可以毫不誇張地說,沒有管道和重定向,簡直就是沒辦法管理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
相關推薦:《Linux影片教學》
以上是linux中的管道指什麼重定向又指什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!