очистить буфер прокрутки в терминалах виртуальной консоли Linux - PullRequest
5 голосов
/ 18 мая 2011

Я бы хотел очистить буфер прокрутки на консольных VT Linux.т.е. не только очистить текущий видимый экран, но и весь буфер прокрутки.Т.е. все, что после четкого экрана все еще было видно с помощью Alt-PgUp, тоже должно быть пропущено.У кого-нибудь есть идея, как добиться этого в хорошем коде?

Ответы [ 3 ]

6 голосов
/ 18 мая 2011

Я не думаю, что это пока что в основной строке, но 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' )
1 голос
/ 18 мая 2011

Имейте в виду, что другие инструменты (например, ssh) будут иметь разные реализации "буфера обратной прокрутки" Я очень сомневаюсь, что вы можете очистить буфер замазки с помощью кода на вашей машине. Также см. https://superuser.com/questions/122911/bash-reset-and-clear-commands

0 голосов
/ 18 мая 2011

Это очищает экран, но не прокрутку.

echo -e '\0033\0143' # зависит от используемого вами эмулятора терминала, протестировано на терминале gnome

из https://superuser.com/questions/122911/bash-reset-and-clear-commands

...