gettytab(5)
|
FreeBSD 一般コマンドマニュアル
|
gettytab
gettytab
解説
gettytab ファイルは termcap(5) データベースを単純化したバージョンで、端末
回線を記述するのに用いられます。冒頭に起動される端末ログインプロセス
getty(8) は起動されるたびに gettytab ファイルにアクセスするので、比較的簡
単に端末の特性を再設定することができます。データベースの各エントリは、そ
れぞれ1個の端末クラスを記述するのに用いられます。
デフォルトの端末クラス default が存在し、他の全てのクラスに対するグローバ
ルなデフォルト値を記述するのに用いられます。 (言い替えれば、まず、
default エントリを読み込み、その後で、必要なクラスのエントリを読み込み、
デフォルトの設定をクラス固有の設定で上書きします。)
ケーパビリティ
ファイルレイアウトの解説については、 termcap(5) を参照して下さい。以下の
デフォルト欄は、使用する端末用のテーブルに値がなく、特別の default テーブ
ルにも値がない場合に用いられる値です。
B>名B>称 B>型 B>デB>フB>ォB>ルB>ト B>解B>説
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 ac/ic スクリプトのためのチャットタイ
ムアウト
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 モード
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 最初のプロンプトと引き続くフラッシュ
の間の遅延 (秒数)
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 タイムアウト (秒数)
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 現在の日付と時間を、 Lo と df に従って整形したも
の。
%h マシンのホスト名。通常は gethostname(3) によってシ
ステムから得ますが、テーブルの hn エントリで指定し
て、この値を書き換えることができます。どちらの場合
でも、これは he 文字列を用いて編集することができま
す。 he 文字列の中にある 1 個の '@' は 実際のホス
ト名から最終的なホスト名に 1文字のコピーを引き起こ
します。 he 文字列中の '#' は実際のホスト名の次の1
文字をスキップさせます。 '@' でも '#' でもない各文
字は最終的なホスト名にコピーされます。余分な '@'
と '#' は無視されます。
れます。
もしタイムアウトとして、 to に 0 以外の値を指定した場合、指定された秒数経
過した後に終了します。すなわち、getty はログイン名を受け取って制御を
login(1) に渡すか、または alarm シグナルを受け取って終了します。これはダ
イヤルイン回線をハングアップするために有用です。
getty(8) からの出力は、 op か np が指定された場合を除いて、偶数パリティを
用います。 op 文字列と ap を一緒に指定すると、入力としてはパリティが何で
あっても許可し、出力としては奇数パリティを生成します。注意: これは、getty
が実行されているときのみ適用され、端末ドライバの制限によりここまで完全な
実装ができないかもしれません。 getty(8) は RAW モードのときは入力文字のパ
リティ検査を行いません。
もし pp 文字列が指定されていて、 PPP リンク確立シーケンスが認識されると、
getty は pp オプションで指定されているプログラムを起動します。これは PPP
着信を取り扱うために用いることができます。
getty は以下の2つのケーパビリティを用いて利用できるチャットスクリプト機能
を提供します。これによって、基本的なインテリジェントモデムをある程度取り
扱えるようにします。
ic モデムを初期化するチャットスクリプト。
ac コールに答えるチャットスクリプト。
チャットスクリプトは、受信を想定した文字列/送信する文字列の対の連なりから
なります。チャット文字列が始まるとき、 getty は最初の文字列を待ち、その文
字列を見つけたら 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 チャットシーケンスはモデムやそれに類似したデバイスを初期化するのに用い
られます。ヘイズ互換のコマンドセットを持つモデム用の初期化チャットスクリ
プトの典型例は、以下のようなものでしょう。
入力をすべて消去し、ポートへのデータを待ちます。何らかのデータが取得可能
になるとすぐ、アンサーチャットスクリプトが開始し、文字列がスキャンされ、
アンサーチャットスクリプトに従って応答します。ヘイズ互換のモデムでは、ス
クリプトは通常以下のような感じのものになるでしょう。
: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 4.4 April 19, 1994 FreeBSD 4.4