6

LinuxコンソールVTのスクロールバックバッファをプログラムでクリアしたいのですが。つまり、現在表示されている画面だけでなく、スクロールバックバッファ全体もクリアします。つまり、Alt-PgUpを使用しても画面がクリアになった後でも表示されるものはすべて、削除する必要があります。誰かが素敵なコードでそれを達成する方法を思いついたのですか?

4

3 に答える 3

6

これはまだメインラインにはないと思いますが、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' )
于 2011-05-18T00:02:40.877 に答える
1

他のツール(たとえばsshなど)では、「スクロールバックバッファー」の実装が異なることに注意してください。マシンのコードでパテバッファをクリーンアップできるかどうかは非常に疑わしいです。https://superuser.com/questions/122911/bash-reset-and-clear-commandsも参照してください

于 2011-05-17T20:42:27.230 に答える
0

これにより画面はクリアされますが、スクロールバックはクリアされません。

echo -e '\0033\0143'#使用しているターミナルエミュレータに依存し、gnomeターミナルでテスト済み

https://superuser.com/questions/122911/bash-reset-and-clear-commandsから

于 2011-05-17T20:45:57.200 に答える