萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 將常用命令綁定鍵盤快捷鍵:inputrc 配置、Alt/Ctrl/F 鍵映射、參數化熱鍵、服務管理一鍵操作

透過 Readline 庫配置檔 /etc/inputrc 或 ~/.inputrc,可將任意 Shell 命令、組合鍵、甚至帶參數的動態指令綁定至鍵盤快捷鍵,極大提升終端操作效率。本文系統介紹綁定語法、ASCII 碼獲取、游標/歷史/編輯導航鍵重映射、服務管理/應用啟動參數化熱鍵、配置管理最佳實務。

鍵盤快捷鍵綁定示意

配置檔與語法

# /etc/inputrc (全域) 或 ~/.inputrc (用戶)
# 格式: "KEYSEQ": "MACRO"
# KEYSEQ 可用 \\C- (Ctrl), \\M- (Alt), \\e (ESC), 字面字符
# MACRO 為要輸入的字串,\\C-M 代表 Enter

獲取按鍵 ASCII 碼

$ cat -v
# 按下組合鍵,顯示如 ^[ [A (Up), ^G (Ctrl+G), ^[p (Alt+P)
# Ctrl+V 後按組合鍵可插入原始轉義碼

基礎導航鍵重映射 (讓右手不離開主鍵區)

# ~/.inputrc
# Alt+H/J/K/L ←↓↑→ (替代方向鍵)
"\eh": "\e[D"      # Left
"\el": "\e[C"      # Right
"\ej": "\e[B"      # Down (歷史下一條)
"\ek": "\e[A"      # Up   (歷史上一條)

# Alt+I/O 刪除字符 (Backspace/Delete)
"\ei": "\C-?"      # Backspace
"\eo": "\e[3~"     # Delete

# Alt+N/M 刪除單詞
"\en": "\e\C-?"    # backward-kill-word
"\em": "\ed"       # kill-word

# Alt+A/E 刪除至行首/行尾
"\ea": "\e\C-?\e\C-?\e\C-?\e\C-?\e\C-?\e\C-?\e\C-?"  # 多次 backward-kill-word
"\ee": "\ed\ed\ed\ed\ed\ed\ed"                        # 多次 kill-word

# Alt+P 粘貼上一條命令最後參數
"\ep": "\e."

# Alt+Q/W 單詞跳轉 (替代 Alt+F/B)
"\eq": "\eb"       # backward-word
"\ew": "\ef"       # forward-word

參數化熱鍵:服務管理一鍵操作

定義「前綴鍵 + 服務縮寫」模式,按下前綴鍵後輸入縮寫自動執行對應命令。

# 服務管理前綴鍵
# Alt+S (Start) + 服務縮寫
"\es""sm": "systemctl start smb\n"
"\es""ht": "systemctl start httpd\n"
"\es""sq": "systemctl start squid\n"

# Alt+D (Down/Stop)
"\ed""sm": "systemctl stop smb\n"
"\ed""ht": "systemctl stop httpd\n"

# Alt+R (Restart)
"\er""sm": "systemctl restart smb\n"
"\er""ht": "systemctl restart httpd\n"

# Alt+T (Status)
"\et""sm": "systemctl status smb\n"

# Alt+C (Configure) + 服務縮寫 + 可選數字
"\ec""nf": "vi /etc/exports\n"
"\ec""sm": "vi /etc/samba/smb.conf\n"
"\ec""ssh1": "vi /etc/ssh/sshd_config\n"
"\ec""ssh2": "vi /etc/ssh/ssh_config\n"

應用程式啟動熱鍵 (Alt+X)

"\ex""ga": "gaim &>/dev/null & disown\n"
"\ex""xm": "xmms &>/dev/null & disown\n"
"\ex""vm": "vmware &>/dev/null & disown\n"
"\ex""na": "nautilus &>/dev/null & disown\n"

生效方式

# 當前 Shell 立即生效
$ bind -f ~/.inputrc

# 永久生效:已寫入 ~/.inputrc,新 Shell 自動讀取
# 或加入 ~/.bashrc: bind -f ~/.inputrc

進階技巧

  • 條件綁定:$if mode=vi...$endif 區分 vi/emacs 模式。
  • 變數展開:巨集中可用 $VAR,需雙引號包裹。
  • 多鍵序列超時:set keyseq-timeout 500 (ms),避免前綴鍵等待過久。
  • 顯示所有綁定:bind -P 或 bind -p。

注意事項

  • 終端模擬器可能攔截特定組合鍵(如 Ctrl+S/Q 流控、Ctrl+L 清屏),優先級高於 Readline。
  • SSH 遠端會話同樣生效(Readline 運行在客戶端)。
  • 圖形介面應用程式(VS Code 終端、JetBrains 終端)可能有獨立按鍵映射,需在 IDE 設定中配置。

建立個人化 ~/.inputrc,讓雙手永遠停留在主鍵區,將重複性操作轉化為肌肉記憶,是終端高手的標誌性技能。

copyright © 萬盛學電腦網 all rights reserved