歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> 如何提高linux命令行的工作效率

如何提高linux命令行的工作效率

日期:2017/2/28 10:05:39   编辑:Linux命令
Linux命令
  摘要
    本文介紹一些配置技巧,使你更好地操縱Linux命令行,提高工作效率
   雖然最近幾年個人計算機的潮流已經從命令行方式轉向圖形界面方式,大量的采用鼠標操作,但是shell 在Linux中依然有很強的生命力。shell有好幾種,主要有bash、ksh、tcsh、zsh、ash,用得最多的是bash,它幾乎是各種linux發布版的標准配置。同時在linux 操作系統中,即使在X Window下,系統管理員經常也要與命令行打交道,使用鍵盤次數要明顯高於鼠標,本文通過介紹合理地定制與修改INPUTRC環境變量,以及利用bash 2.05以上版本中增加的complete命令,可以更好地提高linux命令行使用的工作效率,減少鍵盤的敲打以及拼寫錯誤。
  
  一.定制/etc/inputrc文件:
  
    通過設置INPUTRC環境變量(參見/etc/profile文件),其作用主要定義或者改變一些功能鍵的定義,從而更好地使用命令行,通常情況下INPUTRC環境變量指向 /etc/inputrc文件,只要編輯/etc/inputrc文件,以及利用Tab鍵的命令補全功能,就可以實現類似於MSDOS的DOSKEY的功能。
  
    以Redhat 7.3為例來說明,使用的bash shell版本號為2.0.5。你可以根據自己的需要定制與修改此文件,如想了解更多的內容,可以參閱man bash文檔。
  
    例子:/etc/inputrc文件內容如下:
  
    set bell-style none
    set meta-flag on
    set input-meta on
    set convert-meta off
    set output-meta on
  
    set show-all-if-ambiguous On
  
    "e[1~": beginning-of-line # home
    "e[2~": insert-last-argument # insert
    "e[3~": delete-char # delete
    "e[4~": end-of-line # end
    "e[5~": backward-kill-word # page up
    "e[6~": kill-word # page down
  
    # (F1 .. F5) are "e[[A" ... "e[[E"
    "e[18~": history-search-forward # F7
    "e[19~": history-search-backward # F8
  
    具體修改說明如下(注以下[]中的內容為所按的鍵):
  
    set bell-style none
  
    關閉計算機小喇叭發出的聲音。
  
   set meta-flag on
   set input-meta on
   set convert-meta off
   set output-meta on
  
    這幾行主要是實現命令行上實現漢字的輸入以及顯示。 比如想輸入漢字的文件名等等。
  
   set show-all-if-ambiguous On
  
    這一行主要是使命令補全的功能更好的發揮。許多Linux初學者並不知道這個功能,就是使用[Tab]鍵,能夠減少鍵盤的敲打以及拼寫錯誤。比如當前你想執行ifconfig命名,你輸入if後按[Tab]鍵兩次,就會出現所有以if開頭的命令,文件名和目錄名也可以使用這個方法輸入,當打開上述命令後可以使用[Tab]鍵,僅僅需要按一次,這樣更加方便與快捷。
  
   "e[1~": beginning-of-line # home
   "e[2~": insert-last-argument # insert
   "e[3~": delete-char # delete
   "e[4~": end-of-line # end
   "e[5~": backward-kill-word # page up
   "e[6~": kill-word # page down
  
    這幾行主要是使命令行編輯方便,[home]、[delete]、[end]鍵保持原意,意指移動到命令行的開始、刪除一個字符、移動到命令行尾。[insert] 鍵被定義為插入上一個命令的最後一個參數。比如執行如下命令:
  
   $ mount /mnt/cdrom
   $ cd[space][insert]
      # 相當於 執行 cd /mnt/cdrom
  
    可以試著按[insert]鍵幾次看看會有什麼出現內容?
  
    [Pageup]和[PageDown]鍵定義為向前和向後刪除單詞。
  
   "e[18~": history-search-forward # F7
   "e[19~": history-search-backward # F8
  
    [F7]和[F8]定義為命令歷史查找功能,有點向MSDOS的DOSKEY功能類似,比如前面使用過mount命令,再次輸入mount後按[F8]會調出先前使用的命令,特別是當命令非常長參數非常多的時候。
  
  二.安裝bash-completion:
  
    如果經常你使用[tab]鍵命令補全功能,就會發現它的不足之處,你可以發現它不能根據具體的需要或者命令補全所需要的參數與文件或者目錄。例如你執行cd [tab],系統會將文件與目錄一起顯示出來,而實際上這時你僅僅需要顯示文件類型為目錄。bash從2.05版開始,已經加入命令complete內部命令,從而能夠使用復雜的命令行接口,通過一個復雜的腳本bash_completion實現可編程的補全程序,減少系統管理員日常維護工作,減少差錯提高工作效率。
  
    具體操作如下:
  
    1. 下載最新的bash-completiton腳本,檢查bash的版本號【執行bash --version】,如果版本低於2.0.5最好升級bash.
    http://www.caliban.org/files/bash/bash-completion-latest.tar.gz
    http://www.caliban.org/files/redhat/RPMS/i386/bash-2.05-51.i386.rpm
  
  2. 安裝
  
   # rpm -Uvh bash-2.05-12.i386.rpm
   # tar xzvf bash-completion-latest.tar.gz -C /tmp
  
  3. 仔細閱讀bash_completetion目錄下的README文件,修改/etc/bashrc文件,在行尾加入如下命令:
  
   bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
   if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ]
   && [ -f /etc/bash_completion ]; then # interactive shell
   # Source completion code
   . /etc/bash_completion
   fi
   unset bash bmajor bminor
  
  
   4. 拷貝bash_completion文件:
  
   # cp /tmp/bash_completion/bash_completion /etc
  
    注銷再重新進入後,你就會發現許多命令在使用命令補全時都會發生一些變化。
  
    通過以上的修改,你會發現在命令行上使用linux,同樣高效與快捷,減少了許多不必要的錯誤。
  
    
  
  
  
Copyright © Linux教程網 All Rights Reserved