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

Linux 如何在运行的屏幕会话中增加回滚缓冲区?,linux,gnu-screen,Linux,Gnu Screen,假设我有一个正在运行的会话,我正在通过putty与之交互。我意识到回滚缓冲区太小,希望在不启动新屏幕会话的情况下增加它 有什么方法可以做到这一点吗?解释说,在正在运行的会话中,您可以通过键入Ctrl+a,:,然后发出回滚命令来进入命令行模式。按Ctrl-a,然后:然后键入 scrollback 10000 例如,获取10000行缓冲区 您还可以通过添加 defscrollback 10000 到您的~/.screenrc文件 WARNING: setting this value too h

假设我有一个正在运行的会话,我正在通过putty与之交互。我意识到回滚缓冲区太小,希望在不启动新屏幕会话的情况下增加它

有什么方法可以做到这一点吗?

解释说,在正在运行的会话中,您可以通过键入Ctrl+a,:,然后发出
回滚
命令来进入命令行模式。

按Ctrl-a,然后:然后键入

scrollback 10000
例如,获取10000行缓冲区

您还可以通过添加

defscrollback 10000
到您的
~/.screenrc
文件

WARNING: setting this value too high may cause your system to experience a significant hiccup. 
The higher the value you set, the more virtual memory is allocated to the screen process when initiating the screen session. 
要滚动(如果您的终端默认不允许您滚动),请按Ctrl-a ESC键,然后滚动(下一页使用通常的Ctrl-f键,上一页使用Ctrl-a键,或者仅使用鼠标滚轮/两个手指)。要退出滚动模式,只需按ESC键


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

在“putty会话”中启动“屏幕”会话时,存在最小数量的“默认”缓冲区。我在工作中经常使用屏幕,所以我可以告诉你,在“屏幕”会话中,不会同时使用“屏幕”缓冲区和“油灰”缓冲区

通过添加
defscrollback 10000
到您的
~/.screenrc
文件是正确的解决方案

顺便说一下,我在
/screenrc
文件中使用了“defscrollback200000”

WARNING: setting this value too high may cause your system to experience a significant hiccup. 
The higher the value you set, the more virtual memory is allocated to the screen process when initiating the screen session. 

我将~/.screenrc设置为“defscrollback123456789”,当我启动一个屏幕时,我的整个系统冻结了整整10分钟,然后才恢复到能够终止屏幕进程的程度(那时它消耗了16.6GB的VIRT mem)。

如前所述,我们有两种方法

每屏幕(会话)交互设置 而且它是以交互方式完成的!立即生效

CTRL+A后跟:然后键入
回滚1000000
,然后按ENTER键

你从屏幕上分离出来,然后回来!它将永远是一样的

你打开另一个新屏幕!并且该值再次重置为默认值! 所以这不是一个全球性的设置

和永久默认设置 通过将
defScrollback1000000
添加到
.screenrc
(在家中)完成此操作

defsrollback
和not
scrollback
(def代表默认值)

您需要知道的是文件是否未创建您创建它

>cd~&&vim.screenrc
您可以向其中添加
descrollback1000000

或者在一个命令中

>回显“反滚动1000000”>.screenrc
(如果尚未创建)

生效 将默认值添加到
.screenrc
时!重新连接时已运行的屏幕将不会生效!
.screenrc
在屏幕创建时运行!这是有道理的!就像普通的控制台和shell启动一样

所有新创建的屏幕都将具有设置值

检查屏幕有效缓冲区大小 要选中,请键入CTRL+A,后跟i

结果如下

重要的是,缓冲区大小是+符号后的数字 (在图中,我将其设置为1 000 000)

还请注意,当您以交互方式更改它时!效果是即时的,并接管默认值

滚动 按住CTRL+A键,然后按ESC键(以进入复制模式)

然后使用向上、向下或PgUp PgDown导航

然后再次ESC退出该模式

(额外信息:复制点击回车开始选择!然后再次输入复制!简单又酷)

现在缓冲区更大了!


这就是重要细节的总结

在Ubuntu 12.10(我必须在工作中使用)中,defscrollback设置为1024。Ubuntu12.04上的
byobu屏幕
似乎将defscrollback设置为10000I。我想指出的是,如果你的screenrc为你打开了额外的术语,你需要在打开窗口之前放置defscrollback,否则他们只会得到默认的1024它在mac上不工作。我在新创建的~/.screenrc`中关闭了启动消息”和“defscrollback 5000”,它得到了第一行,但是第二个似乎被忽略了。您必须对当前屏幕的每个窗口分别执行。其中
是滚动的行数如果您发现达到默认的最大缓冲区无法显示更多历史记录,并且设置为
滚动
,将不再帮助您扩展和缓冲区,您需要重做最后一个命令来获取整个历史缓冲区。以防有人在启动新会话时想要增加回滚缓冲区:
screen-h
很高兴了解如何滚动的步骤!谢谢学习了一个检查屏幕缓冲区大小的新技巧:CTRL+a后跟i