如何在 Linux 上的 Screen 中查看更多我的历史记录?

T. *_*nes 68 linux history command-line gnu-screen

我从命令行(在 Linux EC2 实例上的 Screen 内)整夜运行脚本,并且发生了一些我没有跟踪的错误。我想在 Screen 中“向上滚动”或查看更多历史记录,但我似乎找不到任何可以工作的命令。

我需要比我在当前屏幕上看到的“更远”的屏幕输出。CTRL + a 应该让我进入 Screen 内的滚动模式,但它不起作用。

opy*_*ate 97

假设你没有覆盖你的转义序列,你可以按下Ctrl-a [进入回滚模式,然后使用通常的 Page-UP/Page-DOWN 或 Ctrl-b/Ctrl-f 向上和向下。

来自屏幕使用的 Gentoo wiki

  • 和 ESC 退出回滚模式,IIRC (14认同)
  • `Ctrl`+`A`、`Esc` 也进入复制/回滚模式。 (6认同)
  • 谢谢你的回答和 @SergeStroobandt 的评论节省了我 10 个小时的工作时间。 (2认同)

Wil*_*ell 35

当您启动 screen 时,您可以使用 -h 指定回滚缓冲区的大小,因此您可以将其从默认值 100 行增加。但是,对于当前正在运行的屏幕,一旦数据离开缓冲区,它就消失了。

  • 这完全是错误的。@opyate 的答案确实提供了解决方案 (7认同)
  • @nirvana-msu 使用 ^a 进入回滚模式允许您向上翻回回滚缓冲区。如果数据已经从回滚缓冲区中消失,它就消失了。您可以在启动时增加该缓冲区的大小。你认为我的答案到底有什么不正确?我谈到增加回滚缓冲区的大小,opyate 提供了有关如何使用它的详细信息。 (7认同)
  • 好吧,虽然问题并不是关于扩展滚动缓冲区。作者想要查看比控制台中通常显示的更多的历史记录,您_可以_使用`Ctrl+a+[`查看更多历史记录。您的回答只是让人觉得这是不可能的,这是一种误导。 (3认同)

Fra*_*urt 13

我需要比我在当前屏幕上看到的“更远”的屏幕输出。CTRL + a 应该让我进入 Screen 内的滚动模式,但它不起作用。

作为对其他答案的补充,我要指出您可以在您的~/.screenrc文件中添加:

defscrollback 100000
termcapinfo xterm ti@:te@
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • 啊,它确实适用于`control` + `a`,然后是`ESC`,然后我可以使用光标在文本内滚动。不起作用的是使用侧面的 Mac 终端滑块用鼠标滚动。谢谢! (2认同)

小智 8

您还可以使用序列CTRL-a :(进入屏幕命令行模式)在运行屏幕中更改回滚历史记录大小,然后scrollback 10000如果您需要 10k 行历史记录缓冲区。更改立即生效。

如果您使用许多具有很长缓冲区的屏幕,请注意内存使用情况。

但是,就像@William Pursell 所说的那样,对于当前正在运行的屏幕,一旦数据离开缓冲区,它就会消失。


Set*_*son 7

您还可以在script将输出记录到磁盘的命令中运行您的命令。或者您可以: command 2>&1 | tee /tmp/cmd.out记录输出以供将来调查,您需要(实际上)无限大小的输出历史记录。