【问题标题】:How to clear the scrollback in the screen command?如何清除 screen 命令中的回滚?
【发布时间】:2008-09-22 06:18:09
【问题描述】:

我在 Linux 中使用screen 命令进行命令行多任务处理,并将我的回滚缓冲区长度设置为一个非常大的值。当我不想让某个选项卡坐在那里时,是否有一个组合键可以清除某个选项卡的缓冲区?

【问题讨论】:

标签: linux command-line gnu-screen


【解决方案1】:

This thread有以下建议:

在要删除其回滚的窗口中,将回滚设置为零,然后 将其恢复为正常值(在您的 案例,15000)。

如果你愿意,你可以把它绑定到一个 关键:

绑定/评估“回滚0”“回滚15000”

您也可以在输入C-a : 后从会话中发出scrollback 0 命令。 HTH。

【讨论】:

  • 太好了,我不知道你可以随时更改它!
  • Google 不谈,Stack Overflow 的目的是成为规范答案的地方,所以我很乐意在我知道可以找到它们的地方复制东西。
  • 这就是为什么我也选择了这个解决方案。我们可以争论谷歌,但这些简单的关键词对我来说是第一个打击。实际上,我在邮件列表上看到了该邮件发布时,这就是我记得的原因。
  • 一个更笨但更容易记住/输入替代yes | head -100000,或者只是yes | cat -n,或者seq 1 999999,当你看到一个大于你的回滚长度的数字时,按Ctrl-C。但是,仅在本地终端上,远程连接可能太慢。假设您要清除敏感信息。从向后滚动 - 如果您只想要一个空的向后滚动,答案就是要走的路。
【解决方案2】:
  • C-a C 会清屏,包括提示符
  • clear(命令,不是组合键)会清屏,留下提示

ETA:误读了原始问题;这些只会清除可见文本,但不会清除缓冲区!

【讨论】:

  • 这些都没有清除回滚缓冲区;第二个创建一个新的屏幕窗口,前一个仍然存在(按C-a a 回到它)。
  • 我误读了最初的问题,并在第二个问题上犯了一个错误——以为我可以在传播错误信息之前把它弄清楚,但我低估了人们在这里的速度:-)(FTR,我的原评论将C-a c 作为另一种解决方案)
  • 我注意到C-a c(Ctrl-C + 小写 c)和 C-a C(Ctrl-C + 大写 C)之间存在差异。小写的一个创建一个新的屏幕窗口和一个新的shell,第二个实际上清除了当前窗口。
【解决方案3】:

我还添加了“清除”命令来清理当前屏幕。注:您必须按 Enter 才能重新获得提示。

bind '/' eval "clear" "scrollback 0" "scrollback 15000"

还将它添加到您的“.screenrc”以使其永久化。

注意我在斜杠周围添加了单引号,以确保它不会干扰我的“.screenrc”。可能没有必要。

【讨论】:

  • 这不是 OP 要求的。这不是答案 - 与其他答案重复的位。
【解决方案4】:

别名 cls='printf "\e[3J\033c"'

清除屏幕和回滚缓冲区。

【讨论】:

    【解决方案5】:

    Command-K 似乎是 Mac 的最佳解决方案。 更多详情和解释请参考this page

    【讨论】:

    • 这是指MacOS X“终端”程序中的一个命令,与GNU屏幕无关。
    【解决方案6】:
    ^a : clear
    

    在 Ubuntu 上为我工作。

    【讨论】:

      【解决方案7】:

      来自手册页:

      C-a C       (clear)       Clear the screen.
      

      【讨论】:

      • 简单的误解,但请阅读问题以了解详细信息
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2021-11-09
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多