PuTTY:从命令行清除回滚

jwd*_*jwd 31 putty

当我通过 PuTTY 连接到我的服务器时,我可以使用clear命令清除可见屏幕。

但是,我仍然可以在 PuTTY 的 GUI 中向后滚动以查看旧内容。我知道 PuTTY 的Clear Scrollback功能,但这需要单击鼠标。

我想从命令行执行完全相同的“清除回滚”操作。

是否可以?

我阅读了这个网站,这似乎表明了这一点。

然而,我的实验失败了。例如:

printf '\033[3J'
Run Code Online (Sandbox Code Playgroud)

什么都不做,对我来说。

不过,我可能不理解CSI 3 J第二个链接中的含义......

Bav*_*i_H 36

CSI 3 J清除回滚缓冲区的序列已添加到 PuTTY 0.59。(在此功能的愿望请求页面上,查看“fixed-in”行,或转到 PuTTY更改页面并搜索CSI 3 J。)

正如 jwd 所提到的,您可以printf '\033[3J'在命令行上输入以将此序列发送到 PuTTY。请注意,这只会清除回滚缓冲区,不会清除屏幕。如果您有一个可以实际滚动的滚动条,那么使用此序列,您将看到滚动条被禁用,因为突然没有任何内容可供滚动。但当前显示的屏幕保持原位。

正如 jwd 所提到的,您可以使用清除屏幕和回滚缓冲区 clear && printf '\033[3J'


小智 14

如果您像我一样习惯于使用PuTTY 系统菜单中可用Ctrl+LReset terminal选项,那么您可能会发现启用Configuration -> Window -> Behavior -> "System menu appears on ALT-Space".

然后当你点击 时Alt+Space,选项"Clear scrollback"L(小写;无 Shift)触发。因此,在您的 shell 历史记录中reset + clear成为迷人的助记符组合,Ctrl+L并且Alt+Space L没有任何讨厌的鼠标或杂乱。


MrC*_*vin 9

创建一个脚本文件并将其放在包含路径的文件夹中:

$cat > /usr/local/bin/cls
#!/bin/bash
printf '\033[2J\033[H\033[3J'
Run Code Online (Sandbox Code Playgroud)

按 CTRL+d 保存并退出

更改文件权限:

chmod a+x /usr/local/bin/cls
Run Code Online (Sandbox Code Playgroud)

现在你可以使用cmd cls


小智 5

PuTTY 中有一个选项,您可以在其中取消选中默认回滚行为。

只需取消选中“将已删除的文本推入回滚”选项即可。

腻子设置图像

此后,当您发出命令时,clear它将擦除屏幕,并且不会将先前的屏幕内容放入回滚中。