Bash
如何從命令歷史記錄中自動完成命令?
bash 是否有組合鍵可以自動競爭歷史記錄中的命令?例如,在 ipython 和 matlab 中,這是通過在鍵入幾個字元後按向上箭頭來實現的。
首先,
tab
使用 bash 會更好,因為它會自動完成 PATH 中的所有執行檔,無論它們是否在歷史記錄中。也就是說,有多種方法可以從您的歷史記錄中獲取命令:
- 使用它的號碼。如果你知道你想要的命令是 3 個命令之前,你可以執行
!-3
這將重新執行您之前執行三個命令的命令。
- 搜尋它。鍵入
Ctrl``r
並開始鍵入任何文本。將顯示與您的文本匹配的歷史記錄中的第一個命令,點擊enter
將執行它。- 擊中
▲
(向上箭頭)。這將調出最後一個命令,再次按下它,您將查看命令歷史記錄。當你找到你想要的,點擊enter
。- 將這些行添加到您的
~/.inputrc
(如果文件不存在則創建文件):"\e[A": history-search-backward "\e[B": history-search-forward
要立即載入文件,請執行
bind -f ~/.inputrc
( source )。現在,輸入您之前執行過的命令之一的前幾個字元,然後點擊▲
。將顯示以這些字元開頭的歷史記錄中的第一個命令。再次點擊▲
以查看其餘內容,並enter
在找到所需的內容時點擊。
- 使用
history
命令。正如@Isaac 解釋的那樣,這將列出儲存在您的歷史文件中的所有命令。