Try   HackMD

Readline

  • 日期:2023.07.19 (三)
  • 報告者:峻浩戴智濤

簡介

Readline 是一個用於處理命令行輸入的庫,它提供了強大的編輯和自動完成功能,Readline 庫被廣泛應用於各種 Unix/Linux 系統中,是 Bash Shell 的一部分

Readline 庫提供了兩種常見的文本編輯器:

  • Emacs 模式Emacs 是一個流行的文本編輯器,Bash 的 默認編輯模式 就是 Emacs 模式。在 Emacs 模式下,可以使用類似於 Emacs 編輯器的快捷鍵來編輯命令行
  • Vi/Vim 模式Vi/Vim 是另一個廣泛使用的文本編輯器,在 Vi/Vim 模式下,可以使用類似於 Vi/Vim 編輯器的快捷鍵來編輯命令行 (Vi/Vim 以下簡稱 Vi

Emacs 按鍵通常標記方法:

E - Esc 
M - Meta (許多鍵盤 Meta 鍵都標記為 Alt)
A - Alt (macOS:option鍵)
C - Ctrl (*macOS:command鍵)
S - Shift
*快捷鍵

技巧

Emacs Readline 編輯速查表

Readline 有許多常用的快捷鍵可用於增強命令行的編輯和操作。以下是一些常見的 Readline 快捷鍵及功能:

光標移動

  • Ctrl + A:光標會跳到行首
  • Ctrl + E:光標會跳到行尾
  • Ctrl + B:向左移動一個字符 ( 向左箭頭 )
  • Ctrl + F:向右移動一個字符 ( 向右箭頭 )
  • Alt + B:向左移動一個詞(以空格或特殊字符為邊界)( Ctrl + ← )
  • Alt + F:向右移動一個詞(以空格或特殊字符為邊界)( Ctrl + → )

編輯

  • Alt + .:插入上一個命令的最後一個參數
  • Alt + U:將光標處的後面單詞全部變為大寫
  • Alt + L:將光標處的後面單詞全部變為小寫

刪除

  • Ctrl + D:刪除光標處的字符,類似於 Delete(macOS:fn + delete),如果是空行,則退出當前會話 ( EOF )
  • Ctrl + H:刪除光標前一個字符,類似於 Backspace(macOS:delete
  • Ctrl + K:刪除從光標處到行尾的文本
  • Ctrl + U:刪除整行
  • Ctrl + W:刪除光標前一個詞
  • Alt + Backspace:刪除從光標處到上一個單詞開頭的內容

自動補全

  • Tab: 自動補全命令、文件名或目錄名
  • Alt + ! : complete-command (命令)
  • Alt + $ : complete-variable (變數)
  • Alt + @ : complete-hostname (主機名)
  • Alt + ~ : complete-username (用戶名)

歷史記錄

  • Ctrl + P:選擇上一個命令(向上箭頭)
  • Ctrl + N:選擇下一個命令(向下箭頭)
  • Ctrl + R:進入歷史搜索模式
  • Ctrl + G:退出歷史搜索模式
  • Ctrl + T:選擇指令後不執行

其他操作

  • 按兩次 Tab: 顯示可執行的指令
  • Ctrl + L:清屏,相當於執行 clear 命令
  • Ctrl + C:終止當前正在運行的命令
  • Ctrl + Z:將當前命令放入後台(暫停)
  • Ctrl + S:暫停當前正在運行的命令
  • Ctrl + Q:繼續當前正在運行的命令
while [ 1 ]; do SUM=$(($SUM+1)); echo $SUM; done

參考資料