PuTTY:从命令行清除回滚

PuTTY:从命令行清除回滚

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

不过,我仍然可以在 PuTTY 的 GUI 中向后滚动以查看旧内容。我知道 PuTTY 的清除回滚功能,但需要鼠标点击。

我想执行完全相同的“清除回滚”操作,但是通过命令行执行。

是否可以?

我读本网站,似乎表明如此。

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

printf '\033[3J'

对我来说没什么作用。

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

答案1

CSI 3 J清除回滚缓冲区的序列已添加到 PuTTY 0.59 中。(在愿望请求页面有关此功能,请参阅“fixed-in”行,或转到 PuTTY变化页面并搜索CSI 3 J。)

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

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

答案2

如果您像我一样习惯使用PuTTY 系统菜单中可用的选项,那么您可能会发现启用它会Ctrl+L很有帮助。 Reset terminalConfiguration -> Window -> Behavior -> "System menu appears on ALT-Space"

然后,当您点击 时Alt+Space, 的选项"Clear scrollback"由 触发L(小写;无 Shift)。因此,reset + clear变成了 和 的迷人助记组合Ctrl+L,而Alt+Space L不必在您的 shell 历史记录中输入任何烦人的鼠标或杂乱内容。

答案3

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

$cat > /usr/local/bin/cls
#!/bin/bash
printf '\033[2J\033[H\033[3J'

按 CTRL+d 保存并退出

更改文件权限:

chmod a+x /usr/local/bin/cls

现在你可以使用 cmdcls

答案4

对我来说,解决方案是传输'\033\143'字符:

printf("\033\143");

这将清除终端屏幕并将光标放回左上角。

相关内容