如何在bash中快速滚动到命令历史记录的最新/结束?

时间:2012-04-18 01:09:11

标签: bash

很多时候我会使用Ctrl-R进行反向搜索并输错一些字母。 Bash跳了几百行,我正处于一周前使用的命令中。

是否有快捷方式可以跳回到我输入的最新命令?

编辑:在CentOS服务器和Mac OS X上测试后,看起来这只发生在OS X上。

5 个答案:

答案 0 :(得分:5)

我一直在努力解决这个问题。

您可以通过使用ctrl-c中止来解决此问题。无论您是在反向搜索中还是使用箭头滚动历史记录,中止都会返回到最后一个命令之后的历史滚动提示。

<强>更新

这是我刚学到的一个很好的技巧。 Bash和许多其他程序使用引擎盖下的Readline进行命令行解释。可以在.inputrc文件中或使用bind命令配置Readline的键绑定。绑定可以使用Readline提供的一些功能。例如,我在vi模式下使用Bash,但我仍然喜欢使用Emacs风格的ctrl-A,所以我在.bashrc文件中有这一行:

绑定'\ C-a:行首“

列出所有可用的Readline功能: bind -l <​​/ p>

其中的功能是历史终结。该功能就像它的名字所暗示的那样。这种方法与使用abort命令之间的区别在于,它可以使您保持相同的提示。

答案 1 :(得分:3)

如果使用libreadline,Alt-&gt; (或Meta->;)。有关Readline shortcuts的更多信息,或在手册页中搜索操作历史记录的命令

答案 2 :(得分:0)

也许不完全是你想要的,但是当你处于CTRL-r(反向搜索)模式时,你可以使用退格键来修复输入错误的字符。

答案 3 :(得分:0)

您可以尝试“建议框”式历史HSTR。它读取bash历史记录并允许快速导航和过滤 - 您可以看到类似历史记录条目的上下文。选择历史记录条目后,可以在命令行上对其进行编辑。

答案 4 :(得分:0)

在Mac上,试试command + . 这个对我有用。 我在尝试alt+.alt+shift+.,但对我来说都不适用。然后发现command + .实际上有效