消去コマンドはどのように機能しますか?

消去コマンドはどのように機能しますか?

私は最近、シェルがどのように動作するかをより理解し、clearコマンドがどのように機能するかを調べようとしました。実行可能ファイルは にあり/usr/bin/clear、空行(ターミナルの高さと同じ)を印刷してカーソルを端末の左上に配置するようです。

端末のサイズに関係なく、コマンドの出力は常に同じです。

$ clear | hexdump -C
00000000  1b 5b 48 1b 5b 32 4a                              |.[H.[2J|
00000007

そしてまったく同じ効果でechoを使って複製することができます。

$ /bin/echo -e "\x1b\x5b\x48\x1b\x5b\x32\x4a\c"

このコマンドの出力がどのようにコンソールクリアに変換されるのか本当に疑問に思います。

ベストアンサー1

このコマンドの出力はclearコンソールエスケープコードです。必要な正確なコードは、使用している特定の端末によって異なりますが、ほとんどはANSI制御シーケンスを使用します。以下は、さまざまなコードを説明するための良いリンクです。http://www.termsys.demon.co.uk/vtansi.htm。関連スニペットは次のとおりです。

Cursor Home         <ESC>[{ROW};{COLUMN}H

Sets the cursor position where subsequent text will begin. If no row/column
parameters are provided (ie. <ESC>[H), the cursor will move to the home position,
at the upper left of the screen.

そして:

Erase Screen        <ESC>[2J

Erases the screen with the background colour and moves the cursor to home.

<ESC>16進数1Bまたは8進数はどこにありますか033?キャラクターを見るもう一つの方法は次のとおりです。

clear | sed -n l

おすすめ記事