Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

clear scrollback buffer of Linux Virtual Console Terminals

Tags:

linux

console

tty

I'd like to clear the scrollback buffer on Linux console VTs programmatically. i.e. not just clear the current visible screen, but the entire scrollback buffer, too. I.e. everything that after a clear screen would still be visible with Alt-PgUp should be gone too. Anybody got an idea how to achieve that in nice code?

like image 203
user175104 Avatar asked May 17 '11 20:05

user175104


1 Answers

I don't think this is in mainline yet, but linux-next has a patch to support a new console escape sequence that clears the screen and the scrollback buffer: CSI 3 J

For something that works without having to upgrade your kernel, you can use:

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

Alternatively:

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

You can get the current tty number with:

$( ls -l /proc/self/fd | sed -ne 's/.*tty//p' )
like image 152
ninjalj Avatar answered Sep 28 '22 03:09

ninjalj