从命令历史记录中完成命令行

从命令历史记录中完成命令行

所以,我查看了历史和Ctrl+ R,但它们并不是我认为我所知道的。有没有一种方法可以让我在命令的开头输入,并使用一些 bash 快捷方式循环浏览历史记录中的匹配项?

# mysq(some shortcut key)

给我:

# mysqldump  --add-drop-table -e -q -n -C -u 
(some shortcut key)
#  mysql -u ben.dauphinee -p

答案1

Ctrl+R将打开反向历史搜索。现在开始输入命令,这将给出第一个匹配项。通过再次按Ctrl+ R(一次又一次),您可以循环浏览历史记录。

mysq(Ctrl+R)

会给出:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R再次:

mysql -u ben.dauphinee -p

答案2

为了扩展 Gilles 所说的内容,我在 my 中有以下内容.inputrc将向上/向下箭头键绑定到history-search-backwardhistory-search-forward

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

只需键入一些内容(可选),然后按向上/向下箭头键即可在历史记录中搜索以您键入的内容开头的命令。

.bashrc要在而不是在 中执行此操作.inputrc,您可以使用:

bind '"\e[A": history-search-backward'

答案3

您还可以PAGEUP按按钮自动完成命令。它基本上搜索bash_history文件。

答案4

如果您想对非常相似的命令有一个很好的概述,您可以获得一个列表:

history|grep KEYSTRING

然后用鼠标中键复制并粘贴。

Rgds-乔

相关内容