スポンサーリンク

GETTYTAB(5) FreeBSD ファイルフォーマットマニュアル GETTYTAB(5)

名称

gettytab − 端末設定データベース

書式

gettytab

解説

gettytab ファイルは termcap(5) データベースを単純化したバージョンで、端末 回線を記述するのに用いられます。冒頭に起動される端末ログインプロセス getty(8) は起動されるたびに gettytab ファイルにアクセスするので、比較的簡 単に端末の特性を再設定することができます。データベースの各エントリは、そ れぞれ1個の端末クラスを記述するのに用いられます。

デフォルトの端末クラス default が存在し、他の全てのクラスに対するグローバ ルなデフォルト値を記述するのに用いられます。 (言い替えれば、まず、 default エントリを読み込み、その後で、必要なクラスのエントリを読み込み、 デフォルトの設定をクラス固有の設定で上書きします。)

ケーパビリティ

ファイルレイアウトの解説については、 termcap(5) を参照して下さい。以下の デフォルト欄は、使用する端末用のテーブルに値がなく、特別の default テーブ ルにも値がない場合に用いられる値です。

名称 型 デフォルト 解説
ac 文字列 unused モデム応答のための想定文字列-応答 チャットスクリプト
al 文字列 unused プロンプトを出さずに自動ログインする ユーザ
ap bool 偽 端末はどのパリティでも受け付ける
bk 文字列 0377 代用の行末文字 (入力ブレーク)
c0 数値 unused メッセージ書き出しのための tty 制御フ ラグ群
c1 数値 unused ログイン名読み込みのための tty 制御フ ラグ群
c2 数値 unused 端末を去るときの制御フラグ群
ce bool 偽 crt 文字消去アルゴリズムを用いる
ck bool 偽 crt 行削除アルゴリズムを用いる
cl 文字列 NULL 画面削除シーケンス
co bool 偽 コンソール - ‘\n’ をログインプロンプ トの後に追加する
ct 数値 10 acic のスクリプトのためのチャッ トタイムアウト
dc 数値 0 チャットデバッグ用ビットマスク
de 数値 0 この秒数だけ待って、最初のプロンプト を書く前に入力をフラッシュする
df 文字列 %+ バナーメッセージ中の %d で使用する strftime(3) 書式
ds 文字列 ‘

                          ^Y’            遅延されたサスペンド文字

dx bool 偽 DECCTLQ をセットする
ec bool 偽 echo を残す OFF
ep bool 偽 端末は偶数パリティを用いる
er 文字列 ‘
^?’ 消去文字
et 文字列 ‘
^D’ テキストの終り (EOF) 文字
ev 文字列 NULL 環境変数の初期設定
f0 数値 unused メッセージ書き出しのための tty モード フラグ群
f1 数値 unused ログイン名読み込みのための tty モード フラグ群
f2 数値 unused 端末を去るときの tty モードフラグ群
fl 文字列 ‘
^O’ 出力フラッシュ文字
hc bool 偽 最後のクローズのときに回線をハング アップ させない
he 文字列 NULL ホスト名編集文字列
hn 文字列 hostname ホスト名
ht bool 偽 端末に本物のタブが実装されている
hw bool 偽 cts/rts によるハードウェアフロー制御 を行う
i0 数値 unused メッセージ書き出しのための tty 入力フ ラグ群
i1 数値 unused ログイン名読み込みのための tty 入力フ ラグ群
i2 数値 unused 端末を去るときの tty 入力フラグ群
ic 文字列 unused モデム初期化のための、想定入力-出力 チャットスクリプト
if 文字列 unused プロンプトの前に、/etc/issue のように 名前で指定したファイルを表示する
ig bool 偽 ログイン名に含まれるガベージ文字を無 視する
im 文字列 NULL 冒頭の (バナー) メッセージ
in 文字列 ‘
^C’ 割り込み文字
is 数値 unused 入力スピード
kl 文字列 ‘
^U’ 行消去文字
l0 数値 unused メッセージ書き出しのための tty ローカ ルフラグ群
l1 数値 unused ログイン名読み込みのための tty ローカ ルフラグ群
l2 数値 unused 端末を去るときの tty ローカルフラグ群
lm 文字列 login: ログインプロンプト
ln 文字列 ‘
^V’ 次の文字がリテラル値であることを示す 文字
lo 文字列 /usr/bin/login 名前を得たときに実行するプログラム
mb bool 偽 キャリアに基づいたフロー制御を行う
nc bool 偽 端末はキャリアをサポートしない (clocal をセット)
nl bool 偽 端末には改行文字がある (あるいは、あ るはずである)
np bool 偽 端末はパリティを用いない (つまり 8 ビット文字)
nx 文字列 default (速度の自動選択のための) 次のテーブル
o0 数値 unused メッセージ書き出しのための tty 出力フ ラグ群
o1 数値 unused ログイン名読み込みのための tty 出力フ ラグ群
o2 数値 unused 端末を去るときの tty 出力フラグ群
op bool 偽 端末は奇数パリティを用いる
os 数値 unused 出力スピード
pc 文字列 ‘
\0’ パッド文字
pe bool 偽 プリンタの (ハードコピー) 文字消去ア ルゴリズムを用いる
pf 数値 0 最初のプロンプトと引き続くフラッシュ の間の遅延 (秒数)
pl bool 偽 PPP シーケンスを検出せず、 pp で示さ れる PPP ログインプログラムを自動的に 開始する
pp 文字列 unused PPP 認証プログラム
ps bool 偽 回線は MICOM ポートセレクタに接続され ている
qu 文字列 ‘
^\’ 終了文字
rp 文字列 ‘
^R’ 行の再タイプ文字
rt 数値 unused ac 使用時の ring タイムアウト
rw bool 偽 入力に raw モードを 用いずに、cbreak を用いる
sp 数値 unused (入力および出力の) 回線速度
su 文字列 ‘
^Z’ サスペンド文字
tc 文字列 none テーブルの続き
to 数値 0 タイムアウト (秒数)
tt 文字列 NULL 端末の型 (環境変数用)
ub bool 偽 (プロンプトなどの) バッファリングしな い出力を行う
we 文字列 ‘
^W’ 単語消去文字
xc bool 偽 制御文字を ‘^X’ の形で出力 しない
xf 文字列 ‘
^S’ XOFF (出力ストップ) 文字
xn 文字列 ‘
^Q’ XON (出力開始) 文字
Lo 文字列 C バナーメッセージでの %d のために用い るロケール

以下のケーパビリティはもはや getty(8) によってサポートされていません。

bd 数値 0 バックスペースでの遅延
cb bool 偽 crt バックスペースモードを用いる
cd 数値 0 復帰 (carriage return) での遅延
fd 数値 0 フォームフィード (垂直移動) での遅延
lc bool 偽 端末では小文字が使える
nd 数値 0 改行 (ラインフィード) での遅延
uc bool 偽 端末では大文字しか使えない

回線速度が指定されていない場合、getty が起動された時に設定されている速度 は変更されません。入力速度または出力速度を指定したときは、指定した方向の 回線速度のみが上書き更新されます。

メッセージの出力時、ログイン名の入力時、 getty が処理を済ませて端末を手放 す時に用いる端末モードの値はブール型フラグの指定に基づいて決定されます。 もしこの決定が適切でないことが分かった場合、これら3つのどれか (あるいはす べて) の値は、数値指定 c0, c1, c2, i0, i1, i2, l0, l1, l2, o0, o1, o2 の いずれかで上書きされます。これらの数値指定では、フラグの値 (通常は、0 を 頭につけた 8 進数) そのものを指定することができます。これらのフラグは termio の c_cflag, c_iflag, c_lflag, および c_oflag の各フィールドにそれ ぞれ対応します。それらのセットの各々は、完全に指定しなければ有効になりま せん。 f0, f1, および f2 は TTY サブシステムの旧版の実装に対する後方互換 性を意図した物です。これらのフラグには、sgttyb の sg_flags フィールドの (32 ビット) 値の下位 16 ビットが含まれます。また、上位 16 ビットはローカ ルモードを収めるワードを表します。

もし getty(8) がヌル文字 (回線ブレークを示すものと見なされます) を受け 取った場合、プログラムは nx エントリに示されたテーブルを用いて再始動しま す。もしこのエントリがなければ、今まで用いていたテーブルを再び用います。

遅延はミリ秒単位で指定し、tty ドライバが使用可能な遅延のうち最も近いもの が用いられます。より大きな確実性が必要な場合は、0 から 1, 2, 3 までの値の 遅延はドライバの特別な遅延アルゴリズムから選択するものと解釈されます。

cl 画面消去文字列には、その前に必要な遅延時間をミリ秒単位の (10 進数) 数 値で (termcap 風に) 書くことができます。この遅延はパディング文字 pc を繰 り返して用いることによりシミュレートされます。

初期化メッセージ im ログインメッセージ lm および初期化ファイル if は、以 下の文字の並びをどれでも含めることができます。これらは getty(8) が実行さ れている環境から得た情報に展開されます。

             %d

現在の日付と時間を、 Lodf に従って整形したも の。

%h
マシンのホスト名。通常は gethostname(3) によってシ ステムから得ますが、テーブルの hn エントリで指定し て、この値を書き換えることができます。どちらの場合 でも、これは he 文字列を用いて編集することができま す。 he 文字列の中にある 1 個の ’@’ は 実際のホス ト名から最終的なホスト名に 1文字のコピーを引き起こ します。 he 文字列中の ’#’ は実際のホスト名の次の1 文字をスキップさせます。 ’@’ でも ’#’ でもない各文 字は最終的なホスト名にコピーされます。余分な ’@’ と ’#’ は無視されます。

%t
tty の名前。

%m, %r, %s, %v
それぞれ、 uname(3) が返すマシンの型、オペレーティ ングシステムのリリース、オペレーティングシステムの 名前、そしてカーネルのバージョンです。

%%
1 個の ‘‘%’’ 文字。

getty がログインプロセス (通常は ‘‘/usr/bin/login’’ ですが、 lo 文字列で 指定されていればそれ)を実行するとき、このプロセスの環境には tt 文字列 (が 存在すれば) で指定した端末の型が設定されます。 ev 文字列は、プロセスの環 境にデータを追加するために使用することができます。これはコンマで区切られ た文字列からなり、それぞれは、 name=value という形式になっていると仮定さ れます。

もしタイムアウトとして、 to に 0 以外の値を指定した場合、指定された秒数経 過した後に終了します。すなわち、getty はログイン名を受け取って制御を login(1) に渡すか、または alarm シグナルを受け取って終了します。これはダ イヤルイン回線をハングアップするために有用です。

getty(8) からの出力は、 opnp が指定された場合を除いて、偶数パリティを 用います。 op 文字列と ap を一緒に指定すると、入力としてはパリティが何で あっても許可し、出力としては奇数パリティを生成します。注意: これは、getty が実行されているときのみ適用され、端末ドライバの制限によりここまで完全な 実装ができないかもしれません。 getty(8) ユーティリティは RAW モードのとき は入力文字のパリティ検査を行いません。

もし pp 文字列が指定されていて、PPP リンク確立シーケンスが認識されると、 getty は pp オプションで指定されているプログラムを起動します。これは PPP 着信を取り扱うために用いることができます。 pl も真の場合、 getty(8) は ユーザ名プロンプトとPPP 検出フェーズをスキップし、 pp で指定されたプログ ラムを即時に起動します。

getty(8) は以下の2つのケーパビリティを用いて利用できるチャットスクリプト 機能を提供します。これによって、基本的なインテリジェントモデムをある程度 取り扱えるようにします。

ic
モデムを初期化するチャットスクリプト。
ac
コールに答えるチャットスクリプト。

チャットスクリプトは、受信を想定した文字列/送信する文字列の対の連なりから なります。チャット文字列が始まるとき、 getty(8) は最初の文字列を待ち、そ の文字列を見つけたら 2 番目の文字列を送ります。以後も同様に処理を進めま す。指定された文字列は 1 個以上のタブあるいはスペースで区切られています。 文字列には標準 ASCII 文字と、特別な「エスケープ」を含めることができます。 エスケープは、バックスラッシュに続き 1 文字以上の文字が続いたもので、それ は以下のように解釈されます。

\a
ベル文字。
\b
バックスペース。
\n
改行。
\e
エスケープ。
\f
フォームフィード。
\p
0.5秒の一時停止。
\r
復帰文字。
\S, \s
空白文字。
\t
タブ。
\xNN
16 進数のバイト値。
\0NNN
8 進数のバイト値。

‘\p’ 文字列は送信文字列でのみ有効で、前の文字と次の文字を送る間に 0.5 秒 の一時停止を発生することに注意のこと。 16 進数値は最大で 16 進数 2 桁で、 8 進数値は最大で 8 進数 3 桁です。

ic チャットシーケンスはモデムやそれに類似したデバイスを初期化するのに用い られます。ヘイズ互換のコマンドセットを持つモデム用の初期化チャットスクリ プトの典型例は、以下のようなものでしょう。

:ic="" ATE0Q0V1\r OK\r ATS0=0\r OK\r:

このスクリプトは何も待たず (つまり常に成功し)、モデムが正しいモード (コマ ンドエコーを抑制し、応答を返す際に冗長モードで返す) に確実になるような シーケンスを送り、それから自動応答を切ります。終了する前に、"OK" という反 応を待ちます。この初期化シーケンスは、モデムの応答をチェックしてモデムが 正しく機能しているかを確かめるために用いられます。初期化スクリプトが完了 するのに失敗した場合、 getty(8) はこれを致命的な状態であると見なし、その 結果として、 syslogd(8) を用いてログを残してから終了します。

同様に、アンサーチャットスクリプトは (通常) "RING" に対して手動で電話に応 答するために用いることができます。アンサースクリプトを指定して起動した場 合、 getty(8) ユーティリティは、ポートをノンブロッキングモードでオープン し、それ以前の余分な入力をすべて消去し、ポートへのデータを待ちます。何ら かのデータが取得可能になるとすぐ、アンサーチャットスクリプトが開始し、文 字列がスキャンされ、アンサーチャットスクリプトに従って応答します。ヘイズ 互換のモデムでは、スクリプトは通常以下のような感じのものになるでしょう。

:ac=RING\r ATA\r CONNECT:

これは、"ATA" コマンドによってモデムに応答させ、続いて入力をスキャンして 文字列 "CONNECT" を探します。もし ct タイムアウトが生じる前にこの文字列を 受け取った場合、通常のログインシーケンスが開始されます。

ct ケーパビリティはすべての送信文字列および想定される入力文字列に適用され るタイムアウトの値を指定します。このタイムアウトは文字列待ちを行うごと、 および文字列送信を行うごとに設定されます。少なくともリモートとローカルの モデムの間のコネクションが確立されるのにかかる時間 (通常およそ 10 秒) だ けの長さは必要です。

ほとんどの情況で、コネクションが検出された後に追加の入力のすべてをフラッ シュしたいと思うものですが、この目的には de ケーパビリティを使うことがで きます。これは、コネクションが確立された後で短時間の遅延をかけ、その間に 接続データがすべてモデムによって送られてしまうのと同じ効果を持ちます。

関連項目

login(1), gethostname(3), uname(3), termcap(5), getty(8), telnetd(8)

バグ

特殊文字 (文字消去、行削除など) は login(1) によってシステムのデフォルト に再設定されてしまいます。 常に、ログイン名としてタイプした ’#’ あるいは ’^H’ は1文字消去として扱われ、’@’ は行消去として扱われます。

遅延機能は実クロックです。全般的に柔軟性がないという問題はさておき、遅延 アルゴリズムのいくつかは実装されていません。端末ドライバが正常な遅延の設 定をサポートしている必要があります。

he ケーパビリティは全く知的ではありません。

忌まわしい termcap(5) フォーマットより、もっと合理的なものを選ぶべきでし た。

歴史

gettytab ファイルフォーマットは 4.2BSD で登場しました。

FreeBSD 10.0 April 19, 1994 FreeBSD 10.0

スポンサーリンク