![Bash 从历史记录中执行命令并将下一个/上一个命令拉入命令行](https://linux22.com/image/1265082/Bash%20%E4%BB%8E%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%E5%B9%B6%E5%B0%86%E4%B8%8B%E4%B8%80%E4%B8%AA%2F%E4%B8%8A%E4%B8%80%E4%B8%AA%E5%91%BD%E4%BB%A4%E6%8B%89%E5%85%A5%E5%91%BD%E4%BB%A4%E8%A1%8C.png)
我确信我在某个地方读过它,但我再也找不到该网站了。
基本上,我想搜索历史记录“^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"