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