stty
- set the options for a terminal device interface
SYNOPSIS
[-a | e | g
]
[-f file
]
[arguments
]
DESCRIPTION
The
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
Display all the current settings for the terminal to standard output
as per
St -p1003.2 .
-e
Display all the current settings for the terminal to standard output
in the traditional
BSD ``all'' and ``everything'' formats.
-f
Open and use the terminal named by
file
rather than using standard input.
The file is opened
using the
O_NONBLOCK
flag of
open (,);
making it possible to
set or display settings on a terminal that might otherwise
block on the open.
-g
Display all the current settings for the terminal to standard output
in a form that may be used as an argument to a subsequent invocation of
to restore the current terminal state as per
St -p1003.2 .
The following arguments are available to set the terminal
characteristics:
Control Modes:
Control mode flags affect hardware characteristics associated with the
terminal.
This corresponds to the c_cflag in the termios structure.
parenb (-parenb
)
Enable (disable) parity generation
and detection.
parodd (-parodd
)
Select odd (even) parity.
cs5 cs6 cs7 cs8
Select character size, if possible.
number
Set terminal baud rate to the
number given, if possible.
If the
baud rate is set to zero, modem
control is no longer
asserted.
ispeed number
Set terminal input baud rate to the
number given, if possible.
If the
input baud rate is set to zero, the
input baud rate is set to the
value of the output baud
rate.
ospeed number
Set terminal output baud rate to
the number given, if possible.
If
the output baud rate is set to
zero, modem control is
no longer asserted.
speed number
This sets both
ispeed
and
ospeed
to
number
hupcl (-hupcl
)
Stop asserting modem control
(do not stop asserting modem control) on last close.
hup (-hup
)
Same as hupcl
(-hupcl
)
cstopb (-cstopb
)
Use two (one) stop bits per character.
cread (-cread
)
Enable (disable) the receiver.
clocal (-clocal
)
Assume a line without (with) modem
control.
crtscts (-crtscts
)
Enable (disable) RTS/CTS flow control.
Input Modes:
This corresponds to the c_iflag in the termios structure.
ignbrk (-ignbrk
)
Ignore (do not ignore) break on
input.
brkint (-brkint
)
Signal (do not signal)
INTR
on
break.
ignpar (-ignpar
)
Ignore (do not ignore) characters with parity
errors.
parmrk (-parmrk
)
Mark (do not mark) characters with parity errors.
inpck (-inpck
)
Enable (disable) input parity
checking.
istrip (-istrip
)
Strip (do not strip) input characters
to seven bits.
inlcr (-inlcr
)
Map (do not map)
NL
to
CR
on input.
igncr (-igncr
)
Ignore (do not ignore)
CR
on input.
icrnl (-icrnl
)
Map (do not map)
CR
to
NL
on input.
ixon (-ixon
)
Enable (disable)
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
)
Request that the system send (not
send)
START/STOP
characters when
the input queue is nearly
empty/full.
ixany (-ixany
)
Allow any character (allow only
START
to restart output.
imaxbel (-imaxbel
)
The system imposes a limit of
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.
Output Modes:
This corresponds to the c_oflag of the termios structure.
opost (-opost
)
Post-process output (do not
post-process output; ignore all other
output modes).
onlcr (-onlcr
)
Map (do not map)
NL
to
CR-NL
on output.
ocrnl (-ocrnl
)
Map (do not map)
CR
to
NL
on output.
oxtabs (-oxtabs
)
Expand (do not expand) tabs to spaces on output.
onocr (-onocr
)
Do not (do) output CRs at column zero.
onlret (-onlret
)
On the terminal NL performs (does not perform) the CR function.
Local Modes:
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
)
Enable (disable) the checking of
characters against the special control
characters
INTR , QUIT
and
SUSP
icanon (-icanon
)
Enable (disable) canonical input
( ERASE
and
KILL
processing).
iexten (-iexten
)
Enable (disable) any implementation
defined special control characters
not currently controlled by icanon,
isig, or ixon.
echo (-echo
)
Echo back (do not echo back) every
character typed.
echoe (-echoe
)
The
ERASE
character shall (shall
not) visually erase the last character
in the current line from the
display, if possible.
echok (-echok
)
Echo (do not echo)
NL
after
KILL
character.
echoke (-echoke
)
The
KILL
character shall (shall
not) visually erase the
current line from the
display, if possible.
echonl (-echonl
)
Echo (do not echo)
NL
even if echo
is disabled.
echoctl (-echoctl
)
If
echoctl
is set, echo control characters as ^X.
Otherwise control characters
echo as themselves.
echoprt (-echoprt
)
For printing terminals.
If set, echo erased characters backwards within ``\''
and ``/''.
Otherwise, disable this feature.
noflsh (-noflsh
)
Disable (enable) flush after
INTR , QUIT , SUSP
tostop (-tostop
)
Send (do not send)
SIGTTOU
for background output.
This causes background jobs to stop if they attempt
terminal output.
altwerase (-altwerase
)
Use (do not use) an alternate word erase algorithm when processing
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
)
If set, flow control output based on condition of Carrier Detect.
Otherwise
writes return an error if Carrier Detect is low (and Carrier is not being
ignored with the
CLOCAL
flag.)
flusho (-flusho
)
Indicates output is (is not) being discarded.
pendin (-pendin
)
Indicates input is (is not) pending after a switch from non-canonical
to canonical mode and will be re-input when a read becomes pending
or more input arrives.
Control Characters:
control-character string
Set
control-character
to
string
If string is a single character,
the control character is set to
that character.
If string is the
two character sequence "^-" or the
string "undef" the control character
is disabled (i.e., set to
{ _POSIX_VDISABLE }
Recognized control-characters:
control-
character Ta Subscript Ta Description
_________ Ta _________ Ta _______________
eof Ta VEOF Ta EOF character
eol Ta VEOL Ta EOL character
eol2 Ta VEOL2 Ta EOL2 character
erase Ta VERASE Ta ERASE character
erase2 Ta VERASE2 Ta ERASE2 character
werase Ta VWERASE Ta WERASE character
intr Ta VINTR Ta INTR character
kill Ta VKILL Ta KILL character
quit Ta VQUIT Ta QUIT character
susp Ta VSUSP Ta SUSP character
start Ta VSTART Ta START character
stop Ta VSTOP Ta STOP character
dsusp Ta VDSUSP Ta DSUSP character
lnext Ta VLNEXT Ta LNEXT character
reprint Ta VREPRINT Ta REPRINT character
status Ta VSTATUS Ta STATUS character
min number
time number
Set the value of min or time to
number.
MIN
and
TIME
are used in
Non-Canonical mode input processing
(-icanon).
Combination Modes:
saved settings
Set the current terminal
characteristics to the saved settings
produced by the
-g
option.
evenp or parity
Enable parenb and cs7; disable
parodd.
oddp
Enable parenb, cs7, and parodd.
-parity , evenp , oddp
Disable parenb, and set cs8.
nl (-nl
)
Enable (disable) icrnl.
#include <addition>
-nl unsets inlcr and igncr.
ek
Reset
ERASEERASE2
and
KILL
characters
back to system defaults.
sane
Resets all modes to reasonable values for interactive terminal use.
tty
Set the line discipline to the standard terminal line discipline
TTYDISC
crt (-crt
)
Set (disable) all modes suitable for a CRT display device.
kerninfo (-kerninfo
)
Enable (disable) the system generated status line associated with
processing a
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 number
The terminal size is recorded as having
number
columns.
cols number
is an alias for
columns
rows number
The terminal size is recorded as having
number
rows.
dec
Set modes suitable for users of Digital Equipment Corporation systems
( ERASEKILL
and
INTR
characters are set to ^?, ^U, and ^C;
ixany
is disabled, and
crt
is enabled.)
extproc (-extproc
)
If set, this flag indicates that some amount of terminal processing is being
performed by either the terminal hardware or by the remote side connected
to a pty.
raw (-raw
)
If set, change the modes of the terminal so that no input or output processing
is performed.
If unset, change the modes of the terminal to some reasonable
state that performs input and output processing.
Note that since the
terminal driver no longer has a single
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
The size of the terminal is printed as two numbers on a single line,
first rows, then columns.
Compatibility Modes:
These modes remain for compatibility with the previous version of
the
command.
all
Reports all the terminal modes as with
stty -a
except that the control characters are printed in a columnar format.
everything
Same as
all
cooked
Same as
sane
cbreak
If set, enables
brkint , ixon , imaxbel , opostisig , iexten
and
-icanon
If unset, same as
sane