STTY(1) | General Commands Manual | STTY(1) |
stty
— set the
options for a terminal device interface
stty |
[-a | -e |
-g ] [-f
file] [operands] |
The stty
utility sets or reports on
terminal characteristics for the device that is its standard input. If no
options or operands are specified, it reports the settings of a subset of
characteristics as well as additional ones if they differ from their default
values. Otherwise it modifies the terminal state according to the specified
arguments. Some combinations of arguments are mutually exclusive on some
terminal types.
The options are as follows:
-a
-e
-f
fileO_NONBLOCK
flag of
open(2), making it possible to set or
display settings on a terminal that might otherwise block on the
open.-g
stty
to restore the current terminal state. The
output does not contain any characters that require quoting, to avoid word
expansion by the shell.The following arguments are available to set the terminal characteristics:
Control mode flags affect hardware characteristics associated with
the terminal. This corresponds to the c_cflag
in the
termios structure.
parenb
(-parenb
)parodd
(-parodd
)cs5 cs6 cs7
cs8
ispeed
numberospeed
numberspeed
numberispeed
and
ospeed
to number.hupcl
(-hupcl
)hup
(-hup
)hupcl
(-hupcl
).cstopb
(-cstopb
)cread
(-cread
)clocal
(-clocal
)crtscts
(-crtscts
)This corresponds to the c_iflag
in the
termios structure.
ignbrk
(-ignbrk
)brkint
(-brkint
)INTR
on break.ignpar
(-ignpar
)parmrk
(-parmrk
)inpck
(-inpck
)istrip
(-istrip
)inlcr
(-inlcr
)NL
to CR
on input.igncr
(-igncr
)CR
on input.icrnl
(-icrnl
)CR
to NL
on input.iuclc
(-iuclc
)ixon
(-ixon
)START/STOP
output control. Output
from the system is stopped when the system receives
STOP
and started when the system receives
START
, or if ixany
is set,
any character restarts output.ixoff
(-ixoff
)START/STOP
characters when the input queue is nearly empty/full.ixany
(-ixany
)START
) to restart
output.imaxbel
(-imaxbel
)MAX_INPUT
(currently
255) characters in the input queue. If imaxbel
is
set and the input queue limit has been reached, subsequent input causes
the system to send an ASCII BEL character to the output queue (the
terminal beeps at you). Otherwise, if imaxbel
is
unset and the input queue is full, the next input character causes the
entire input and output queues to be discarded.This corresponds to the c_oflag
of the
termios structure.
opost
(-opost
)onlcr
(-onlcr
)NL
to
CR-NL
on output.ocrnl
(-ocrnl
)onocr
(-onocr
)onlret
(-onlret
)olcuc
(-olcuc
)oxtabs
(-oxtabs
)onoeot
(-onoeot
)Local mode flags (lflags) affect various and sundry
characteristics of terminal processing. Historically the term
"local" pertained to new job control features implemented by Jim
Kulp on a PDP 11/70 at IIASA. Later the driver ran on the first VAX at Evans
Hall, UC Berkeley, where the job control details were greatly modified but
the structure definitions and names remained essentially unchanged. The
second interpretation of the ‘l’ in lflag is “line
discipline flag” which corresponds to the
c_lflag
of the termios structure.
isig
(-isig
)INTR
, QUIT
, and
SUSP
.icanon
(-icanon
)ERASE
and
KILL
processing).iexten
(-iexten
)icanon
,
isig
, or ixon
.echo
(-echo
)echoe
(-echoe
)ERASE
character shall (shall not) visually
erase the last character in the current line from the display, if
possible.echok
(-echok
)NL
after
KILL
character.echoke
(-echoke
)KILL
character shall (shall not) visually
erase the current line from the display, if possible.echonl
(-echonl
)NL
, even if echo is
disabled.echoctl
(-echoctl
)echoctl
is set, echo control characters as
‘^X
’. Otherwise control characters
echo as themselves.echoprt
(-echoprt
)\
’ and
‘/
’. Otherwise, disable this
feature.noflsh
(-noflsh
)INTR
,
QUIT
, SUSP
.tostop
(-tostop
)SIGTTOU
for background output.
This causes background jobs to stop if they attempt terminal output.altwerase
(-altwerase
)WERASE
characters. This alternate algorithm
considers sequences of alphanumeric/underscores as words. It also skips
the first preceding character in its classification (as a convenience
since the one preceding character could have been erased with simply an
ERASE
character).mdmbuf
(-mdmbuf
)CLOCAL
flag).flusho
(-flusho
)pendin
(-pendin
)xcase
(-xcase
)iuclc
and olcuc
.^-
’ or the string
“undef” the control character is disabled (i.e. set to
{_POSIX_VDISABLE
}).
Recognized control-characters:
Control | Subscript | Description |
character | ||
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
numbertime
numbermin
or
time
to number.
MIN
and TIME
are used in
non-canonical mode input processing (-icanon).-g
option.evenp
or parity
parenb
and cs7
;
disable parodd
.oddp
parenb
, cs7
, and
parodd
.-parity
,
-evenp
, -oddp
parenb
and set
cs8
.nl
(-nl
)icrnl
. In addition,
-nl
unsets inlcr
and
igncr
.ek
ERASE
and KILL
characters back to system defaults.sane
tty
TTYDISC
.crt
(-crt
)kerninfo
(-kerninfo
)STATUS
character (usually set to
‘^T
’). The status line consists of
the system load average, the current command name, its process ID, the
event the process is waiting on (or the status of the process), the user
and system times, percent CPU, and current memory usage.columns
numbercols
numbercolumns
.rows
numberdec
ERASE
, KILL
, and
INTR
characters are set to ^?, ^U, and ^C;
ixany
is disabled, and crt
is enabled).extproc
(-extproc
)raw
(-raw
)RAW
bit, it is not possible to intuit what flags
were set prior to setting raw
. This means that
unsetting raw
may not put back all the setting
that were previously in effect. To set the terminal into a raw state and
then accurately restore it, the following shell code is recommended:
save_state=$(stty -g) stty raw ... stty "$save_state"
size
These modes remain for compatibility with the previous version of the stty command.
all
stty
-a
except that the control characters are printed
in a columnar format.everything
all
.cooked
sane
.cbreak
brkint
,
ixon
, imaxbel
,
opost
, isig
,
iexten
, and -icanon
. If
unset, same as 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
.lcase
(-lcase
)iuclc
, olcuc
and
xcase
.litout
(-litout
)opost
.tabs
(-tabs
)oxtabs
.brk
valueeol
.flush
valuediscard
.rprnt
valuereprint
.These operations are not modes, but rather commands to be performed by the tty layer.
The stty
utility exits 0 on
success, and >0 if an error occurs.
The stty
utility is compliant with the
IEEE Std 1003.1-2008 (“POSIX.1”)
specification.
The flags [-ef
], the operands
altwerase
, cols
,
columns
, crt
,
crtscts
, dec
,
echoke
, extproc
,
flusho
, imaxbel
,
kerninfo
, mdmbuf
,
onlcr
, onoeot
,
ostart
, ostop
,
oxtabs
, pendin
,
rows
, size
,
speed
, and tty
, and the
control characters eol2, dsusp, lnext, reprint, status, and werase are all
extensions to that specification.
The operands iuclc
,
olcuc
, and xcase
are marked
by IEEE Std 1003.1-2008 (“POSIX.1”) as
legacy items; the operands listed in
Compatibility modes can also
be considered legacy.
The operands bs0-1
,
cr0-3
, ff0-1
,
nl0-1
, ocrnl
,
ofdel
, ofill
,
onlret
, onocr
,
raw
, tab0-3
,
tabs
, and vt0-1
are marked
by IEEE Std 1003.1-2008 (“POSIX.1”) as
being an X/Open System Interfaces option. Of those, only
ocrnl
, onlret
,
onocr
, raw
, and
tabs
are supported by this implementation of
stty
, and behaviour for tabs
differs.
A stty
command appeared in
Version 2 AT&T UNIX.
January 16, 2020 | OpenBSD-current |