如何在正在运行的屏幕会话中增加回滚缓冲区?

时间:2012-01-06 15:40:11

标签: linux gnu-screen

假设我有一个当前正在运行的screen会话,我正在通过putty进行交互。我已经意识到回滚缓冲区太小了,并希望在没有开始新的屏幕会话的情况下增加

有办法做到这一点吗?

5 个答案:

答案 0 :(得分:324)

Ctrl-a 然后按然后输入

scrollback 10000
例如,

获得10000行缓冲区。

您还可以通过添加

来设置默认的回滚行数
defscrollback 10000

到您的~/.screenrc文件。

要滚动(如果您的终端默认不允许),请按 Ctrl-a ESC ,然后滚动(使用通常的 Ctrl- f 用于下一页,或 Ctrl-a 用于上一页,或者只用鼠标滚轮/双指)。要退出滚动模式,只需按 ESC

另一个提示: Ctrl-a i 显示您当前的缓冲区设置。

答案 1 :(得分:164)

man page说明您可以通过键入 Ctrl + A 在正在运行的会话中进入命令行模式,然后发出scrollback <num>命令。

答案 2 :(得分:4)

警告:将此值设置得太高可能会导致系统遭受严重的打h。设置的值越高,启动屏幕会话时分配给屏幕进程的虚拟内存越多。我将〜/ .screenrc设置为“ defscrollback 123456789”,并且在启动屏幕时,整个系统冻结了10分钟,然后恢复到可以终止屏幕进程的位置(这消耗了16.6GB的VIRT mem)。

答案 3 :(得分:3)

在“putty会话”中启动“屏幕”会话时,存在最少量的“默认”缓冲区。我在工作中使用了很多屏幕,所以我可以告诉你,你不会有'屏幕'缓冲区和组合。 'putty'缓冲区在你的'屏幕'会话中。

通过添加defscrollback 10000设置默认的回滚行数 到~/.screenrc文件是正确的解决方案。

顺便说一下,我在./screenrc文件中使用“defscrollback 200000”。

答案 4 :(得分:-1)

对于后人来说,这个答案是不正确的,如Steven Lu所说。但是,请保留原文。

原始答案:

通过网络搜索到达的人(几年后)......

使用屏幕时,您的回滚缓冲区是screen回滚缓冲区的组合,如前两个答案所述,以及您的putty回滚缓冲区。

请确保您正在增加putty回滚缓冲区以及屏幕回滚缓冲区,否则您的putty窗口本身不会让您向后滚动以查看screen的回滚历史记录(通过使用ctrl+a->ctrl+u在屏幕内滚动来克服)

您可以在&#34; Window&#34;下更改您的putty回滚限制。设置中的类别。退出并重新打开一个putty会话到你的屏幕不会关闭你的屏幕(假设你只是关闭了putty窗口而不是键入exit),正如OP所要求的那样。

希望有助于确定为什么增加屏幕的回滚缓冲区并不能解决某人的问题。