The stty(1) 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 and additional ones if they differ from
their default values. Otherwise, it modifies the terminal state
according to the specified arguments (if it is able). Some
combinations of arguments are mutually exclusive on some terminal
types. Interix uses a terminal type of interix to
describe the console.
The following options are available:
-a
Display all the current settings for the terminal to standard
output.
-e
Display all the current settings for the terminal to standard
output in the traditional Berkeley Software Distribution (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(3), 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 can be used as an argument to a subsequent
invocation of stty(1) to restore the current terminal
state.
The following arguments are available to set the terminal
characteristics:
Control modes
These flags affect hardware characteristics associated with the
terminal
Input modes
These flags affect the characters recognized on input.
Output modes
These flags affect the characters recognized on output.
Control characters
These flags define the control characters recognized by the
terminal.
Combination modes
These flags represent useful combinations of other flags.
Compatibility modes
These flags exist for compatibility with older versions of
stty(1).
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.
ispeednumber
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.
ospeednumber
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.
speednumber
This sets both ispeed and ospeed to
number.
hupcl (-hupcl)
Stop asserting modem control (do not stop asserting modem
control) on last close, if possible.
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) parity errors.
parmrk (-parmrk)
Mark (do not mark) 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 512)
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.
Local mode flags (lflags), or "line-discipline flags," affect
various characteristics of terminal processing and correspond 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(1) 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. The
default behavior is -tostop.
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
operation becomes pending or more input arrives.
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 (that is, it is set to
{_POSIX_VDISABLE}. Setting the control character also sets the
corresponding element of the termiosc_cc array.
belltimenumber
After a bell sounds at the keyboard, any subsequent bells
delivered in the next number tenths of a second are ignored.
This has no effect on other characters.
minnumber
timenumber
Set the value of min or time to number.
MIN and TIME are used in non-canonical mode input processing
The recognized control characters are listed in the following
table:
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. In addition -nl unsets inlcr and
igncr.
ek
Reset ERASE 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 identifier (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.
columnsnumber
The terminal size is recorded as having number columns.
On an Interix console window, this will resize the terminal window
to have number columns, unless the new size is larger than
the physical screen.
colsnumber
An alias for columns.
rowsnumber
The terminal size is recorded as having number rows. On
an Interix console window, this will resize the terminal window to
have number rows, unless the new size is larger than the
physical screen.
dec
Set modes suitable for users of Digital Equipment Corporation
systems ( RASE, KILL, 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 determine which flags were
set prior to setting raw. This means that unsetting
raw might not restore 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.