$ TERMはどのように、どこで解釈されますか?

$ TERMはどのように、どこで解釈されますか?

少し知りたいです。ターミナルマジック内部作業。

Dockerコンテナを使用している場合、$TERM環境変数は設定されません。これにより、vimやtmuxなどの奇妙に見えるコンソールアプリケーションが作成され、CTRL + l(画面の消去)も無視されました。

私はほぼすべて確信しています特徴一部の画面更新、色、画面リセットなどのコマンドは、すべてエスケープコードを使用して実装されています。

では、この変数はどこで解釈され、正しい値を設定したらCtrl + lを使用して端末画面をリセットできますか? WHO調査するたとえば、どの色がサポートされていますか(xterm対xterm-256color)?シェル? ncursesのようなアプリケーションやライブラリ?可能な値/端末タイプはどこで定義されていますか?

ベストアンサー1

$TERMterminfoシステムによって読み取られ解釈されます。 terminfoはまた、ほとんどのシステムで見つけることができる端末記述データベースも参照します/usr/share/terminfo$TERMこのデータベースのエントリのいずれかと一致する必要があります。機能が少ないtermcapという古いライブラリもありますが、terminfoはそれを置き換えました。最新のシステムでは、terminfoはncursesライブラリの一部です。

アプリケーションは通常、ライブラリ機能を直接使用して端末機能を取得します。tigetstr()または、より高いレベルの Curses インターフェイスを使用して画面レイアウトを管理します。どちらも$TERMterminfoデータベースを参照します。

おすすめ記事