Bash

如何從命令歷史記錄中自動完成命令?

  • April 6, 2021

bash 是否有組合鍵可以自動競爭歷史記錄中的命令?例如,在 ipython 和 matlab 中,這是通過在鍵入幾個字元後按向上箭頭來實現的。

首先,tab使用 bash 會更好,因為它會自動完成 PATH 中的所有執行檔,無論它們是否在歷史記錄中。也就是說,有多種方法可以從您的歷史記錄中獲取命令:

  1. 使用它的號碼。如果你知道你想要的命令是 3 個命令之前,你可以執行
!-3

這將重新執行您之前執行三個命令的命令。

  1. 搜尋它。鍵入Ctrl``r並開始鍵入任何文本。將顯示與您的文本匹配的歷史記錄中的第一個命令,點擊enter將執行它。
  2. 擊中(向上箭頭)。這將調出最後一個命令,再次按下它,您將查看命令歷史記錄。當你找到你想要的,點擊enter
  3. 將這些行添加到您的~/.inputrc(如果文件不存在則創建文件):
"\e[A": history-search-backward
"\e[B": history-search-forward

要立即載入文件,請執行bind -f ~/.inputrc( source )。現在,輸入您之前執行過的命令之一的前幾個字元,然後點擊。將顯示以這些字元開頭的歷史記錄中的第一個命令。再次點擊以查看其餘內容,並enter在找到所需的內容時點擊。

  1. 使用history命令。正如@Isaac 解釋的那樣,這將列出儲存在您的歷史文件中的所有命令。

引用自:https://unix.stackexchange.com/questions/160356