STTY(1)

NAME
stty - change and print terminal line settings

SYNOPSIS
stty [-F DEVICE | --file=DEVICE] [SETTING]...
stty [-F DEVICE | --file=DEVICE] [-a|--all]
stty [-F DEVICE | --file=DEVICE] [-g|--save]

DESCRIPTION

Print or change terminal characteristics.

Mandatory arguments to long options are mandatory for short options too.

-a, --all
    print all current settings in human-readable form

-g, --save
    print all current settings in a stty-readable form

-F, --file=DEVICE
    open and use DEVICE instead of standard input

--help
    display this help and exit

--version
    output version information and exit

Optional - before SETTING indicates negation. An * marks non-POSIX settings. The underlying system defines which settings are available.

  Special characters:

* discard CHAR
    CHAR will toggle discarding of output

* dsusp CHAR
    CHAR will send a terminal stop signal once input flushed

eof CHAR
    CHAR will send an end of file (terminate the input)

eol CHAR
    CHAR will end the line

* eol2 CHAR
    alternate CHAR for ending the line

erase CHAR
    CHAR will erase the last character typed

intr CHAR
    CHAR will send an interrupt signal

kill CHAR
    CHAR will erase the current line

* lnext CHAR
    CHAR will enter the next character quoted

quit CHAR
    CHAR will send a quit signal

* rprnt CHAR
    CHAR will redraw the current line

start CHAR
    CHAR will restart the output after stopping it

stop CHAR
    CHAR will stop the output

susp CHAR
    CHAR will send a terminal stop signal

* swtch CHAR
    CHAR will switch to a different shell layer

* werase CHAR
    CHAR will erase the last word typed

  Special settings:

N   set the input and output speeds to N bauds

cols N
    tell the kernel that the terminal has N columns

* columns N
    same as cols N

* [-]drain
    wait for transmission before applying settings (on by default)

ispeed N
    set the input speed to N

* line N
    use line discipline N

min N
    with -icanon, set N characters minimum for a completed read

ospeed N
    set the output speed to N

rows N
    tell the kernel that the terminal has N rows

size
    print the number of rows and columns according to the kernel

speed
    print the terminal speed

time N
    with -icanon, set read timeout of N tenths of a second

  Control settings:

[-]clocal
    disable modem control signals

[-]cread
    allow input to be received

* [-]crtscts
    enable RTS/CTS handshaking

csN set character size to N bits, N in [5..8]

[-]cstopb
    use two stop bits per character (one with '-')

[-]hup
    send a hangup signal when the last process closes the tty

[-]hupcl
    same as [-]hup

[-]parenb
    generate parity bit in output and expect parity bit in input

[-]parodd
    set odd parity (or even parity with '-')

* [-]cmspar
    use "stick" (mark/space) parity

  Input settings:

[-]brkint
    breaks cause an interrupt signal

[-]icrnl
    translate carriage return to newline

[-]ignbrk
    ignore break characters

[-]igncr
    ignore carriage return

[-]ignpar
    ignore characters with parity errors

* [-]imaxbel
    beep and do not flush a full input buffer on a character

[-]inlcr
    translate newline to carriage return

[-]inpck
    enable input parity checking

[-]istrip
    clear high (8th) bit of input characters

* [-]iutf8
    assume input characters are UTF-8 encoded

* [-]iuclc
    translate uppercase characters to lowercase

* [-]ixany
    let any character restart output, not only start character

[-]ixoff
    enable sending of start/stop characters

[-]ixon
    enable XON/XOFF flow control

[-]parmrk
    mark parity errors (with a 255-0-character sequence)

[-]tandem
    same as [-]ixoff

  Output settings:

* bsN
    backspace delay style, N in [0..1]

* crN
    carriage return delay style, N in [0..3]

* ffN
    form feed delay style, N in [0..1]

* nlN
    newline delay style, N in [0..1]

* [-]ocrnl
    translate carriage return to newline

* [-]ofdel
    use delete characters for fill instead of NUL characters

* [-]ofill
    use fill (padding) characters instead of timing for delays

* [-]olcuc
    translate lowercase characters to uppercase

* [-]onlcr
    translate newline to carriage return-newline

* [-]onlret
    newline performs a carriage return

* [-]onocr
    do not print carriage returns in the first column

[-]opost
    postprocess output

* tabN
    horizontal tab delay style, N in [0..3]

* tabs
    same as tab0

* -tabs
    same as tab3

* vtN
    vertical tab delay style, N in [0..1]

  Local settings:

[-]crterase
    echo erase characters as backspace-space-backspace

* crtkill
    kill all line by obeying the echoprt and echoe settings

* -crtkill
    kill all line by obeying the echoctl and echok settings

* [-]ctlecho
    echo control characters in hat notation ('^c')

[-]echo
    echo input characters

* [-]echoctl
    same as [-]ctlecho

[-]echoe
    same as [-]crterase

[-]echok
    echo a newline after a kill character

* [-]echoke
    same as [-]crtkill

[-]echonl
    echo newline even if not echoing other characters

* [-]echoprt
    echo erased characters backward, between '\' and '/'

* [-]extproc
    enable "LINEMODE"; useful with high latency links

* [-]flusho
    discard output

[-]icanon
    enable special characters: erase, kill, werase, rprnt

[-]iexten
    enable non-POSIX special characters

[-]isig
    enable interrupt, quit, and suspend special characters

[-]noflsh
    disable flushing after interrupt and quit special characters

* [-]prterase
    same as [-]echoprt

* [-]tostop
    stop background jobs that try to write to the terminal

* [-]xcase
    with icanon, escape with '\' for uppercase characters

  Combination settings:

* [-]LCASE
    same as [-]lcase

cbreak
    same as -icanon

-cbreak
    same as icanon

cooked
    same as brkint ignpar istrip icrnl ixon opost isig icanon, eof and eol characters to their default values

-cooked
    same as raw

crt same as echoe echoctl echoke

dec same as echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u

* [-]decctlq
    same as [-]ixany

ek  erase and kill characters to their default values

evenp
    same as parenb -parodd cs7

-evenp
    same as -parenb cs8

* [-]lcase
    same as xcase iuclc olcuc

litout
    same as -parenb -istrip -opost cs8

-litout
    same as parenb istrip opost cs7

nl  same as -icrnl -onlcr

-nl same as icrnl -inlcr -igncr onlcr -ocrnl -onlret

oddp
    same as parenb parodd cs7

-oddp
    same as -parenb cs8

[-]parity
    same as [-]evenp

pass8
    same as -parenb -istrip cs8

-pass8
    same as parenb istrip cs7

raw same as -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -icanon -opost -isig -iuclc -ixany -imaxbel -xcase min 1 time 0

-raw
    same as cooked

sane
    same as cread -ignbrk brkint -inlcr -igncr icrnl icanon iexten echo echoe echok -echonl -noflsh -ixoff -iutf8 -iuclc -ixany imaxbel -xcase -olcuc -ocrnl opost -ofill onlcr -onocr -onlret nl0 cr0 tab0 bs0 vt0 ff0 isig -tostop -ofdel -echoprt echoctl echoke -extproc -flusho, all special characters to their default values

Handle the tty line connected to standard input. Without arguments, prints baud rate, line discipline, and deviations from stty sane. In settings, CHAR is taken literally, or coded as in ^c, 0x37, 0177 or 127; special values ^- or undef used to disable special characters.

AUTHOR
Written by David MacKenzie.

REPORTING BUGS
Report bugs to: bug-coreutils@gnu.org

Report Gentoo bugs to: https://bugs.gentoo.org/
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>
Report any translation bugs to <https://translationproject.org/team/>

SEE ALSO
Full documentation <https://www.gnu.org/software/coreutils/stty>
or available locally via: info '(coreutils) stty invocation'

Packaged by Gentoo (9.10 (p0))
Copyright © 2026 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.