STTY(1) | General Commands Manual | STTY(1) |
stty
— set the
options for a terminal device interface
stty |
[-a | -e |
-g ] [-f
file] [arguments] |
The stty
utility sets or reports on
terminal characteristics for the device that is its standard input. If no
options or arguments 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 following options are available:
-a
-e
-f
O_NONBLOCK
flag of
open
(),
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 as per
IEEE Std 1003.2 (“POSIX.2”).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.
clocal
(-clocal
)cread
(-cread
)crtscts
(-crtscts
)cs5 cs6 cs7
cs8
cstopb
(-cstopb
)hup
(-hup
)hupcl
(-hupcl
).hupcl
(-hupcl
)ispeed
numberospeed
numberparenb
(-parenb
)parodd
(-parodd
)speed
numberispeed
and
ospeed
to number.This corresponds to the c_iflag in the termios structure.
brkint
(-brkint
)INTR
on break.icrnl
(-icrnl
)CR
to NL
on input.ignbrk
(-ignbrk
)igncr
(-igncr
)CR
on input.ignpar
(-ignpar
)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.inlcr
(-inlcr
)NL
to CR
on input.inpck
(-inpck
)istrip
(-istrip
)iutf8
(-iutf8
)ixany
(-ixany
)START
) to restart
output.ixoff
(-ixoff
)START/STOP
characters when the input queue is nearly empty/full.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.parmrk
(-parmrk
)This corresponds to the c_oflag of the termios structure.
bs0
bs1
cr0 cr1 cr2
cr3
ff0
ff1
nl0
nl1
ocrnl
(-ocrnl
)ofdel
(-odell
)ofill
(-ofill
)onlcr
(-onlcr
)NL
to
CR-NL
on output.onlret
(-onlret
)onocr
(-onocr
)opost
(-opost
)oxtabs
(-oxtabs
)tab0 tab1
tab2 tab3
tabs
(-tabs
)tab0
(tab3
).vt0
vt1
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.
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.)echo
(-echo
)echoctl
(-echoctl
)echoctl
is set, echo control characters as ^X.
Otherwise, control characters echo as themselves.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.echoprt
(-echoprt
)flusho
(-flusho
)icanon
(-icanon
)ERASE
and
KILL
processing).iexten
(-iexten
)icanon
,
isig
, ixoff
, or
ixon
.isig
(-isig
)INTR
, QUIT
, and
SUSP
.mdmbuf
(-mdmbuf
)CLOCAL
flag.)noflsh
(-noflsh
)INTR
,
QUIT
, or SUSP
.pendin
(-pendin
)tostop
(-tostop
)SIGTTOU
for background output.
This causes background jobs to stop if they attempt terminal output._POSIX_VDISABLE
}.)
Recognized control-characters:
control- | ||
character | Subscript | Description |
_________ | _________ | _______________ |
eof | VEOF | EOF character |
eol | VEOL | EOL character |
eol2 | VEOL2 | EOL2 character |
erase | VERASE | ERASE character |
erase2 | VERASE2 | ERASE2 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
and
TIME
are used in Non-Canonical mode input
processing (-icanon).-g
option.cols
numbercolumns
.columns
numbercrt
(-crt
)dec
ERASE
, KILL
, and
INTR
characters are set to ^?, ^U, and ^C;
ixany
is disabled, and crt
is enabled.)ek
ERASE
, ERASE2
, and
KILL
characters back to system defaults.-evenp
-oddp
and
-parity
.evenp
parenb
and cs7
;
disable parodd
.extproc
(-extproc
)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.nl
(-nl
)icrnl
. In addition,
-nl
unsets inlcr
and
igncr
.-oddp
-evenp
and
-parity
.oddp
parenb
, cs7
, and
parodd
.-parity
parenb
; set
cs8
.parity
evenp
.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"
rows
numbersane
size
tty
TTYDISC
.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.brk
valueeol
.cbreak
brkint
,
ixon
, imaxbel
,
opost
, isig
,
iexten
, and -icanon
. If
unset, same as sane
.cooked
sane
.crtbs
(-crtbs
)echoe
.crterase
(-crterase
)echoe
.crtkill
(-crtkill
)echoke
.ctlecho
(-ctlecho
)echoctl
.decctlq
(-decctlq
)ixany
.everything
all
.flush
valuediscard
.litout
(-litout
)opost
.new
tty
.newcrt
(-newcrt
)crt
.old
tty
.oxtabs
(-oxtabs
)pass8
parity
.prterase
(-prterase
)echoprt
.rprnt
valuereprint
.tabs
(-tabs
)oxtabs
.tandem
(-tandem
)ixoff
.The stty
utility exits 0 on
success, and >0 if an error occurs.
In legacy operation, the bs[01]
,
cr[0-3]
, ff[01]
,
nl[01]
, tab[0-3]
, and
vt[01]
control modes are not accepted, nor are
ocrnl
(-ocrnl
),
ofdel
(-ofdel
),
ofill
(-ofill
),
onlret
(-onlret
), and
onocr
(-onocr
).
For more information about legacy mode, see compat(5).
The stty
utility is expected to be
IEEE Std 1003.2 (“POSIX.2”)
compatible. The flags -e
and
-f
are extensions to the standard.
A stty
command appeared in
Version 2 AT&T UNIX.
October 20, 2018 | macOS 14.6 |