我昨晚一直在命令行中运行脚本(在 Linux EC2 实例上的 Screen 中),出现了一些我没有跟踪的错误。我想“向上滚动”或在 Screen 中查看更多历史记录,但似乎找不到任何可用的命令。
我需要看到比当前屏幕“更远”的屏幕输出。CTRL + a 应该会让我进入 Screen 内的滚动模式,但它不起作用。
答案1
启动 screen 时,可以使用 -h 指定回滚缓冲区的大小,因此可以将其从默认的 100 行增加。但是,对于当前正在运行的 screen,一旦数据离开缓冲区,它就消失了。
[编辑以清晰易懂]
@opyate 在他的回答中解释了如何使用回滚缓冲区。我把那个答案复制到这里,因为它更清晰,也为新手改进了这个答案。
假设您没有覆盖转义序列,您可以按
Ctrl-a [
进入回滚模式,然后使用通常的Page-UP/Page-DOWN
或Ctrl-b/Ctrl-f
上下移动。
答案2
假设您尚未覆盖转义序列,您可以按Ctrl-a [
进入滚动回滚模式,然后使用常用的 Page-UP/Page-DOWN 或 Ctrl-b/Ctrl-f 上下移动。
答案3
我需要看到比当前屏幕“更远”的屏幕输出。CTRL + a 应该会让我进入 Screen 内的滚动模式,但它不起作用。
作为对其他答案的补充,我想指出您可以在文件中添加~/.screenrc
:
defscrollback 100000
termcapinfo xterm ti@:te@
在哪里:
defscrollback 100000
:将默认回滚行数设置为100000
termcapinfo xterm ti@:te@
:允许在 xterm 或 PuTTY 中终端滚动。(屏幕常见问题解答;PuTTY 常见问题解答)
答案4
您还可以在命令中运行命令script
,这会将输出记录到磁盘。或者您可以: command 2>&1 | tee /tmp/cmd.out
记录输出以供将来调查,您需要一个(实际上)无限大的输出历史记录。