清除Linux虚拟控制台终端的回滚缓冲区

我想以编程方式清除Linux控制台VT上的回滚缓冲区.即,不仅要清除当前的可见屏幕,还要清除整个回滚缓冲区.即使用Alt-PgUp仍然可以看到清晰屏幕后的所有内容也应该消失.有人知道如何用漂亮的代码实现这一目标吗?

最佳答案:

我不认为这是在主线,但linux-next有一个补丁,以支持一个新的控制台转义序列,清除屏幕和回滚缓冲区:CSI 3 J

对于无需升级内核即可运行的东西,您可以使用:

chvt 42; chvt <current tty no>; echo -en "\e[1;1H\e[2J"

或者:

echo -e "\e[12;42]"; sleep .01; echo -en "\e[12;<current tty no>]\e[1;1H\e[2J"

您可以通过以下方式获取当前的tty号码:

$( ls -l /proc/self/fd | sed -ne 's/.*tty//p' )
上一篇:php – 清理资源


下一篇:调用paint方法时Java清除屏幕 – 如何避免?