如何提高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_complete:
如果經常你使用[tab]鍵命令補全功能,就會發現它的不足之處,你可以發現它不
能根據具體的需要或者命令補全所需要的引數與檔案或者目錄。例如你執行cd [tab],
系統會將檔案與目錄一起顯示出來,而實際上這時你僅僅需要顯示檔案型別為目錄。
bash從2.05版開始,已經加入命令complete內部命令,從而能夠使用複雜的命令列介面,
透過一個複雜的指令碼bash_completion實現可程式設計的補全程式,減少系統管理員日常維護
工作,減少差錯提高工作效率。
具體操作如下:
1. 下載最新的bash_complete指令碼,檢查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_complete目錄下的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_complete檔案:
# cp /tmp/bash_complete/bash_completion /etc
登出再重新進入後,你就會發現許多命令在使用命令補全時都會發生一些
變化。
透過以上的修改,你會發現在命令列上使用linux,同樣高效與快捷,減少了
許多不必要的錯誤。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-82856/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 提高linux命令列下工作效率Linux命令列
- 提高linux命令列下工作效率(轉)Linux命令列
- 提高命令列下工作效率命令列
- 用命令列提高UNIX工作效率大合集命令列
- 一個提高工作效率的常用linux命令Linux
- 如何利用代理ip提高爬蟲的工作效率爬蟲
- 如何有效提高銷售人員的工作效率
- 職場新人如何提高工作效率
- 提高Linux工作效率的十大bash技巧Linux
- 提高 Linux 運維效率的 30 個命令列常用快捷鍵Linux運維命令列
- 如何用 MacBook 提高工作效率的【工具篇】Mac
- 這些linux技巧大大提高你的工作效率Linux
- 如何在 Linux 命令列操作 PDFLinux命令列
- 如何用 MacBook 提高工作效率 【配置篇】Mac
- 如何使用Git提高研發團隊工作效率?Git
- 如何提高工作效率 - 自動化篇
- 程式設計師如何提高工作效率程式設計師
- 如何利用多螢幕提高工作效率
- 如何隱藏你的 Linux 的命令列歷史Linux命令列
- Linux命令列與命令Linux命令列
- Linux命令列Linux命令列
- Linux 黑乎乎的命令列下,如何除錯 Python?Linux命令列除錯Python
- 收集 Linux 命令列執行的命令Linux命令列
- 程式設計師如何巧用Excel提高工作效率程式設計師Excel
- 如何從 Linux 命令列安裝軟體Linux命令列
- Linux awk命令中如何刪除陣列Linux陣列
- 4個Excel技巧,提高你的工作效率!Excel
- Linux 命令列下搜尋工具大盤點,效率提高不止一倍!Linux命令列
- 碼農提高工作效率
- 在 WordPress 下如何透過 Markdown 來提高工作效率
- 如何用 Linux 命令列發電子郵件Linux命令列
- 如何在 Linux 命令列中切換使用者Linux命令列
- 如何使用Linux設定命令列海外IP代理?Linux命令列
- Linux命令列如何“四兩撥千斤”Linux命令列
- 提高工作效率的6條建議
- Linux的命令列介面簡介Linux命令列
- 實用的Linux命令列技巧Linux命令列
- 轉 碼農提高工作效率