1. 程式人生 > >Linux學習之Shell基礎——Bash基本功能——輸入輸出重定向

Linux學習之Shell基礎——Bash基本功能——輸入輸出重定向

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     :統計行數

使用:

命令 <  檔名    :把檔案作為命令的輸入

命令  << 檔名   :把兩個相同字串之間的內容作為命令的輸入