stty Command

Purpose

Sets, resets, and reports workstation operating parameters.

Syntax

stty [ -a ] [ -g ] [ Options ]

Description

The stty command sets certain I/O options for the device that is the current standard input. This command writes output to the device that is the current standard output.

This version of the operating system uses the standard X/Open Portability Guide Issue 4 interface to control the terminals, maintaining a compatibility with POSIX and BSD interfaces. The stty command supports both POSIX and BSD compliant options, but the usage of POSIX options is strongly recommended. A list of obsolete BSD options, with the corresponding POSIX options, is also provided.

When you redirect standard input from a tty device by typing:

 stty -a </dev/ttyx

the stty command (POSIX) will hang while waiting for the open() of that tty until the RS-232 carrier detect signal has been asserted. Exceptions to this rule occur if the clocal or forcedcd (128-port only) option is set.

Flags

Item Description
-a Writes the current state of all option settings to standard output.
-g Writes option settings to standard output in a form usable by another stty command.

Options

The stty command supports following categories of options:

Control Modes
Control Modes Description
clocal Assumes a line without modem control.
-clocal Assumes a line with modem control.
cread Enables the receiver.
-cread Disables the receiver.
cstopb Selects 2 stop bits per character.
-cstopb Selects 1 stop bit per character.
cs5, cs6, cs7, cs8 Selects character size.
hup, hupcl Hangs up dial-up connection on the last close.
-hup, -hupcl Does not hang up dial-up connection on the last close.
parenb Enables parity generation and detection.
-parenb Disables parity generation and detection.
parodd Selects odd parity.
-parodd Selects even parity.
0 Hangs up phone line immediately.
speed Sets the workstation input and output speeds to the specified speed number of bits per second. All speeds are not supported by all hardware interfaces. Possible values for speed are: 50, 75, 110, 134, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 19.2, 38400, 38.4, exta, and extb.
Note: exta, 19200, and 19.2 are synonyms; extb, 38400, and 38.4 are synonyms.
ispeed speed Sets the workstation input speed to the specified speed number of bits per second. All speeds are not supported by all hardware interfaces, and all hardware interfaces do not support this option. Possible values for speed are the same as for the speed option.
ospeed speed Sets the workstation output speed to the specified speed number of bits per second. All speeds are not supported by all hardware interfaces, and all hardware interfaces do not support this option. Possible values for speed are the same as for the speed option.
Input Modes
Input Modes Description
brkint Signals INTR on break.
-brkint Does not signal INTR on break.
icrnl Maps CR to NL on input.
-icrnl Does not map CR to NL on input.
ignbrk Ignores BREAK on input.
-ignbrk Does not ignore BREAK on input.
igncr Ignores CR on input.
-igncr Does not ignore CR on input.
ignpar Ignores parity errors.
-ignpar Does not ignore parity errors.
inlcr Maps NL to CR on input.
-inlcr Does not map NL to CR on input.
inpck Enables parity checking.
-inpck Disables parity checking.
istrip Strips input characters to 7 bits.
-istrip Does not strip input characters to 7 bits.
iuclc Maps uppercase alphabetic characters to lowercase.
-iuclc Does not map uppercase alphabetic characters to lowercase.
ixany Allows any character to restart output.
-ixany Allows only the START (the Ctrl-Q key sequence) to restart output.
ixoff Sends START/STOP characters when the input queue is nearly empty/full.
-ixoff Does not send START/STOP characters.
ixon Enables START/STOP output control. Once START/STOP output control has been enabled, you can pause output to the workstation by pressing the Ctrl-S key sequence and resume output by pressing the Ctrl-Q key sequence.
-ixon Disables START/STOP output control.
imaxbel Echoes the BEL character and discards the last input character if input overflows.
-imaxbel Discards all input if input overflows.
parmrk Marks parity errors.
-parmrk Does not mark parity errors.

Output Modes

Output Modes Description
bs0, bs1 Selects style of delay for backspaces (bs0 siginifes no delay).
cr0,  cr1, cr2, cr3 Selects style of delay for CR characters (cr0 siginifes no delay).
ff0, ff1 Selects style of delay for form feeds (ff0 siginifes no delay).
nl0, nl1 Selects style of delay for NL characters (nl0 siginifes no delay).
ofill Uses fill characters for delays.
-ofill Uses timing for delays.
ocrnl Maps CR characters to NL characters.
-ocrnl Does not map CR characters to NL characters.
olcuc Maps lowercase alphabetic characters to uppercase on output.
-olcuc Does not map lowercase alphabetic characters to uppercase on output.
onlcr Maps NL characters to CR-NL characters.
-onlcr Does not map NL characters to CR-NL characters.
onlret On the terminal, NL performs the CR function.
-onlret On the terminal, NL does not perform the CR function.
onocr Does not output CR characters at column zero.
-onocr Outputs CR characters at column zero.
opost Processes output.
-opost Does not process output; that is, ignores all other output options.
ofdel Uses DEL characters for fill characters.
-ofdel Uses NUL characters for fill characters.
tab0, tab1, tab2 Selects style of delay for horizontal tabs (tab0 siginifes no delay).
tab3 Expands tab character to variable number of spaces.
vt0, vt1 Selects style of delay for vertical tabs (vt0 siginifes no delay).
Local Modes
Local Modes Description
echo Echoes every character typed.
-echo Does not echo characters.
echoctl Echoes control characters as ^X (Ctrl-X), where X is the character given by adding 100 octal to the code of the control character.
-echoctl Does not echo control characters as ^X (Ctrl-X).
echoe Echoes the ERASE character as the "backspace space backspace" string.
Note: This mode does not keep track of column position, so you can get unexpected results when erasing such things as tabs and escape sequences.
-echoe Does not echo the ERASE character, just backspace.
echok Echoes a NL character after a KILL character.
-echok Does not echo a NL character after a KILL character.
echoke Echoes the KILL character by erasing each character on the output line.
-echoke Just echoes the KILL character.
echonl Echoes the NL character.
-echonl Does not echo the NL character.
echoprt Echoes erased characters backwards with / (slash) and \ (backslash).
-echoprt Does not echo erased characters backwards with / (slash) and \ (backslash).
icanon Enables canonical input (canonical input allows input-line editing with the ERASE and KILL characters). See the discussion about canonical mode input in Line Discipline Module (ldterm) in Communications Programming Concepts.
-icanon Disables canonical input.
iexten Specifies that implementation-defined functions shall be recognized from the input data. Recognition of the following control characters requires iexten to be set: eol2, dsusp, reprint, discard, werase, lnext. The functions associated with these modes also require iexten to be set: imaxbel, echoke, echoprt, and echoctl.
-iexten Specifies that implementation-defined functions shall not be recognized from the input data.
isig Enables the checking of characters against the special control characters INTR, SUSP and QUIT.
-isig Disables the checking of characters against the special control characters INTR, SUSP and QUIT.
noflsh Does not clear buffers after INTR, SUSP, or QUIT control characters.
-noflsh Clears buffers after INTR, SUSP, or QUIT control characters.
pending Causes any input that is pending after a switch from raw to canonical mode to be re-input the next time a read operation becomes pending or the next time input arrives. Pending is an internal state bit.
-pending No text is pending.
tostop Signals SIGTOU for background output.
-tostop Does not signal SIGTOU for background output.
xcase Echoes uppercase characters on input, and displays uppercase characters on output with a preceding \ (backslash).
-xcase Does not echo uppercase characters on input.

Hardware Flow Control Modes

These options are extensions to the X/Open Portability Guide Issue 4 standard.
Item Description
cdxon Enables CD hardware flow control mode on output.
-cdxon Disables CD hardware flow control mode on output.
ctsxon Enables CTS hardware flow control mode on output.
-ctsxon Disables CTS hardware flow control mode on output.
dtrxoff Enables DTR hardware flow control mode on input.
-dtrxoff Disables DTR hardware flow control mode on input.
rtsxoff Enables RTS hardware flow control mode on input.
-rtsxoff Disables RTS hardware flow control mode on input.

Control Assignments

To assign a control character to a character string, type:

stty Control String
where the Control parameter may be the intr, quit, erase, kill, eof, eol, eol2, start, stop, susp, dsusp, reprint, discard, werase, lnext, min, or time character. (Use the min and time characters with the -icanon option.)
Note: The values for min and time are interpreted as integer values, not as character values.

The String parameter may be any single character such as c. An example of this control assignment is:

stty stop c

Another way of assigning control characters is to enter a character sequence composed of a \^ (backslash, caret) followed by a single character. If the single character after the ^ (caret) is one of the characters listed in the ^c (caret c) column of the following table, the corresponding control character value will be set. For example, to assign the DEL control character by using the ? (question mark) character, type the string \^? (backslash, caret, question mark), as in:

stty erase \^?
caret Control Characters in stty
^c Value
a, A <SOH>
b, B <STX>
c, C <ETX>
d, D <EOT>
e, E <ENQ>
f, F <ACK>
g, G <BEL>
h, H <BS>
i, I <HT>
j, J <LF>
k, K <VT>
l, L <FF>
m, M <CR>
n, N <SO>
o, O <SI>
p, P <DLE>
q, Q <DC1>
r, R <DC2>
s, S <DC3>
t, T <DC4>
u, U <NAK>
v, V <SYN>
w, W <ETB>
x, X <CAN>
y, Y <EM>
z, Z <SUB>
[ <ESC>
\ <FS>
] <GS>
^ <RS>
_ <US>
? <DEL>
@ <NUL>
Combination Modes Description
cooked See the -raw option.
ek Sets ERASE and KILL characters to the Ctrl-H and Ctrl-U key sequences, respectively.
evenp Enables parenb and cs7.
-evenp Disables parenb and sets cs8.
lcase, LCASE Sets xcase, iuclc, and olcuc. Used for workstations with uppercase characters only.
-lcase, -LCASE Sets -xcase, -iuclc, and -olcuc.
nl Sets -icrnl and -onlcr.
-nl Sets icrnl, onlcr, -inlcr, -igncr, -ocrnl, and -onlret.
oddp Enables parenb, cs7, and parodd.
-oddp Disables parenb and sets cs8.
parity See the evenp option.
-parity See the -evenp option.
sane Resets parameters to reasonable values.
raw Allows raw mode input (no input processing, such as erase, kill, or interrupt); parity bit passed back.
-raw Allows canonical input mode.
tabs Preserves tabs.
-tabs, tab3 Replaces tabs with spaces when printing.
Window size  Description
cols n, columns n The terminal (window) size is recorded as having n columns.
rows n The terminal (window) size is recorded as having n rows.
size Prints the terminal (window) sizes to standard output (first rows and then columns).

Obsolete Options

The following BSD options are supported by the stty command. For each of them, the recommended POSIX option is given.
Item Description
all Use the stty -a command to display all current settings.
crt Use the sane option to reset parameters to reasonable values.
crtbs Use the -echoe option.
crterase Use the echoe option.
-crterase Use the -echoe option.
crtkill Use the echoke option.
-crtkill Use the echok and -echoke options.
ctlecho Use the echoctl option.
-ctlecho Use the -echoctl option.
decctlq Use the -ixany option.
-decctlq Use the ixany option.
even Use the evenp option.
-even Use the -evenp option.
everything Use the stty -a command to display all current settings.
litout Use the -opost option.
-litout Use the opost option.
odd Use the oddp option.
-odd Use the -oddp option.
pass8 Use the -istrip option.
-pass8 Use the istrip option.
prterase Use the echoprt option.
speed Use the stty command to display current settings.
tandem Use the ixoff option.
-tandem Use the -ixoff option.

Examples

  1. To display a short listing of your workstation configuration, type:
    stty
    This lists settings that differ from the defaults.
  2. To display a full listing of your workstation configuration, type:
    stty  -a
  3. To enable a key sequence that stops listings from scrolling off the screen, type:
    stty ixon ixany
    This sets ixon mode, which lets you stop runaway listing by pressing the Ctrl-S key sequence. The ixany flag allows you to resume the listing by pressing any key. The normal workstation configuration includes the ixon and ixany flags, which allows you to stop a listing with the Ctrl-S key sequence that only the Ctrl-Q key sequence will restart.
  4. To reset the configuration after it has been messed up, type:
    Ctrl-J stty  sane Ctrl-J
    Press the Ctrl-J key sequence before and after the command instead of the Enter key. The system usually recognizes the Ctrl-J key sequence when the parameters that control Enter key processing are messed up.

    Sometimes the information displayed on the screen may look strange, or the system will not respond when you press the Enter key. This can happen when you use the stty command with parameters that are incompatible or that do things you don't understand. It can also happen when a screen-oriented application ends abnormally and does not have a chance to reset the workstation configuration.

    Entering the stty sane command sets a reasonable configuration, but it may differ slightly from your normal configuration.

  5. To save and restore the terminal's configuration:
    OLDCONFIG=`stty -g`          # save configuration
    stty -echo                   # do not display password
    echo "Enter password: \c"
    read PASSWD                  # get the password
    stty $OLDCONFIG              # restore configuration
    This command saves the workstation's configuration, turns off echoing, reads a password, and restores the original configuration.

    Entering the stty -echo command turns off echoing, which means that the password does not appear on the screen when you type it at the keyboard. This action has nothing to do with the echo command, which displays a message on the screen.

File

Item Description
/usr/bin/stty Contains the stty command.