雖然最近幾年個人計算機的潮流已經從命令列方式轉向圖形介面方式,大量的採用滑鼠操作,但是shell 在linux中依然有很強的生命力。 shell有好幾種,主要有bash、ksh、tcsh、zsh、ash,用得最多的是bash,它幾乎是各種linux發布版的標準配置。同時在 linux 作業系統中,即使在x window下,系統管理員經常也要與命令列打交道,使用鍵盤次數要明顯高於滑鼠,本文通過介紹合理地定製與修改 inputrc環境變數,以及利用bash 2.05以上版本中增加的complete命令,可以更好地提高linux命令列使用的工作效率,減少鍵盤的敲打以及拼寫錯誤。
一.定製/etc/inputrc檔案
例子:/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實現可程式設計的補全程式,減少系統管理員日常維護工作,減少差錯提高工作效率。
具體操作如下:
www.caliban.org/files/bash/bash-completion-latest.tar.gz
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
bash=$; bmajor=$; bminor=$
if [ "$ps1" ] && [ $bmajor -eq 2 ] && [ $bminor '>' 04 ]
&& [ -f /etc/bash_completion ]; then # interactive shell
# source completion code
. /etc/bash_completion
fiunset bash bmajor bminor
4. 拷貝bash_completion檔案:
# cp /tmp/bash_completion/bash_completion /etc
登出再重新進入後,你就會發現許多命令在使用命令補全時都會發生一些變化。
通過以上的修改,你會發現在命令列上使用linux,同樣高效與快捷,減少了許多不必要的錯誤。
文章出處
Linux系統命令行
一 常用命令引數及其作用 引數 作用 b 目錄檔案 l 鏈結檔案 c 字元檔案 b 塊裝置 rmdir 刪除 su 切換 rebot 重啟 exit 退出 clear 清屏 二 工作目錄切換命令 1 cat 檢視純文字檔案 內容較少 格式 cat 選項 檔案 選項 cat n number 由1開始...
linux系統相關命令列
1 ctrl alt f1 f6 進行切換 ctrl alt f7 返回圖形介面 2 使用tab鍵進行 命令補全 補全目錄 補全命令引數都是可以的。當你忘記某些命令的全稱時,可以只輸入開頭的一部分,然後按下tab鍵就會補全 3 ctrl c 立即停止並恢復到你可控的狀態,強行終止當前程式 並不會使終...
Linux系統命令行整理
1 pwd 檢視當前所在目錄 2 cd 跳往根目錄 3 ls 檢視當前目錄所有子目錄或檔案 4 ls l 列出當前目錄詳細資訊 5 ls lh h human 人性化列出當前目錄詳細資訊 6 cd 回到上一級 7 vim test 建立隱藏檔案 8 ls a 顯示隱藏檔案 按下i鍵 進入編輯模式 按...