3. LINUX系統設定命令提示字元下的熱鍵

來源:互聯網
上載者:User

LINUX系統設定命令提示字元下的熱鍵

Linux的一個特色就是其命令多而且功能強大, 頻繁輸入命令不僅麻煩而且工作量較大,雖然可以使用TAB進行>命令補足,或者使用aliase來簡化某個命令的輸入,但這並不能從根本上解決敲擊鍵盤次數過多的問題。   

  可以把任何命令或命令的組合指定給鍵盤上的某個鍵,可以是Alt+[A-Z],

  Ctrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],還有更不可思議的是甚至還可以為功能鍵加上“參數”,這樣你按下那個鍵的時候,它會等待你輸入相應的參數,並根據不同的參數運行不同的命令。   

  當然,有一些熱鍵會被終端所捕獲,如常見的Ctrl-D/C/Q/Z等,不過沒關係,可用的熱鍵還多著呢!

  定義熱鍵的設定檔為:/etc/inputrc 或 ~/.inputrc,定義熱鍵的格式如下:   

  "<熱鍵對應的ASCII字元>":"<執行的命令>"   

  其中熱鍵對應的ASCII字元可以通過 "先按Ctrl-V, 然後按熱鍵" 的方式來輸入, 如Ctrl-G對應的字元為^G, Alt-P對應的字元為^[p, Ctrl-Alt-H對應的字元為^[^H.   

  可以用/C來代替Ctrl,/M來代替Alt, /M-/C來代替Alt-Ctrl, 如/C-M = Ctrl-M, /M-/C-H = Alt-Ctrl-M. 另外還可以用/e代表^[.   

  先來看一些基本的熱鍵定義,(這裡熱鍵裡的字母不區分大小寫):

  "^[-":"su -/C-M" # 按Alt+- 執行su - 命令,末尾/C-M表示輸入完定義的命令後斷行符號,也可以更簡潔地用一個/n來表示.   

  "/M-/C-G":"gaim & &>/dev/null && disown/C-M"

  # 按Ctrl-Alt-g在當前shell開啟gaim, 並脫離該shell獨立運行,即:即使你退出了該shell, gaim也不會關閉   

  其他一些按鍵組合可以根據自己的需要配置,偶就不多說了.   

  大家也許會覺得這樣定義熱鍵太亂了,而且很難記住,還有一定的限制。這個問題在後面會得到解決。   

  一般情況下,我們可以使用上下方向鍵來尋找命令曆史列表,以此重複輸入命令,但是方向鍵離主鍵盤區太遠,如>果頻繁使用的話,會耽誤不少時間,而且挪動右手時也不太方便,有沒有什麼辦法把方向鍵的功能轉移到我們經常>敲命令的地方呢? 如使用Alt+J = Down Arrow 向下尋找,Alt+K=Up Arrow 向下尋找   

  通過定義熱鍵可以做到這點:   

  "/eh":"^[OD" # move left

  # Alt-H 向左移一個字元, 相當於Left Arrowgh, 這裡^[OD即向上方向鍵的ASCII字元,輸入方式與前面提到的類似

  "/el":"^[OC" # move right

  # Alt-L 向右移一個字元,相當於Right Arrow   

  "/ej":"^[OB" # move up

  # Alt-J 向下移動,相當於Up Arrow   

  "/ek":"^[OA" # move down

  # Alt-K 向上移動,相當於Down Arrow   

  "/ei":"^?" # left earse one character

  # Alt-I 向左刪除一個字元,相當於Backspace   

  "/eo":delete-char # right earse one character

  # Alt-O 向右刪除一個字元,相當於Delete   

  "/en":backward-kill-word # left kill one word

  # Alt-N 向左刪除一個單詞   

  "/em":kill-word # right kill one word

  # Alt-M 向右刪除一個單詞   

  "/ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head

  # Alt-A 刪除當前位置到開頭,也就是多Alt-N幾次(A--> ahead)   

  "/ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head

  # Alt-E 刪除當前位置到末尾,也就是多Alt-M幾次(E--> end)   

  "/ep": insert-last-argumem"

  # Alt-P 插入上一個命令最後一個參數 (P--> Paste)   

  "/ew": forward-word

  # 系統預設Alt-F (forward)跳到當前單詞詞尾,如果已在詞尾,則跳到下一個單詞(右邊一個單詞)詞尾   

  "/eq": backward-word

  # 系統預設Alt-B (backward)跳到當前單詞詞首,如果已在詞首,則跳到上一個單詞(左邊一個單詞)詞首   

  發覺F和B鍵離得太遠,不方便,偶分別改作Alt-Q, Alt-W, 但是Alt-F/B照樣可以用   

  這樣輸入命令的時候幾乎可以不用離開主鍵盤區,而且移動游標,刪除字元,刪除單詞,上下曆史命令尋找都集中>在一塊,比以前方便多了。 不過開始可能有些不習慣,就跟使用vi一樣,但是多練幾次就熟練了。   

  Linux下絕大部分服務的配置是基於設定檔的,一般說來,更改了某個服務的設定檔,要使其立即生效,還需重啟該服務直接的或依附的守護進程才行。難道你就不覺得“每次 vi /etc/xxx.conf 完後又 service xxx restart/reload 或 killall -HUP xxx”這樣做很繁瑣嗎?如果要配置的服務較多而且要不停地調試呢?況且我們平常使用Linux時難免會不時地終止或啟動某個服務進程,輸入命令的次數也不少。如果為每個服務都指定一個熱鍵的話,似乎不大可能。如果我們賦予一個熱鍵為一個基本鍵,而相應的服務為其“參數”,那又如何呢?   

  舉個例子,賦予Alt-S (S-->Start)為啟動服務的基本鍵,服務名的前2個字元為啟動“參數”,那麼就可以像下面那樣隨意啟動某個服務了:

  "/essm":"service smb start/n"

  # /es=Alt-s, sm=smb,

  # 即:按下Alt-s後緊跟著再輸入sm(這時輸入的sm並不會顯示在終端上),就可以啟動samba的服務進程了,不必擔心按下鍵與輸入“參數”間的時間延遲問題,你按下Alt-s,然後去外面兜一圈回來,再接著輸入sm,照樣可以。   

  "/esht":"service httpd start/n" # ht=httpd,啟動Apache服務  

  類似地,我們賦予

  Alt-D(D--> shutDown) 為停止服務的基本鍵

  Alt-R(R--> Restart) 為重啟服務的基本鍵

  Alt-T(T--> Status) 為查看服務狀態的基本鍵

  Alt-C(C--> Configure) 為開啟服務對應的主設定檔的基本鍵

  如:"/ecnf":"vi /etc/exports/n" # Alt-c+nf 開啟NFS的設定檔

  "/ecsm":"vi /etc/samba/smb.conf/n" # Alt-c+sm 開啟smb的設定檔   

  如果某個服務(如ssh)有2個設定檔,可以在其後再加一個數字,如:

  "/ecssh1":"vi /etc/ssh/sshd_config/n" # 開啟sshd服務端設定檔

  "/ecssh2":"vi /etc/ssh/ssh_config/n" # 開啟sshd用戶端設定檔   

  如果要執行某個應用程式呢?可以用Alt-x做基本鍵(x--> eXeccute) 如:

  "/exga":"gaim & &>/dev/null && disown && clean /n"

  "/exxm":"xmms & &>/dev/null && disown && clean /n"

  "/exvm":"vmware & &>/dev/null && disown && clean /n" "/exna":"nautilus & &>/dev/null && disown && clean /n"

  等等....   

  到現在為止我們只要按1個按鍵組合+2個字元就可以實現下面眾多的功能:

  1. 執行指定的應用程式

  2. 啟動 重啟 關閉 指定的服務進程

  3. 查看指定服務的狀態

  4. 開啟指定服務的指定設定檔

Author: http://www.tanvy.com/linux/showarticle.asp?id=161&sort=LINUX%BC%BC%CA%F5

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.