Set tty attributes (POSIX)
stty [-a|-g] [operands] [< device]
QNX Neutrino, Linux, Microsoft Windows
The stty utility sets and/or reports terminal I/O characteristics for the device that is its standard input. If no operands are specified, stty displays the settings. If operands are given, then stty changes the terminal state to reflect those settings.
Terminal settings fall into two major categories:
If you're at a shell prompt, your terminal is probably in the default system edit mode. A full-screen program such as an editor, on the other hand, typically puts the terminal into raw mode.
Normally, stty displays only significant settings relative to the system default settings for edit or raw, and displays only the defined control characters. If -a or -g is specified, then stty displays all the settings.
The stty utility manages a very large number of potential terminal attributes and control characters. Most of these parameters are very device-specific and seldom need to be changed by the user. Programs often change these terminal attributes in the course of their operation, and upon occasion (such as abnormal termination) may leave the terminal settings in an unknown state. The stty +edit option is a convenient method of restoring a terminal to a usable state.
The tables below list the operands supported by stty. In these tables, the following conventions are used:
Char pair | Hex |
---|---|
^- | 00 (undefined) |
^A to ^Z | 01 to 1A |
^[ | 1B |
^\ | 1C |
^] | 1D |
^^ | 1E |
^_ | 1F |
^? | 7F |
Some options can start with either + or -:
If you don't specify + or -, + is assumed.
Also note that the = character is optional in operands of the form keyword=value.
The following descriptions give the action taken when the option is on. |
Parameter | Defines |
---|---|
baud=number | Input and output baud rates |
ispeed=number | Input baud rate |
ospeed=number | Output baud rate |
par=none | No parity (same as -parenb) |
par=odd | Odd parity (same as +parenb, +parodd, -parstk) |
par=even | Even parity (same as +parenb, -parodd, -parstk) |
par=mark | Mark parity (same as +parenb,+parodd, +parstk) |
par=space | Space parity (same as +parenb, -parodd, +parstk) |
bits=5 | 5-bit characters |
bits=6 | 6-bit characters |
bits=7 | 7-bit characters |
bits=8 | 8-bit characters |
stopb=2 | 2-stop bits |
stopb=1 | 1-stop bits |
{+|-}parenb | Enable parity |
+parodd | Odd parity |
-parodd | Even parity |
{+|-}parstk | Stick parity |
+cs5 | Same as bits=5 |
+cs6 | Same as bits=6 |
+cs7 | Same as bits=7 |
+cs8 | Same as bits=8 |
+cstopb | Same as stopb=2 |
-cstopb | Same as stopb=1 |
number | Same as baud=number |
+evenp | Same as par=even, bits=7 |
-evenp | Same as par=none, bits=8 |
+parity | Same as par=even, bits=7 |
-parity | Same as par=none, bits=8 |
+oddp | Same as par=odd, bits=7 |
-oddp | Same as par=none, bits=8 |
{+|-}hupcl | Hangup on last close |
{+|-}hup | Same as hupcl |
{+|-}cread | Enable receiver |
{+|-}clocal | Assume no modem control |
{+|-}ihflow | Enable hardware input flow control |
{+|-}ohflow | Enable hardware output flow control |
{+|-}isflow | Enable software input flow control |
{+|-}osflow | Enable software output flow control |
{+|-}ihpaged | Input is paged by hardware flow control |
{+|-}ohpaged | Output is paged by hardware flow control |
{+|-}ispaged | Input is paged by software flow control |
{+|-}ospaged | Output is paged by software flow control |
rows=value[,value] | The number of rows and (optionally) columns of the terminal |
Parameter | Defines |
---|---|
{+|-}ignbrk | Ignore received hardware breaks |
{+|-}brkint | Generate SIGINT upon break |
{+|-}ignpar | Ignore parity errors |
[-]imaxbel | Beep and don't flush a full input buffer on a character |
{+|-}parmrk | Mark parity errors |
{+|-}inpck | Enable software parity checking |
{+|-}istrip | Strip 7th bit from received characters |
{+|-}inlcr | Map NL into CR on input |
{+|-}onlcr | Map NL into CR on output |
{+|-}igncr | Ignore received CR |
{+|-}icrnl | Map CR into NL on input |
{+|-}ixon | Same as osflow |
{+|-}ixoff | Same as isflow |
{+|-}isig | Generate signals upon receipt of special characters |
{+|-}icanon | Enable input line editing |
{+|-}iexten | Enable “extra” special characters |
{+|-}echo | Echo received characters |
{+|-}echoctl | Echo control characters in hat notation (e.g ^c) |
{+|-}echoe | Erase character erases displayed character |
{+|-}echok | Echo a newline after a kill character |
{+|-}echoke | Kill character erases displayed line |
{+|-}echonl | Echo NL, even if ECHO is off |
{+|-}noflsh | Don't flush I/O after INTR, QUIT, or SUSP |
min=number | Minimum characters required to satisfy raw input |
time=number | Timeout value for raw input |
{+|-}tostop | Send SIGTTOU for background output. |
+nl | Same as +icrnl |
-nl | Same as -icrnl, -inlcr, -igncr |
+sane | Reset all parameters to sane values based on current mode (edit/raw) |
+fix | Same as +sane |
+edit | Reset parameters to system default edit mode |
+flush | Flush all pending input and output |
+raw | Reset parameters to system default raw mode |
Parameter | Defines |
---|---|
{+|-}opost | Post-process output data |
Parameter | Defines |
---|---|
discard=value | Discard character |
dsusp=value | Character for sending a terminal stop signal once input is flushed |
eof=value | End-of-file character |
eol=value | End-of-line character |
eol2=value | Alternative end-of-line character |
erase=value | Delete previous character |
fwd=value | Forwarding or framing character; if this character is set, then readcond() returns when either the read length is reached or the FWD character is found in the data stream. For more information, see the entry for readcond() in the QNX Neutrino Library Reference. |
intr=value | Generate SIGINT character |
kill=value | Delete entire line character |
lnext=value | Character for entering the next character quoted |
quit=value | Generate SIGQUIT character |
reprint=value | Character for redrawing the current line |
susp=value | Generate SIGTSTP character |
swtch=value | Character for switching to a different shell layer |
stop=value | Stop output |
start=value | Resume output |
+ek | Resets ERASE and KILL to system defaults |
werase=value | Character for erasing the last word typed |
QNX Neutrino supports multicharacter sequences to support editing capabilities in addition to the basic “erase” and “kill” functions. All of these sequences are assumed to start with an (up to) 4-character prefix, a single-character action, followed by an (up to) 4-character suffix. Typically, the cursor keys on your terminal are used for these functions.
Parameter | Meaning |
---|---|
+load | Set editing keys based on currently defined terminal type |
term=name | Set editing keys for the specified type of terminal |
pr1=value | First character of prefix |
pr2=value | Second character of prefix |
pr3=value | Third character of prefix |
pr4=value | Fourth character of prefix |
sf1=value | First character of suffix |
sf2=value | Second character of suffix |
sf3=value | Third character of suffix |
sf4=value | Fourth character of suffix |
The following are action characters when preceded by prefix (subsequent suffix are discarded).
Parameter | Meaning |
---|---|
up=value | Recall previous line |
down=value | Recall next line |
left=value | Move cursor left |
right=value | Move cursor right |
ins=value | Toggle insert mode |
del=value | Delete current character |
rub=value | Delete previous character |
can=value | Delete entire line character |
home=value | Move cursor to beginning of line |
end=value | Move cursor to end of line |
Display settings of the terminal to which stty is attached:
stty
Display settings of a specified device:
stty < /dev/ser1
Change the baud rate of a specified device:
stty baud=1200 < /dev/ser1
Put terminal into a fixed, sane state:
stty +sane
Set editing keys to VT100 values:
stty term=vt100
Restore settings from a shell variable:
stty $saveterm
The stty utility quietly accepts all of the documented options, but some of the current managers might not support them.