STTY(1)

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

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

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

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

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

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

-f file
    標準入力ではなく、名前が file の端末を開いて使用する。 このファイルは open() の O_NONBLOCK フラグによって開かれるので、端末設定の変更や表示をブロックされずに行う ことができます。

-g  現在の端末属性を、 stty の引数として指定できる形式で標準出力に 出力します。現在の端末の状態を記録しておき、 stty を使ったあとで端末の状態をリストアするのに活用できます。 これは p1003.2 に規定されています。

端末の属性を設定するために、以下の引数が利用できます:

  モードのコントロール:

モードのコントロールのためのフラグは端末に結びついたハードウェアの属性 に影響します。これは termios 構造体の c_cflag に相当します。

parenb (-parenb)
    パリティを有効 (無効) にします。

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

cs5 cs6 cs7 cs8
    可能であれば、文字のサイズ (ビット幅) をそれぞれに設定します。

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 フロー制御を有効にします (無効にします)。

cdtrcts (-cdtrcts)
    DTR/CTS フロー制御を有効にします (サポートしている場合のみ)。

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

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

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

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

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

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

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

inlcr (-inlcr)
    入力の NL を CR に変換します (変換しません)。 NL は制御コードの改行 (ASCII コード 10)、 CR は復帰 (13) です。

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

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

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

ixoff (-ixoff)
    システムの入力バッファのキューの状態によって、 満杯に近づいたら STOP を、空に近づいたら START を出力するようにします (START/STOP を出力ないようにします)。

ixany (-ixany)
    出力を再開するきっかけとして、すべてのキャラクタを許します (START しか許しません) 。

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

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

opost (-opost)
    出力のポスト処理をします (ポスト処理をしません。 この指定をすると、他のすべての出力モードが無視されます)。

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

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

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

onocr (-onocr)
    0 列目では CR を出力しません (出力します)。

onlret (-onlret)
    その端末では NL は CR として機能します (機能させません)。

  ローカルモード:

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

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

icanon (-icanon)
    ERASE と KILL の入力による入力の修正を有効にします (無効にします)。

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

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

echoe (-echoe)
    ERASE 文字の入力があった場合、可能なら現在の出力行の最後の文字が消えるように します (消しません)。

echok (-echok)
    KILL 文字の入力があった場合、 KILL 文字のエコーバックのあとに NL を出力するようにします (出力しないようにします)。

echoke (-echoke)
    可能なら、 KILL 文字が現在の行を消すようにします (消しません)。

echonl (-echonl)
    エコーバックが無効になっているときでも、 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)
    入力が非正式なものから正式なモードに変わっているかどうかを未定として扱 います (扱いません)。

  コントロールキャラクタ:

control-character string
    control-character で指定する機能に、 string で指定するキーを割り付けます。 control-character は次のものがあります。もし string が 1 文字だけなら、その文字が control-character に割り付けられます。 また、``^-'' もしくは ``undef''と指定した場合は、その control-character は無効にされます (つまり、 {_POSIX_VDISABLE} になります)。

    認識されるコントロール文字:

    control-
    character Subscript Description
    _________ _________ _______________
    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 または parity
    parenb と cs7 を有効にし、parodd を無効にします (つまり、7 ビット偶数 パリティにします)。

oddp
    parenb, vs7, parodd を有効にします (つまり、7 ビット奇数パリティにします)。

-parity, -evenp, -oddp
    parenb を無効にして、cs8 をセットします (つまり、8 ビットパリティなし にします)。

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, and ^Cとし、 ixany を無効、 crt を有効にします。)

extproc (-extproc)
    設定されると、端末処理が端末機器か端末のむこうがわの pty によって制御 されるようになります。

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 と同じです。

  コントロール命令:

これらの命令はモードではなく、むしろ tty 層で実行されるコマンドです。

ostart
    "start output" 命令を実行します。 ixon が設定されている状態で START キャラクタが来た時に行なわれる動作と同じです。

ostop
    "stop output" 命令を実行します。 ixon が設定されている状態で STOP キャラクタが来た時に行なわれる動作と同じです。

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

関連項目
termios(4)

規格
stty ユーティリティは p1003.2 互換です。 -e と -f のフラグは規格を拡張してあり、コントロール命令のセクションで述べている 命令もそうです。