你能从意外的“yes”命令中拯救 shell 吗?

Ind*_*ity 3 shell session scrolling yes

场景:我正在运行一堆命令,其中一些命令提示输入“是/否”答案。我不小心键入了yes命令而不是对提示的响应。哎呀。现在我的外壳看起来像这样:

$ yum install -y something-important
... useful output I want to go back and refer to, perhaps multiple times
$ yes
y
y
y
y
y
y
y
y
y
y
y
... there are tens of thousands of lines... oh god, Y??
Run Code Online (Sandbox Code Playgroud)

在意识到发生了什么后,我成功地停止了yes命令,但损害已经造成了。我当时正处于紧张的 shell 会话中,现在我失去了向上滚动以获得相关输出的能力!显然以前的文本仍然存在,但它基本上无法访问,因为它与所有y. 类似的东西clear将有助于y从我的屏幕上删除难看的种子,但它不会帮助我回到之前的会话状态。

如何挽救本次会话之前的输出以使其仍然有用?

Art*_*nov 5

图形终端模拟器通常在回滚缓冲区中保存的字符串数量有限,因此如果您之前的行已旋转,它们就会丢失。您可以增加保留的行数,或者某些终端甚至允许无限回滚。

  • @MarcWilson 不,在这种情况下 Artem 是完全正确的。这里讨论的不是 Shell 的历史;这是终端回滚以查看已运行命令的_输出_ (9认同)
  • 虽然 Artem 是正确的,但这里使用的术语具有误导性,因为“历史”更一般地指您输入的命令的 shell 历史记录。在这里,我们讨论的是终端或终端模拟器*回滚缓冲区*。无论如何,OP 假设 shell 与此有关是错误的。 (6认同)