これはなに
シェルのclear
コマンドについてのメモ。
clear
コマンドとは
clear
コマンドは、ターミナルの画面をクリアするコマンドである。
clear
コマンドを実行すると、ターミナルの画面がクリアされ、新しい画面が表示される。
Ctrl + L
でも同様の効果がある。
clear
コマンドの実装
clear
コマンドは、ANSIエスケープシーケンスを利用して、ターミナルの画面をクリアしている。
たとえば、clear
コマンドを実行した結果をファイルにリダイレクトすると、ターミナルはクリアされない。
clear > clear.txt
代わりに、以下のような文字列がclear.txt
へ書き込まれる。
[H [2J [3J
この文字列は、ターミナルの画面をクリアするための特殊な文字列(ANSIエスケープシーケンス)である。ターミナルは、この文字列を「画面をクリアする指示」として解釈し、画面をクリアする。
上記で四角になってしまっている部分は、hexdump
コマンド1で確認できる。
$ clear | hexdump -c
0000000 033 [ H 033 [ 2 J 033 [ 3 J
000000b
つまり、clear
コマンドは、ターミナルの画面をクリアするための特殊な文字列"\033[H\033[2J\033[3J"
をターミナルへ出力している。
hexdump
は、バイナリファイルを16進数で表示するコマンドである。-c
オプションを指定することで、ASCII文字として表示できる。 ↩︎