【发布时间】:2012-02-04 07:56:12
【问题描述】:
假设我有一个当前正在运行的 screen 会话,我正在通过 putty 与之交互。我意识到回滚缓冲区太小,希望在不开始新的屏幕会话的情况下增加它。
有没有办法做到这一点?
【问题讨论】:
-
以防万一有人想要增加回滚缓冲区当开始一个新会话:
screen -h <numlines>
标签: linux gnu-screen
假设我有一个当前正在运行的 screen 会话,我正在通过 putty 与之交互。我意识到回滚缓冲区太小,希望在不开始新的屏幕会话的情况下增加它。
有没有办法做到这一点?
【问题讨论】:
screen -h <numlines>
标签: linux gnu-screen
man page 解释说,您可以在运行的会话中通过键入 Ctrl+A、: 进入命令行模式,然后发出scrollback <num> 命令。
【讨论】:
<num>是回滚的行数
scrollback <num>设置,它不再帮助你扩展缓冲区,你需要重做最后一个命令来获取整个历史缓冲区。
按 Ctrl-a 然后按 : 然后键入
scrollback 10000
以获取 10000 行缓冲区为例。
也可以通过添加设置默认的回滚行数
defscrollback 10000
到您的~/.screenrc 文件。
要滚动(如果您的终端默认不允许您滚动),请按 Ctrl-a ESC 然后滚动(使用通常的 Ctrl- f 用于下一页或 Ctrl-a 用于上一页,或仅使用鼠标滚轮/两指)。要退出滚动模式,只需按 ESC。
另一个提示:Ctrl-a i 显示您当前的缓冲区设置。
【讨论】:
byobu-screen on Ubuntu 12.04 似乎将 defscrollback 设置为 10000
startup_message off' and 'defscrollback 5000' into my newly created ~/.screenrc` 放在了第一行,但第二行似乎被忽略了。
当您在“putty 会话”中启动“屏幕”会话时,会存在最少量的“默认”缓冲区。我在工作中经常使用屏幕,所以我可以告诉你,在你的“屏幕”会话中你不会有“屏幕”缓冲区和“腻子”缓冲区的组合。
通过添加defscrollback 10000设置默认的回滚行数
到您的 ~/.screenrc 文件是正确的解决方案。
顺便说一句,我在./screenrc 文件中使用了“defscrollback 200000”。
【讨论】:
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 设置为“defscrollback 123456789”,当我启动屏幕时,我的整个系统冻结了整整 10 分钟,然后才回到我能够终止屏幕进程的点(这是到那时消耗 16.6GB 的 VIRT 内存)。
【讨论】:
正如已经提到的,我们有两种方法!
而且它是交互式完成的!并立即生效!
CTRL + A 后跟 : 然后我们输入 scrollback 1000000 并点击 ENTER
你离开屏幕然后回来!永远都是一样的。
您打开另一个新屏幕!并且该值再次重置为默认值! 所以这不是全局设置!
这是通过将defscrollback 1000000 添加到.screenrc 来完成的(在家里)
defscrollback 而不是scrollback(def 代表默认)
您需要知道的是文件是否未创建! 你创造它!
> cd ~ && vim .screenrc
然后你将defscrollback 1000000 添加到它!
或者在一个命令中
> echo "defscrollback 1000000" >> .screenrc
(如果尚未创建)
当您将默认值添加到 .screenrc!重新附加时已经运行的屏幕将不会生效! .screenrc 在屏幕创建时运行!这是有道理的!就像普通的控制台和 shell 启动一样!
并且所有新创建的画面都会有设定值!
检查类型 CTRL + A 后跟 i
结果将是
重要的是,缓冲区大小是 + 符号后的数字
(在插图中我将其设置为 1 000 000)
请注意,当您以交互方式更改它时!效果立竿见影,取默认值!
CTRL+ A 后跟 ESC(进入复制模式)。
然后使用 Up、Down 或 PgUp PgDown
导航然后再次 ESC 退出该模式。
(额外信息:复制点击ENTER开始选择!然后再次ENTER复制!简单而酷)
现在缓冲区更大了!
这就是重要细节的总结!
【讨论】: