STTY(1)

名称
stty - 端末の設定を行なう

書式
stty [-a | -e | -g] [-f file] [operands]

解説
stty は、標準入力になっているデバイスの端末属性を設定もしくは表示する プログラムです。オプションや引数を指定しなかった場合、 設定されている属性の一部や、デフォルト値と違う値が設定されている属性 を表示します。 指定した場合は、指定された引数に従って端末の状態を変更します。 ターミナルの種類によっては相互に排他的な引数の組み合わせもあります。

オプションとしては以下のものがあります。

-a  p1003.2 に規定された形式で、 現在の端末属性をすべて標準出力に出力します。

-e  BSD の伝統的な ``all'' や ``everything'' の形式で、 現在の端末属性をすべて標準出力に出力します。

-f  標準入力ではなく、 file で指定された端末を使います。 このファイルは open() 関数に O_NONBLOCK フラグを付けてオープンされるので、端末の設定や表示をブロックされず に行なうことができます。

-g  端末変更後に端末の状態を復帰させられるように、 stty の引数として指定できる形式で、現在の端末属性を標準出力に 出力します。 この形式は p1003.2 に規定されています。

端末属性の設定には、以下の引数が使えます。

  制御モード:

制御モードのフラグは端末と関連するハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。

parenb (-parenb)
    パリティ生成および検出を有効 (無効) にします。

parodd (-parodd)
    奇数パリティ (偶数パリティ) にします。

cs5 cs6 cs7 cs8
    可能なら 1 文字のビット幅を設定します。

number
    可能なら、端末のボーレートを number に設定します。0 を指定した場合は、モデムの制御を切ります。

ispeed number
    可能なら、入力のボーレートを number に設定します。0 を設定した場合は、出力のボーレートと同じ値に設定されます。

ospeed number
    可能なら、出力のボーレートを number に設定します。0 を設定した場合は、モデムの制御を切ります。

speed number
    ispeed と ospeed の両方を number に設定します。

hupcl (-hupcl)
    そのデバイスをオープンしているプロセスがクローズ処理を行ったとき、ほか にこのデバイスをオープンしているプロセスがなければ、モデムの制御機能に より切断処理を行います (行いません)。

hup (-hup)
    hupcl (-hupcl) と同じです。

cstopb (-cstopb)
    ストップビットを 2ビット (1ビット) にします。

cread (-cread)
    受話器を有効 (無効) にします。

clocal (-clocal)
    回線に対してモデム制御が不要である (必要である) とみなします。

crtscts (-crtscts)
    RTS/CTS フロー制御を有効 (無効) にします。

  入力モード:
これは termios 構造体の c_iflag に相当します。

ignbrk (-ignbrk)
    入力のブレーク信号を無視します (無視しません)。

brkint (-brkint)
    ブレークを受信したとき、シグナル INTR を出します (出しません)。

ignpar (-ignpar)
    パリティエラーを無視します (無視しません)。

parmrk (-parmrk)
    パリティエラーをマークします (マークしません)。

inpck (-inpck)
    入力のパリティチェックを有効 (無効) にします。

istrip (-istrip)
    入力した文字の 8 ビット目を捨てて 7 ビットにします (8 ビット目 を捨てません)。

inlcr (-inlcr)
    入力の NL を CR に変換します (変換しません)。

igncr (-igncr)
    入力の CR を無視します (無視しません)。

icrnl (-icrnl)
    入力の CR を NL に変換します (変換しません)。

ixon (-ixon)
    制御コードの START/STOP を使った出力フロー制御を有効 (無効) にします。 システムから端末への出力において、システムが STOP を受信したら出力を中断し、 START を受信するか、 ixany が設定されている場合は何らかの文字を受信すると、 出力を再開するようになります。

ixoff (-ixoff)
    システムの入力キューが 空/満杯に近づいたら、それぞれ START/STOP を出力するようにします (近づいても、出力しません)。

ixany (-ixany)
    どんな文字が来ても ( START が来た場合のみ) 出力を再開します。

imaxbel (-imaxbel)
    システムによって入力キューの MAX_INPUT (一般的には 255) の最大文字数が規定されており、 imaxbel がセットされていると、入力キューの制限を越えた入力に対して ASCII BEL キャラクタを出力キューに送ります (端末が鳴ります)。 imaxbel がセットされていなくて入力キューが一杯になった場合、次の文字入力で すべての入力、出力キューは捨てられます。

  出力モード:
これは termios 構造体の c_oflag に相当します。

opost (-opost)
    プロセス後の処理を行った上で出力をします (プロセス後の処理を行わずに出力します。 この指定をすると、他のすべての出力モードが無視されます)。

onlcr (-onlcr)
    出力の NL を CR-NL に変換します (変換しません)。

oxtabs (-oxtabs)
    出力のタブをスペースに展開します (展開しません)。

  ローカルモード:

ローカルモードのフラグ (lflags) は端末処理のさまざまな属性に影響します。 歴史的には、"local"という名前のつけられた新しいジョブコントロール機能 は Jim Kulp によって IIASA の Pdp 11/70 に実装されました。 その後このドライバは、 Evans Hall, UC Berkeley の最初の VAX 上で走りました。その際ジョブコントロールの細部は大幅に変更されましたが、 構造体の定義と名前は根本的には変わりませんでした。 lflag の 'l' の二つ目の解釈は、 termios 構造体の c_lflag に相当する ``line discipline flag''(行制御規則フラグ) です。

isig (-isig)
    特殊な制御文字 INTR, QUIT, SUSP に対する処理を有効 (無効) にします。

icanon (-icanon)
    ERASE と KILL 処理による入力制御を有効 (無効) にします。

iexten (-iexten)
    icanon, isig, ixon で制御に使われているもの以外の特殊な 制御文字の処理を有効 (無効) にします。

echo (-echo)
    タイプされた文字をエコーバックします (エコーバックしません)。

echoe (-echoe)
    ERASE 文字の入力があった場合、可能ならディスプレイ上に見える現在の出力行の 最後の文字を消します (消しません)。

echok (-echok)
    KILL 文字の入力があった場合、そのあとに NL を出力します (出力しません)。

echoke (-echoke)
    可能なら、 KILL 文字でディスプレイ上の現在の行を消します (消しません)。

echonl (-echonl)
    echo が無効になっているときでも NL 文字だけはエコーバックさせます (エコーバックしません)。

echoctl (-echoctl)
    echoctl をセットすると、制御文字は ^X のように表示されます。 セットしなければ、その文字自身が表示されます。

echoprt (-echoprt)
    プリンタ端末に対するもので、設定された場合、削除された文字を ``\'' と ``/'' で囲んで逆方向にエコーします。 設定されていなければ、この機能を無効にします。

noflsh (-noflsh)
    INTR, QUIT, SUSP のあとのフラッシュ処理を無効 (有効) にします。

tostop (-tostop)
    バックグラウンドジョブが出力を行おうとした時に SIGTTOU を送ります (送りません)。これによってバックグラウンドジョブは画面出力を 行おうとすると停止するようになります。

altwerase (-altwerase)
    WERASE 文字を処理するときに、別の単語消去アルゴリズムを用います (用いません)。 このアルゴリズムは英数字とアンダースコアの並びを単語とみなします。 また、分類上直前の文字をスキップします (便宜的に、直前の文字を ERASE 一文字で消すことができるようにするため)。

mdmbuf (-mdmbuf)
    セットされると、CD 信号の検出によるフロー制御の出力を行います。 セットされなければ、CD 信号の低下に対してエラーを出力します (キャリア信号は CLOCAL フラグによっても無視されません)。

flusho (-flusho)
    出力を捨てます (捨てません)。

pendin (-pendin)
    入力を非標準 (non-canonical) モードから標準 (canonical) モードへ切り換えた あと、入力を保留します (保留しません)。読み込みが保留されたとき、または更に入力があったときに 再入力されます。

  制御文字:

control-character string
    string に control-character を割り当てます。もし string が 1 文字だけなら、その文字に control-character が割り当てられます。 string が二文字の "^-" もしくは "undef" の場合は control-character は無効にされます (つまり、 {_POSIX_VDISABLE} になります)。

    認識される制御文字:

    制御文字 記号　　 説明
    _________ _________ _______________
    eof | VEOF EOF character
    eol | VEOL EOL character
    eol2 | VEOL2 EOL2 character
    erase | VERASE ERASE character
    werase | VWERASE WERASE character
    intr | VINTR INTR character
    kill | VKILL KILL character
    quit | VQUIT QUIT character
    susp | VSUSP SUSP character
    start | VSTART START character
    stop | VSTOP STOP character
    dsusp | VDSUSP DSUSP character
    lnext | VLNEXT LNEXT character
    reprint | VREPRINT REPRINT character
    status | VSTATUS STATUS character

min number

time number
    min あるいは time の値を number にします。 MIN と TIME は非標準的なモード (-icanon) での入力処理に使われます。

  複合モード:

saved settings
    現在の端末属性を -g オプションによって保存された属性にする。

evenp or parity
    parenb と cs7 を有効にし、parodd を無効にします。

oddp
    parenb, cs7, parodd を有効にします。

-parity, -evenp, -oddp
    parenb を無効にして、cs8 をセットします。

nl (-nl)
    icrnl を有効 (無効) にします。 それに加えて、-nl は inlcr と igncr を解除します。

ek  ERASE と KILL に割り当てられている文字をシステムのデフォルトのものに戻します。

sane
    すべてのモードを対話的な端末利用に妥当な値にリセットします。

tty 行制御規則を標準端末の規則 TTYDISC に設定します。

crt (-crt)
    CRT ディスプレイ用に適合するモードをすべて有効 (無効) にします。

kerninfo (-kerninfo)
    STATUS 文字 (通常 ^T に設定されています) に結びつけられた システムステータス行の生成を有効 (無効) にします。 このステータス行はシステムの負荷、現在のコマンドの名前、プロセス ID、 プロセスが待っているイベント (あるいはプロセスの状態)、 ユーザー時間とシステム時間、CPU利用率、現在のメモリ使用状況 からなっています。

columns number
    端末の大きさを number 列とします。

cols number
    columns の別名定義です。

rows number
    端末の大きさを number 行とします。

dec Digital Equipment Corporation systems の端末設定にします。 ( ERASE, KILL, INTR をそれぞれ ^?, ^U, ^Cとし、 ixany を無効、 crt を有効にします)

extproc (-extproc)
    設定されると、一部の端末処理が端末機器ないし pty に接続されたリモート側 で行なわれるようになります。

raw (-raw)
    端末モードを全く入出力処理を行なわないモードにします。 これを無効にすると、端末を入出力処理を行なう普通のモードに戻します。 注意すべきなのは、端末用のドライバは単一の RAW ビットを持つわけではないので、 raw モードに設定する前にどのようなフラグが設定してあったのかを知ることがで きないということです。つまり、 raw モードを解除するだけでは、 raw モード設定前の状態には戻りません。 端末を raw 状態にして、それを正確に元に戻すためには、以下のような シェルコマンドを使うことを薦めます。
    save_state=$(stty -g)
    stty raw
    ...
    stty "$save_state"

size
    端末の大きさを行、列の順に並べた一行で表示します。

  互換モード:

以下のモードは旧バージョンの stty コマンドとの互換性保持のために残され ています。

all 縦覧式でコントール文字を表示する以外は、 stty -a と同様に端末設定を表示します。

everything
    all と同じです。

cooked
    sane と同じです。

cbreak
    brkint, ixon, imaxbel, opost, isig, iexten, -icanon を有効にします。 解除した場合は sane と同じです。

new tty と同じです。

old tty と同じです。

newcrt (-newcrt)
    crt と同じです。

pass8
    parity の反対です。

tandem (-tandem)
    ixoff と同じです。

decctlq (-decctlq)
    ixany の反対です。

crterase (-crterase)
    echoe と同じです。

crtbs (-crtbs)
    echoe と同じです。

crtkill (-crtkill)
    echoke と同じです。

ctlecho (-ctlecho)
    echoctl と同じです。

prterase (-prterase)
    echoprt と同じです。

litout (-litout)
    opost の反対です。

tabs (-tabs)
    oxtabs の反対です。

brk value
    制御文字 eol と同じです。

flush value
    制御文字 discard と同じです。

rprnt value
    制御文字 reprint と同じです。

stty は成功した場合は 0 を、エラーが起きた場合は 0 より大きい値を返します。

関連項目
termios(4)

規格
stty は p1003.2 互換です。 -e と -f のフラグは規格を拡張しています。