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


54

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

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


history | lessmore?或者您在问如何保留更多历史记录?

history将仅保留已在shell中触发的命令。他更多地询问伐木之类的东西

<Shift>+ <PgUp>是唯一的选择。而且它也有一些限制(我猜最多为500行)。
ssapkota 2011年

我需要在屏幕上看到的输出比当前屏幕显示的更远。CTRL + a应该可以使我进入Screen内的滚动模式,但它对我不起作用。
T. Brian Jones

1
只要Ctrl-ascreen“逃命。Ctrl-a [如opyate所说,进入回滚模式的整个键序列为。Ctrl-a ESC也适用于我,我不记得哪个是标准/常用的。
ninjalj 2011年

Answers:


32

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


3
这是完全错误的。@opyate的答案确实提供了一种解决方案
nirvana-msu

6
@ nirvana-msu使用^ a进入回滚模式可让您向上滚动回滚缓冲区。如果数据已从回滚缓冲区中删除,则该数据也将消失。您可以在启动时增加缓冲区的大小。您认为我的答案到底有什么不正确?我谈论增加回滚缓冲区的大小,opyate提供了有关如何使用它的详细信息。
William Pursell '17

2
好吧,虽然问题并不是关于扩展滚动缓冲区的。作者希望查看的历史记录比控制台中通常显示的更多,并且您可以使用查看更多的历史记录Ctrl+a+[。您的回答似乎似乎不可能,这会产生误导。
nirvana-msu

在Mac上无法使用。其他答案也不起作用。

76

假设您尚未覆盖转义序列,则可以按Ctrl-a [进入回滚模式,然后使用通常的Page-UP / Page-DOWN或Ctrl-b / Ctrl-f进行上下移动。

来自屏幕用法的Gentoo Wiki


7
和ESC退出回滚模式,IIRC
ninjalj 2011年

现在,gentoo Wiki是:wiki.gentoo.org/wiki/Screen
Rmatt 2014年

另请参阅这篇文章,了解如何(通过鼠标工作)进行滚动。帖子名称称其为tmux,但它也覆盖屏幕
JonnyRaa

2
Ctrl+ AEsc还进入复印/回滚模式。
Serge Stroobandt

7

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


这就是我最终用于任务的目的。效果很好。谢谢。
T. Brian Jones

6

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

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

defscrollback 100000
termcapinfo xterm ti@:te@

哪里:


在Mac上无法使用。这里没有答案。我仍然只能看到终端窗口的大小。更进一步的是screen命令和我在屏幕之前所做的工作。我也试过了screen -h,同样的结果。有任何想法吗?

@Ben对不起,我只在Ubuntu上尝试过。
弗兰克·德农库特

1
啊,它确实可以使用control+ a,然后ESC再使用光标在文本内滚动。不起作用的是使用侧面的Mac Terminal滑块用鼠标滚动。谢谢!

5

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

如果您使用许多缓冲区很长的屏幕,请小心使用内存。

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


0

根据所使用的终端程序,通常可以在“设置”下更改“滚动缓冲区”。我知道xterm您必须先启用滚动,然后才能将缓冲区设置为无限。

但是,最好的日志记录脚本选择是将标准输出重定向到文件:

ScriptName >> OutputFile.txt

这样,您就可以自由滚动和搜索以及保存记录(即万一您的计算机崩溃)。

编辑:这接近上面的管道解决方案,但是重定向标准输入在其他情况下也可能有用:

grep linux stackoverflow.txt > linuxquestions.txt

要么

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

请注意,screen(1)不允许终端滚动。这既是其主要功能之一,也是其主要缺点之一。
sarnold 2011年

@sarnold可以允许终端滚动,请参见superuser.com/a/1336554/116475
Franck Dernoncourt,

0

使用macOS Terminal,我无法使用侧面的滑块查看文本历史记录。

在按+ 然后按 以后,可以使用在文本内使用光标滚动。CRTLaESC

而且我必须添加它以~/.screenrc启用鼠标从窗口内部滚动(仍然不能使用滑块):

termcapinfo xterm* ti@:te@
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.