stty コマンド
目的
ワークステーションの動作パラメーターの設定、リセット、報告を行います。
構文
説明
stty コマンドは、現在の標準入力であるデバイスに対して、いくつかの I/O オプションを設定します。 このコマンドは、現在の標準出力であるデバイスへ出力を書き出します。
本バージョンのオペレーティング・システムは、標準 X/Open Portability Guide Issue 4 インターフェースを使用して端末を制御し、 POSIX および BSD インターフェースとの互換性を保ちます。 stty コマンドは、POSIX と BSD 準拠のオプションをサポートしていますが、POSIX オプションを使用するようにしてください。 旧バージョンの BSD オプションとそれに対応する POSIX オプションのリストも掲載されています。
tty デバイスからの標準入力をリダイレクトするときは、次のように入力します。
stty -a </dev/ttyxstty コマンド (POSIX) は、その tty の open() を待つ間、RS-232 キャリア検出シグナルが入るまで停止します。 この規則の例外が発生するのは、clocal または forcedcd (128 ポートのみ) オプションが設定されている場合です。
フラグ
| 項目 | 説明 |
|---|---|
| -a | すべてのオプション設定の現在の状態を標準出力に書き出します。 |
| -g | 別の stty コマンドで使用できる形式で、オプション設定を標準出力に書き出します。 |
オプション
stty コマンドは、以下のカテゴリーのオプションをサポートします。
| 制御モード | 説明 |
|---|---|
| clocal | 回線にモデム制御がないものと想定します。 |
| -clocal | 回線にモデム制御があるものと想定します。 |
| cread | 受信者を使用可能にします。 |
| -cread | 受信者を使用不可にします。 |
| cstopb | 1 文字当たり 2 つのストップ・ビットを選択します。 |
| -cstopb | 1 文字当たり 1 つのストップ・ビットを選択します。 |
| cs5、cs6、cs7、cs8 | 文字サイズを選択します。 |
| hup、hupcl | 最後のクローズ時にダイヤルアップ接続をハングアップします。 |
| -hup、-hupcl | 最後のクローズ時にダイヤルアップ接続をハングアップしません。 |
| parenb | パリティーの生成および検出を使用可能にします。 |
| -parenb | パリティーの生成および検出を使用不可にします。 |
| parodd | 奇数パリティーを選択します。 |
| -parodd | 偶数パリティーを選択します。 |
| 0 | 電話回線を即座にハングアップします。 |
| speed | ワークステーションの入出力速度を、speed で指定されたビット/秒の数に設定します。
すべての速度がどのハードウェア・インターフェースでもサポートされるとは限りません。
speed に有効な値は、50、75、110、134、200、300、600、1200、1800、2400、4800、9600、19200、19.2、38400、38.4、exta、および extb です。 注: exta、19200、
19.2 は同義です。extb、
38400、38.4 も同義です。
|
| ispeed speed | ワークステーションの入力速度を、speed で指定されたビット/秒の数に設定します。 すべての速度がどのハードウェア・インターフェースでもサポートされるとは限りません。また、このオプションがどのハードウェア・インターフェースでもサポートされるとは限りません。 speed に有効な値は、speed オプションと同じです。 |
| ospeed speed | ワークステーションの出力速度を、speed で指定されたビット/秒の数に設定します。 すべての速度がどのハードウェア・インターフェースでもサポートされるとは限りません。また、このオプションがどのハードウェア・インターフェースでもサポートされるとは限りません。 speed に有効な値は、speed オプションと同じです。 |
| 入力モード | 説明 |
|---|---|
| brkint | ブレーク時に INTR を送信します。 |
| -brkint | ブレーク時に INTR を送信しません。 |
| icrnl | 入力時に CR を NL にマップします。 |
| -icrnl | 入力時に CR を NL にマップしません。 |
| ignbrk | 入力時に BREAK を無視します。 |
| -ignbrk | 入力時に BREAK を無視しません。 |
| igncr | 入力時に CR を無視します。 |
| -igncr | 入力時に CR を無視しません。 |
| ignpar | パリティー・エラーを無視します。 |
| -ignpar | パリティー・エラーを無視しません。 |
| inlcr | 入力時に NL を CR にマップします。 |
| -inlcr | 入力時に NL を CR にマップしません。 |
| inpck | パリティー検査を使用可能にします。 |
| -inpck | パリティー検査を使用不可にします。 |
| istrip | 入力文字を削除して 7 ビットにします。 |
| -istrip | 入力文字を 7 ビットに削除しません。 |
| iuclc | 大文字の英字を小文字にマップします。 |
| -iuclc | 大文字の英字を小文字にマップしません。 |
| ixany | 任意の文字で出力を再開できるようにします。 |
| -ixany | START (Ctrl-Q キー・シーケンス) でのみ出力を再開できるようにします。 |
| ixoff | 入力キューがほとんど空またはいっぱいになると、START/STOP 文字を送信します。 |
| -ixoff | START/STOP 文字を送信しません。 |
| ixon | START/STOP 出力制御を使用可能にします。 一度 START/STOP 出力制御を使用可能にすれば、Ctrl-S キー・シーケンスを押してワークステーションへの出力を停止し、Ctrl-Q キー・シーケンスを押して出力を再開できます。 |
| -ixon | START/STOP 出力制御を使用不可にします。 |
| imaxbel | 入力がオーバーフローすると、BEL 文字をエコーし、最後の入力文字を破棄します。 |
| -imaxbel | 入力がオーバーフローすると、すべての入力を破棄します。 |
| parmrk | パリティー・エラーに印を付けます。 |
| -parmrk | パリティー・エラーに印を付けません。 |
出力モード
| 出力モード | 説明 |
|---|---|
| bs0, bs1 | バックスペースに対して、遅延のスタイルを選択します (bs0 は遅延なしを示します)。 |
| cr0, cr1, cr2, cr3 | CR 文字に対して、遅延のスタイルを選択します (cr0 は遅延なしを示します)。 |
| ff0, ff1 | 用紙送りに対して、遅延のスタイルを選択します (ff0 は遅延なしを示します)。 |
| nl0, nl1 | NL 文字に対して、遅延のスタイルを選択します (nl0 は遅延なしを示します)。 |
| ofill | 遅延に対して、充てん文字を使用します。 |
| -ofill | 遅延に対してタイミングを使用します。 |
| ocrnl | CR 文字を NL 文字にマップします。 |
| -ocrnl | CR 文字を NL 文字にマップしません。 |
| olcuc | 出力時に、小文字の英字を大文字にマップします。 |
| -olcuc | 出力時に、小文字の英字を大文字にマップしません。 |
| onlcr | NL 文字を CR-NL 文字にマップします。 |
| -onlcr | NL 文字を CR-NL 文字にマップしません。 |
| onlret | 端末上で、NL が CR として機能します。 |
| -onlret | 端末上で、NL は CR として機能しません。 |
| onocr | カラム 0 に CR 文字を出力しません。 |
| -onocr | カラム 0 に CR 文字を出力します。 |
| opost | 出力を処理します。 |
| -opost | 出力を処理しません。つまり、他のすべての出力オプションを無視します。 |
| ofdel | 充てん文字として DEL 文字を使用します。 |
| -ofdel | 充てん文字として NUL 文字を使用します。 |
| tab0、tab1、tab2 | 水平タブに対して、遅延のスタイルを選択します (tab0 は遅延なしを示します)。 |
| tab3 | タブ文字を可変数のスペースに拡張します。 |
| vt0, vt1 | 垂直タブに対して、遅延のスタイルを選択します (vt0 は遅延なしを示します)。 |
| ローカル・モード | 説明 |
|---|---|
| echo | 入力されたすべての文字をエコーします。 |
| -echo | 文字をエコーしません。 |
| echoctl | 制御文字を ^X (Ctrl-X) としてエコーします。 この X は、制御文字のコードに 8 進の 100 を追加して与えられた文字です。 |
| -echoctl | 制御文字を ^X (Ctrl-X) としてエコーしません。 |
| echoe | ERASE 文字を「バックスペース・スペース・バックスペース」という文字列としてエコーします。
注: このモードはカラムの位置を追跡しないので、タブやエスケープ・
シーケンスなどを消去すると、予想外の結果を招くことがあります。
|
| -echoe | ERASE 文字をエコーせず、バックスペースのみをエコーします。 |
| echok | KILL 文字の後の NL 文字をエコーします。 |
| -echok | KILL 文字の後の NL 文字をエコーしません。 |
| echoke | 出力行上の個々の文字を消去することによって、KILL 文字をエコーします。 |
| -echoke | KILL 文字のみをエコーします。 |
| echonl | NL 文字をエコーします。 |
| -echonl | NL 文字をエコーしません。 |
| echoprt | 消去された文字を / (スラッシュ) および ¥ (円記号) を付けて逆方向にエコーします。 |
| -echoprt | 消去された文字を / (スラッシュ) および ¥ (円記号) を付けて逆方向にエコーしません。 |
| icanon | 正規入力を使用可能にします (正規入力により、ERASE 文字および KILL 文字による入力行の編集が可能になります)。 正規モードの入力については、 「Communications Programming Concepts」の『Line Discipline Module (ldterm)』のセクションを参照してください。 |
| -icanon | 正規入力を使用不可にします。 |
| iexten | 入力データのインストール定義関数を認識させるように指定します。 制御文字 (eol2、dsusp、reprint、discard、werase、lnext) を認識するためには、iexten が設定されていることが必要です。 これらのモードに関連する関数 (imaxbel、 echoke、 echoprt、および echoctl) の場合も、iexten が設定されている必要があります。 |
| -iexten | 入力データの導入定義関数を認識しないように指定します。 |
| isig | 特殊制御文字 INTR、SUSP および QUIT に対する文字の検査を使用可能にします。 |
| -isig | 特殊制御文字 INTR、SUSP および QUIT に対する文字の検査を使用不可にします。 |
| noflsh | INTR、SUSP、または QUIT の制御文字の後にバッファーをクリアしません。 |
| -noflsh | INTR、SUSP、または QUIT の制御文字の後にバッファーをクリアします。 |
| pending | 次に読み取り操作が保留になるか、または次に入力が到着したときに、ロー・モードから正規モードに切り替わった後で保留されている入力を再入力させます。 保留は内部状態ビットです。 |
| -pending | テキストを保留しません。 |
| tostop | バックグラウンド出力のための SIGTOU を送信します。 |
| -tostop | バックグラウンド出力のための SIGTOU を送信しません。 |
| xcase | 入力時に大文字をエコーし、出力時に前に ¥ (円記号) を付けて大文字を表示します。 |
| -xcase | 入力時に大文字をエコーしません。 |
ハードウェア・フロー制御モード
| 項目 | 説明 |
|---|---|
| cdxon | 出力時に CD ハードウェア・フロー制御モードを使用可能にします。 |
| -cdxon | 出力時に CD ハードウェア・フロー制御モードを使用不可にします。 |
| ctsxon | 出力時に CTS ハードウェア・フロー制御モードを使用可能にします。 |
| -ctsxon | 出力時に CTS ハードウェア・フロー制御モードを使用不可にします。 |
| dtrxoff | 入力時に DTR ハードウェア・フロー制御モードを使用可能にします。 |
| -dtrxoff | 入力時に DTR ハードウェア・フロー制御モードを使用不可にします。 |
| rtsxoff | 入力時に RTS ハードウェア・フロー制御モードを使用可能にします。 |
| -rtsxoff | 入力時に RTS ハードウェア・フロー制御モードを使用不可にします。 |
制御文字の割り当て
文字列に制御文字を割り当てるには、以下のように入力します。
stty Control StringString パラメーターには、c などの
任意の 1 文字を使用できます。
この制御割り当ての例を以下に示します。
stty stop c制御文字を割り当てるもう 1 つの方法は、 ¥^ (円記号、脱字記号) から成る文字の並びの後に 1 文字が付いた文字列を入力する方法です。^ (脱字記号) の後の 1 文字が以下の表の ^c (脱字記号、c) 欄にリストされている場合、対応する制御文字の値が設定されます。例えば、? (疑問符) を使用して DEL 制御文字を割り当てるには、 以下のように、¥^? (円記号、脱字記号、疑問符) 文字列を入力します。
stty erase ¥^?| ^c | 値 |
|---|---|
| a, A | <SOH> |
| b, B | <STX> |
| c, C | <ETX> |
| d, D | <EOT> |
| e, E | <ENQ> |
| f, F | <ACK> |
| g, G | <BEL> |
| h, H | <BS> |
| i, I | <HT> |
| j, J | <LF> |
| k, K | <VT> |
| l, L | <FF> |
| m, M | <CR> |
| n, N | <SO> |
| o, O | <SI> |
| p, P | <DLE> |
| q, Q | <DC1> |
| r, R | <DC2> |
| s, S | <DC3> |
| t, T | <DC4> |
| u, U | <NAK> |
| v, V | <SYN> |
| w, W | <ETB> |
| x, X | <CAN> |
| y, Y | <EM> |
| z, Z | <SUB> |
| [ | <ESC> |
| ¥ | <FS> |
| ] | <GS> |
| ^ | <RS> |
| _ | <US> |
| ? | <DEL> |
| @ | <NUL> |
| 結合モード | 説明 |
|---|---|
| cooked | -raw オプションを参照してください。 |
| ek | ERASE 文字と KILL 文字を、それぞれ Ctrl-H および Ctrl-U キー・シーケンスに設定します。 |
| evenp | parenb と cs7 を使用可能にします。 |
| -evenp | parenb を使用不可にして cs8 を設定します。 |
| lcase、LCASE | xcase、 iuclc、 および olcuc を設定します。 大文字だけを使用するワークステーションに使用されます。 |
| -lcase、-LCASE | -xcase、 -iuclc、 および -olcuc を設定します。 |
| nl | -icrnl および -onlcr を設定します。 |
| -nl | icrnl、 onlcr、 -inlcr、 -igncr、 -ocrnl、 および -onlret を設定します。 |
| oddp | parenb、 cs7、 および parodd を使用可能にします。 |
| -oddp | parenb を使用不可にして cs8 を設定します。 |
| parity | evenp オプションを参照してください。 |
| -parity | -evenp オプションを参照してください。 |
| sane | パラメーターを妥当な値にリセットします。 |
| raw | ロー・モード入力 (消去、抹消、割り込みなどの入力処理を行いません) を使用可能にします。 パリティー・ビットは逆に渡されます。 |
| -raw | 正規入力モードを使用可能にします。 |
| tabs | タブを保存します。 |
| -tabs、tab3 | 出力時にタブをスペースに置き換えます。 |
| ウィンドウ・サイズ | 説明 |
|---|---|
| cols n、columns n | 端末 (ウィンドウ) のサイズを、桁数 n で記録します。 |
| rows n | 端末 (ウィンドウ) のサイズを、行数 n で記録します。 |
| size | 端末 (ウィンドウ) のサイズを、標準出力に表示します (最初に行、次に桁)。 |
旧バージョンのオプション
| 項目 | 説明 |
|---|---|
| all | すべての現行設定を表示するには、stty -a コマンドを使用してください。 |
| crt | パラメーターを妥当な値にリセットするには、 sane オプションを使用してください。 |
| crtbs | -echoe オプションを使用してください。 |
| crterase | echoe オプションを使用してください。 |
| -crterase | -echoe オプションを使用してください。 |
| crtkill | echoke オプションを使用してください。 |
| -crtkill | echok および -echoke オプションを使用してください。 |
| ctlecho | echoctl オプションを使用してください。 |
| -ctlecho | -echoctl オプションを使用してください。 |
| decctlq | -ixany オプションを使用してください。 |
| -decctlq | ixany オプションを使用してください。 |
| even | evenp オプションを使用してください。 |
| -even | -evenp オプションを使用してください。 |
| everything | すべての現行設定を表示するには、stty -a コマンドを使用してください。 |
| litout | -opost オプションを使用してください。 |
| -litout | opost オプションを使用してください。 |
| odd | oddp オプションを使用してください。 |
| -odd | -oddp オプションを使用してください。 |
| pass8 | -istrip オプションを使用してください。 |
| -pass8 | istrip オプションを使用してください。 |
| prterase | echoprt オプションを使用してください。 |
| speed | 現行設定を表示するには、stty コマンドを使用してください。 |
| tandem | ixoff オプションを使用してください。 |
| -tandem | -ixoff オプションを使用してください。 |
例
- ワークステーション構成の簡潔なリストを表示するには、以下のように入力します。
これによって、デフォルトではない設定がリストされます。stty - ワークステーション構成の完全なリストを表示するには、以下のように入力します。stty -a
- 画面上でのリストのスクロールを停止するキー・シーケンスを使用可能にするには、以下のように入力します。
これによって、ixon モードが設定されます。 このモードでは、Ctrl-S キー・シーケンスを押すことにより、ランナウェイ・リストのスクロールを停止できます。 ixany フラグを指定すると、任意のキーを押すことによりリスト表示を再開できます。 通常のワークステーション構成には、ixon および ixany フラグが含まれているので、これらのフラグを設定すると、再開に Ctrl-Q キー・シーケンスのみが使用できる Ctrl-S キー・シーケンスによって、リスト表示を停止できます。stty ixon ixany - 構成が修正不可能になってしまい、その構成をリセットするには、以下のように入力します。Ctrl-J stty sane Ctrl-Jコマンドの前後で Enter キーの代わりに Ctrl-J キー・シーケンスを押してください。 通常、システムは Enter キー処理を制御するパラメーターが破壊された場合に、Ctrl-J キー・シーケンスを認識します。
画面に表示される情報が異常となる場合や、Enter キーを押してもシステムが応答しないことが時々あります。 互換性のないパラメーターまたはユーザーが理解できないことを行うパラメーターを指定して stty コマンドを使用した場合に、このようなことが起こります。 また、画面指向のアプリケーションが異常終了し、ワークステーション構成をリセットする機会がない場合にも、発生します。
stty sane コマンドを入力すると、妥当な構成が設定されますが、通常の構成とは多少異なる場合があります。
- 端末の構成を保管および復元するには、以下のように入力します。
このコマンドによって、ワークステーションの構成が保管され、エコーがオフになり、パスワードが読み取られ、元の構成が復元されます。OLDCONFIG=`stty -g` # save configuration stty -echo # do not display password echo "Enter password: ¥c" read PASSWD # get the password stty $OLDCONFIG # restore configurationstty -echo コマンドを入力すると、エコーはオフになります。つまり、キーボードでパスワードを入力しても、パスワードは画面に表示されません。このアクションは、メッセージを画面に表示する echo コマンドとは無関係です。
ファイル
| 項目 | 説明 |
|---|---|
| /usr/bin/stty | stty コマンドが入っています。 |