Linux Unix 命令列 輸入輸出重定向

2021-04-12 12:48:02 字數 768 閱讀 8235

在unix系統中,任何命令,包括shell本身,預設情況下總是讀取來自終端鍵盤輸入的資料,這個資料輸入源通常稱作標準輸入(stdin),其檔案描述符為0.

預設情況下,命令的處理結果總是輸出到使用者終端的螢幕上,這個輸出目的通常稱作標準輸出(stdout),其檔案描述符為1.

另外,在命令的執行期間,如果出現問題,相應的錯誤資訊預設情況下也將輸出到使用者的終端螢幕上,這個輸出目的通常稱作標準錯誤輸出(stderr),其檔案描述符為2.

有上面的基礎知識後,我們現在來討論linux/unix系統命令行的精妙之處:輸入輸出重定向.

例如:ls -l > fname

上述命令就是把ls命令的返回結果輸出到fname這個檔案中去,但是要注意的事情是輸出前將清空原檔案內容(如果原檔案存在).使用ls -l >>fname這個命令是將結果附加到原檔案後面.

grep root < fname

上述命令是在fname這個檔案中尋找帶有root這個欄位的內容,是把標準輸入重定向為檔案輸入.

上述命令其實是簡化後的形式,其原始形式為

0 < fname   把標準輸入重定向到指定檔案中

1 > fname   把標準輸出重定向到檔案中

2 > fname   把標準錯誤輸出重定向到檔案中

還有乙個重要的用法

i>& j   把檔案描述符i表述的輸出檔案重定向到檔案描述符j表示的檔案

例如: 

command_1 2 >& 1   把這個錯誤命令的標準錯誤輸出重定向到標準輸出

其原理是用指標實現的.

Linux 命令列輸入

這幾天剛剛接觸到linux,在windows上安裝的vmware虛擬機器,centos7。安裝什麼都是賈爺和辦公室的同事幫忙搞定的。在虛擬機器介面,按快捷鍵ctrl alt enter,可以全屏顯示linux介面,再按一次則退出全屏。如何在linux裡輸入命令列,這個問題讓我捉急了好一會兒,之後發現...

Linux Unix 命令列 管道與過濾

在unix系統中,管道是一種先進先出的單向資料通路.利用管道符號 可以把乙個命令的標準輸出連線到另乙個命令的標準輸入.例如,利用管道把ls和wc兩個命令連線到一起,可以得到指定目錄下的檔案數量.ls usr wc w 重上述命令的執行效果看,可以把組合命令分解為以下兩個命令 ls usr fname...

如何閱讀命令列格式文件 linux unix

使用命令列工具的時候,看文件都會遇到命令格式。這樣就需要看明白各種符號的含義。下面就以git幫助文件為例解釋格式含義。git版本 2.20.1.windows.1。敲入 git status h可以得到幫助文件如下 usage git status v,verbose be verbose s,sh...