Spa*_*ler 25 bash command-history autocomplete
bash 是否有一个组合键可以自动竞争历史命令?例如,在 ipython 和 matlab 中,这是通过在键入几个字符后按向上箭头来实现的。
ter*_*don 37
首先,tab使用 bash 会更好,因为它会自动完成 PATH 中的所有可执行文件,而不管它们是否在历史记录中。也就是说,有多种方法可以从您的历史记录中获取命令:
使用其编号。如果你知道你想要的命令是 3 个命令之前,你可以运行
!-3
Run Code Online (Sandbox Code Playgroud)
这将重新执行您之前运行过的三个命令的命令。
搜索它。键入Ctrlr并开始键入任何文本。将显示与您的文本匹配的历史记录中的第一个命令,点击enter将执行它。
击中?(向上箭头)。这将调出最后一个命令,再次按下它,您将进入您的命令历史记录。当你找到你想要的那个时,点击enter。
将这些行添加到您的~/.inputrc(如果文件不存在则创建该文件):
"\e[A": history-search-backward
"\e[B": history-search-forward
Run Code Online (Sandbox Code Playgroud)
要立即加载文件,请运行bind -f ~/.inputrc( source )。现在,键入您之前运行的命令之一的前几个字符并点击?。将显示历史记录中以这些字符开头的第一个命令。?再次点击以查看其余部分,并enter在找到您想要的那个时点击。
history命令。正如@Isaac 所解释的那样,这将列出存储在历史文件中的所有命令。