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.

Open and use the terminal named by
file rather than using standard input.
The file is opened using the O_NONBLOCK
flag of open(2), making it
possible to set or display settings on a terminal that might otherwise
block on the open.

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 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:

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.

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.

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.

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).

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}).

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.

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:

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.