スポンサーリンク

TERM

名称
解説
移植性
関連ファイル
関連項目

名称

term − 端末タイプの命名規則

解説

環 境変数 TERM は通常、あなたが使用中の端末・コンソール・ディスプレイデ バイスのいずれかのタイプ名を含むはずです。この情報は、エディタやメー ラ を含む、画面指向プログラムには非常に重要です。

デ フォ ルトの TERM の値は、 /etc/inittab (Linux や System V 系の UNIX) または /etc/ttys (BSD UNIX) を使って、各回線毎に設定されます。ワーク ス テー ションやマイクロコンピュータについては、ほとんどの場合これで十分で す。

ダイヤルアップ回線を使用する場合には、回線に接続されるデバイスのタイ プ に は色々なものがありえます。古めの UNIX システムでは、ダイヤルアップ回 線に ‘dumb’ や ‘dialup’ というような正にダム端末タイプをあらかじめ設 定 します。新しめの UNIX システムでは、 DEC VT100 互換の端末やパーソナルコ ンピュータでのエミュレータの普及を反映して、 ‘vt100’ に設定するかもしれ ません。

近 年の telnet は、ローカル側の TERM 環境変数をリモート側に渡します。あ なたの端末タイプについて、リモートの terminfo エントリや termcap エント リ の互換性が無い場合は問題が発生し得ますが、このような状況は稀であり、 明示的に ‘vt100’ をエクスポートすることによりほぼ常に問題が避けられるで しょう (実際に VT100 上位互換のコンソール・端末・端末エミュレータを使用 していることを仮定しています)。

どのような場合でも、シェルプロファイルを使用することにより、システム の TERM 設 定を無視して好きなように設定することができます。 tset(1) ユー ティリティが助けとなることもあります。該当する tty デバイスとボーレート を 基にして端末タイプを推定したり要求したりするためのルールセットをこの コマンドへ与えることができます。

回線に対するシステムのデフォルトタイプを無視したくなるような、 (可視 ベ ル や反転のような) オプションを組み込んだカスタムエントリを持っている場 合には、独自の TERM の値を設定するというのもよいでしょう。

端末タイプの記述は、 /usr/share/misc/terminfo の下に、ケーパ ビ リ ティ デー タのファイルとして格納されています。システムが認識する全端末名を閲 覧するには、シェルから

toe | more

としてください。これらのケーパビリティファイルは、取り出し速度の向上 の ために (置き換えられた、古いテキストベースの termcap とは異なって) バイ ナリフォーマットとなっています。エントリを調べるには、infocmp(1) コマン ドを使う必要があります。これは次のように起動します:

infocmp entry-name

こ こで entry-name は調べようとするタイプの名称です (そしてこれはケーパ ビリティファイルの名称であり、名前の 先 頭 の 文 字 の 名 前 を 持っ た /usr/share/misc/terminfo の サブディレクトリにあります)。このコマンド は、terminfo(5) に記述されている書式で、ケーパビリティファイルをダン プ します。

terminfo(5) 記述の最初の行は、 terminfo が端末を認識するために使用する 名称を与えます。名称は ‘|’ (パイプバー) 文字で区切られ、 最 後 の 名 称 フィー ルドはコンマで終ります。最初の名称フィールドは、このタイプの第一 名称 であり、 TERM 設定時に使用するものです。最後の名称フィールドは (最 初のものと違う場合は)、端末タイプの本当の記述です (これは空白を含めるこ とができます。他の名称は単一語であることが必要です)。最初と最後のものの 間にある名称フィールドは (もしあれば)、端末の別名であり、通常は、互換性 のために保持されている歴史的な名前です。

端末の第一名称の選択には、第一名称を情報があって固有なものにするのに 役 立 つような約束事があります。以下に、端末命名のための段階的なガイドを示 し、また、端末名称をどのように解釈するのかも示します:

最初に、ルート名称を選びます。ルート名称は、 1 個の小文字に、最大 7 文 字 までの小文字または数字が続きます。区切り文字はルート名称に使うことを 避けなければなりません。なぜなら、これらはファイル名として使われたり 解 釈されるからです。また、シェルのメタ文字 (!, $, *, ? 等) がそれらに含ま れると、奇妙で分り難い挙動を引き起こすかもしれないからです。スラッ シュ (/) や、ファイルシステムが解釈する可能性のある他の文字 (\, $, [, ]) は 特に危険です (terminfo はプラットフォームに依存しません。特殊文字を含む 名 前を選ぶと、将来移植されたシステム上のユーザが苦労することになるかも しれません)。ドット (.) 文字は、ルート名称に 1 個までである限りは、比較 的 安全です。歴史的な terminfo 名称には、ドットを使用しているものがあり ます。

ほぼ常に、端末やワークステーションコンソールタイプのルート名称は、ベ ン ダ の 接頭辞 (Hewlett-Packard では hp、 Wyse では wy、AT&T 端末では att 等) が付くか、端末回線の共通名称 (DEC の VT シリーズ端末では vt、 Sun Microsystems の ワークステーションコンソールでは sun、 ADDS Regent シ リーズでは regent) であるべきです。 terminfo ツリーを列挙すれば、どの接 頭 辞 が 既に一般的に使用されているかが分かります。ルート名称の接頭辞に は、適切な場合にはモデル番号が続き、 vt100, hp2621, wy50 となります。

PC-Unix コンソールタイプのルート名称は、OS 名称、すなわち linux, bsdos, freebsd, netbsd であるべきです。決して console やその他の総称的なもので あってはなりません。なぜなら、マルチプラットフォーム環境では混乱の原 因 となるからです! モデル番号が続く場合、 OS のリリースレベルかコンソール ドライバのリリースレベルを示すべきです。

端末エミュレータ (ANSI 標準か vt100 タイプのどれにも適合していないと み な される場合には) のルート名称は、プログラム名称か、容易に認識可能な省 略名称であるべきです (すなわち versaterm, ctrm)。

ルート名称に続き、ハイフンで区切った適当な数の機能を表す接尾辞を追加 す ることが可能です。

2p

メモリを 2 ページ持ちます。同様に 4p, 8p 等。

mc

マジッククッキー。端末によっては (特に古い Wyse)、バグか故障 のために (lossage) 複数属性をサポートするときにマジッククッキーを 使っ てしまいます。 (訳注: モードを変更したときにマジッククッキー と呼ばれる 1つか複数のスペースを表示してしまう端末があったらしい) こ のような端末が基とするエントリは、たいていこの接尾辞を持ち、複 数の属性をサポートするためにマジッククッキーを使用する他のエン ト リとペアになります。

-am

自動マージンを有効にします (右マージンは回り込みます)

-m

単色モード - カラーサポートを抑制します

-na

矢印キー無し - termcap は、端末に付属する矢印キーを無視する ので、ユーザが矢印キーをローカルに使用可能となります

-nam

自動マージン無し - am ケーパビリティを抑制します

-nl

ラベル無し - ソフトラベルを抑制します

-nsl

状態行無し - 状態行を抑制します

-pp

使用できるプリンタポートがあります

-rv

反転モードの端末 (白地に黒)

-s

状態行の有効化

-vb

ビープではなく可視ベル (フラッシュ) を使用

-w

幅広; 端末は 132 桁モード

伝統的には、端末タイプが行数を指定することを目的とした変形タイプであ る 場合、行数のサフィックスを先に書きます。例えば FuBarCo モデル 2317 端末 の 30 行モードの反転ビデオ用では、最適な書式は fubar-30-rv となり ま す (‘fubar-rv-30’ ではありません)。

スタンドアロンエントリとしてではなく、 use ケーパビリティを使用して他の エントリに挿入される部品として書かれた端末タイプは、ダッシュの代わり に プラス記号が埋め込まれて区別されます。

表示制御に端末タイプを使用するコマンドは、しばしば、端末名引数を取る -T オプションを受け付けます。このようなプログラムでは、-T オプションを指定 しないときは、 TERM 環境変数を使用するべきです。

移植性

古い System V UNIX との最大の互換性を維持するために、名前と別名は最初の 14 文字で区別可能とすべきです。

関連ファイル

/usr/share/misc/terminfo/?/*

コンパイルされた端末ケーパビリティデータベース

/etc/inittab

tty 回線初期化 (AT&T 系の UNIX)

/etc/ttys

tty 回線初期化 (BSD 系の UNIX)

関連項目

curses(3X), terminfo(5), term(5)

スポンサーリンク