TERM
、慣例により端末の説明を指します。当初、これはtermcapテキストファイルのセクションに名前を付けました(1970年代後半に開始)。1980年代半ば、terminfoはコンパイルされた(バイナリ)ファイルとして導入され、端末の説明を取得する際の時間を節約しました。どちらもすべてのUnixライクなプラットフォームで使用できますが、terminfoを使用したエミュレーションを除いて、termcapは現在ほとんど使用されていません。
これらのデータ形式の両方で、アプリケーションは通常、再利用可能なプログラミングライブラリを使用して、ターミナルデータベースからデータを抽出します。terminfoプログラミングライブラリは通常、高レベルのcursesライブラリの一部ですが、個別のライブラリファイルとして(たとえば、オプションでncursesのように)提供される場合があります。terminfoライブラリが個別に提供されているかどうかにかかわらず、これらの場合、cursesライブラリの一部と見なされます。(スラングなど、他にもいくつかの高レベルのライブラリがあります)。
各ターミナルのターミナルデータベースエントリには、機能と呼ばれるプロパティが含まれています。それらはcursesライブラリー(または直接termcap / terminfoを使用するアプリケーション)に、画面をクリアするなどの便利な操作を行う方法を伝えます。ほとんどの端末ではエスケープシーケンスです。一部の端末では、この目的でエスケープシーケンスをサポートしていない場合があります。画面をクリアするためにcursesライブラリによって組み合わせることができる他の機能があります(各行をクリアするなど)。すべての機能がエスケープシーケンスであるとは限りません。ありブールと番号機能が伝えるために、例えば、同様かどうかの機能がサポートされ、そしてどのように大規模なものは、(画面サイズなど)です。
termcap / terminfoを使用する各アプリケーションは、対応するライブラリを使用して端末の説明を取得し、特定の機能にパラメーターを代入するなどの操作を実行します。たとえば、ほとんどの端末は、現在の位置から指定された数の列または行だけカーソルを移動する機能を提供します。tparm
(またはtiparm
)関数は、実際のエスケープシーケンスを取得するために能力に数値を代入します。
cursesライブラリには、ターミナルデータベースを維持するコマンドラインアプリケーション(tic、infocmp)と、ターミナルデータベースにクエリを実行するか、ターミナル機能で低レベルの操作を実行するためのシェルスクリプトで使用されるコマンドラインアプリケーション(tput、tset / reset)があります。
端末データベースを使用せずに使用する従来とは異なるアプリケーションがありTERM
ます。これらのほとんどは単にその動作(GNU grep、groff、links / links2 / elinksテキストWebブラウザーなど)をハードコーディングしますが、いくつかは独自のターミナルデータベース(GNU lsなど)に相当するものもありますが、異なるルールと動作。
質問に戻る:
では、この変数はどこで解釈され、たとえば、正しい値を設定した場合にCTRL + lを使用して端末画面をリセットできるようにしますか?
アプリケーションと基になるライブラリがこの値を解釈します。の場合controlL、それはreadlineライブラリ(termcapプログラミングインターフェースを使用)のbashで実行できます。
サポートされている色(xtermとxterm-256colorなど)を確認するのは誰ですか?
端末データベースは、前景色と背景色を設定したり、色をリセットしたりする機能とともに、色の数を機能として格納します。一部のアプリケーションは、これらの機能を他の情報と組み合わせます(xterm
「本当に」である開発者のアサーションなどxterm-256color
)。
シェル?
ほとんどのシェルは、termcapプログラミングインターフェイスを使用して端末情報を取得します。ただし、これらは独自の動作をするアプリケーションです(必ずしもcursesと同じではありません)。
アプリケーションまたはncursesのようなライブラリ?
(上記参照:シェルは特定のタイプのアプリケーションです)
そして、可能な値/ターミナルタイプはどこに定義されていますか?
通常、これはcursesまたはslangライブラリを使用するアプリケーションによって共有される端末データベースにあります。一部のアプリケーションはハードコーディングされているか、プライベートデータベースを使用しています。
参考文献: