Linux學習之Shell基礎——Bash基本功能——輸入輸出重定向
阿新 • • 發佈:2018-12-23
1、標準輸入輸出
裝置 | 裝置檔名 | 檔案描述符 | 型別 |
鍵盤 | /dev/stdin | 0 | 標準輸入 |
顯示器 | /dev/sdtout | 1 | 標準輸出 |
顯示器 | /dev/sdterr | 2 | 標準錯誤輸出 |
2、輸出重定向(將原本該輸出到顯示器中的內容輸出到檔案或其他裝置中,一般用於日誌等)
型別 | 符號 | 作用 |
標準輸出重定向 | 命令 > 檔案 | 以覆蓋的方式,把命令的正確輸出指定到指定的檔案或裝置當中 |
命令 >> 檔案 | 以追加的方式,把命令的正確輸出輸出到指定的檔案或裝置當中 | |
標準錯誤輸出重定向 | 錯誤命令 2> 檔案 | 以覆蓋的方式,把命令的錯誤輸出輸出到指定的檔案或裝置當中 |
錯誤命令 2>>檔案 | 以追加的方式,把命令的錯誤輸出輸出到指定的檔案或裝置當中 |
正確輸出和錯誤輸出同時儲存 | 命令 > 檔案 2>&1 | 以覆蓋的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中 |
命令 >> 檔案 2>&1 | 以追加的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中 | |
命令 &> 檔案 | 以覆蓋的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中 | |
命令 &>> 檔案 | 以追加的方式,把正確輸出和錯誤輸出都儲存到同一個檔案當中 | |
命令 >> 檔案1 2>> 檔案2 | 把正確的輸出追加到檔案1中,把錯誤的輸出追加到檔案2中 |
如上,是分開操作,但對於實際操作中不實用,如上需要我們先行知道標準輸出執行是否出錯,所以為了更實用,一般採用如下措施
注意:不是所有的命令都有如上輸出重定向功能,可以使用的命令為:必須有結果輸出的命令
錯誤輸出儲存到檔案中,表示系統執行命令錯誤時,會把執行命令出錯的資訊儲存到檔案中
如下,我們把ls命令執行的結果重定向輸出到自定義的檔案中
[[email protected] ~]# touch cdef
[[email protected] ~]# ls
abc cde install.log sh 模板 圖片 下載 桌面
anaconda-ks.cfg cdef install.log.syslog 公共的 視訊 文件 音樂
[[email protected] ~]# chmod 777 cdef
[[email protected] ~]# ls > cdef
[[email protected] ~]# ls
abc cde install.log sh 模板 圖片 下載 桌面
anaconda-ks.cfg cdef install.log.syslog 公共的 視訊 文件 音樂
[[email protected] ~]# cat cdef
abc
anaconda-ks.cfg
cde
cdef
install.log
install.log.syslog
sh
公共的
模板
視訊
圖片
文件
下載
音樂
桌面
[[email protected] ~]# vim cdef
3、特殊命令
ls &> /dev/null :該命令表示無論輸出是什麼,都輸出到垃圾箱中
4、輸入重定向
[[email protected] ~]# wc 【選項】[檔名]
選項:
-c :統計位元組數
-w :統計單詞數
-l :統計行數
使用:
命令 < 檔名 :把檔案作為命令的輸入
命令 << 檔名 :把兩個相同字串之間的內容作為命令的輸入