在 Linux/bash 中显示历史记录中上一个命令的下一个命令的热键是什么?

在 Linux/bash 中显示历史记录中上一个命令的下一个命令的热键是什么?

在 Windows cmd 窗口中,假设我键入并执行 40 个命令,如下所示:

echo 1[Enter]
echo 2[Enter]
echo 3[Enter]
...
echo 40[Enter]

如果我决定以相同的顺序再次重复 40 个命令,我会这样做:

  • [Up]--->提示显示echo 40
  • [Up]--->提示显示echo 39
  • 重复[Up]37次
  • [Up]--->提示显示echo 1
  • [Enter]--->echo 1执行
  • [Down]---> 提示显示echo 2<--- 在 Linux/Bash 中不起作用
  • [Enter]--->echo 2执行
  • [Down]--->提示显示echo 3
  • [Enter]--->echo 3执行
  • 重复[Down][Enter]37次以执行所有剩余命令
  • 如果我[Down]现在按,它会echo 1再次循环

在 Linux/Bash 中,在历史记录中查找并执行后echo 1,按[Down]键不会给我任何东西。我必须[Up]再次按 40 次才能得到echo 2。有办法让它发挥作用吗?

答案1

  • ...
  • [Up]--->提示显示echo 1
  • [Ctrl-O](是字母o,不是零)--->echo 1执行,提示符显示echo 2
  • [Ctrl-O]...

可以在 中更改热键.inputrc,请参阅operate-and-get-nextreadline的手册。

答案2

在这种情况下,改变流程可能会带来更好的解决方案。

您已标记为这很方便。如果您想要重复 40 个命令,一种选择是将它们放入 shell 脚本中

fc -nl -40 >file
. file

或者您可能想先编辑它们

fc -40 0

更多兴奋与help fc

相关内容