我不认为这是在主线,但linux-next有一个补丁,支持一个新的控制台转义序列,清除屏幕和回滚缓冲区:CSI 3 J
对于无需升级内核即可运行的东西,您可以使用:
chvt 42; chvt <current tty no>; echo -en "\e[1;1H\e[2J"
Run Code Online (Sandbox Code Playgroud)
或者:
echo -e "\e[12;42]"; sleep .01; echo -en "\e[12;<current tty no>]\e[1;1H\e[2J"
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式获取当前的tty号码:
$( ls -l /proc/self/fd | sed -ne 's/.*tty//p' )
Run Code Online (Sandbox Code Playgroud)