Bash 从历史记录中执行命令并将下一个/上一个命令拉入命令行

Bash 从历史记录中执行命令并将下一个/上一个命令拉入命令行

我确信我在某个地方读过它,但我再也找不到该网站了。

基本上,我想搜索历史记录“^r”,然后执行一个命令并让我处于历史记录中的下一个/上一个位置。因为通常我会一起运行一些命令,所以能够轻松地按顺序再次执行这些命令是有意义的。

例如,假设我的历史记录中有 3 条命令,我执行了最旧的命令 (3),然后我希望在命令行中看到命令 2,如果我按“向上”,我会看到命令 3,而按“向下”会看到命令 1。因此在这种情况下,在执行命令 3 之后,我将处于与在空白提示符下按两次“向上”相同的状态。

谢谢大家

皮尔斯

答案1

按 Ctrl-o(字母 Oh)执行您检索到的命令,历史记录中的下一个命令将出现在提示符下,等待您按 Ctrl-o 或 Enter 等。

编辑:

此命令将 Ctrl-Alt-o 绑定到执行所选命令并移动到上一个命令的键盘宏:

bind '"\e\C-o": "\C-o\C-p\C-p"'

您可以通过将以下内容添加至您的 来保存此内容,以便在未来的会话中持久保留~/.inputrc

"\e\C-o": "\C-o\C-p\C-p"

相关内容