stty
change and print terminal line settings
Synopsis
stty
[-F DEVICE | --file=DEVICE] [SETTING]...
stty [-F DEVICE | --file=DEVICE]
[-a|--all]
stty [-F DEVICE | --file=DEVICE]
[-g|--save]
add an example, a script, a trick and tips
examples
source
Bash command substitution not working as expected
The reason that it doesn't work is because stty
is
executed within a pipe. Therefore it doesn't "see" the underlying
terminal. In your script you could store the terminal width in a
variable like
size=`stty size | cut -d" " -f2`
and then use that next:
tail $FILE | cut -c -$size
description
Print or change
terminal characteristics.
-a, --all
print all current settings in
human-readable form
-g,
--save
print all current settings in a
stty-readable form
-F,
--file=DEVICE
open and use the specified
DEVICE instead of stdin
--help
display this help and exit
--version
output version information and
exit
Optional
- before SETTING indicates negation. An * marks
non-POSIX settings. The underlying system defines
which settings are available.
Special
characters:
* dsusp CHAR
CHAR will send a terminal stop
signal once input flushed
eof CHAR
CHAR will send an end of file
(terminate the input)
eol CHAR
CHAR will end the line
* eol2 CHAR
alternate CHAR for ending the
line
erase CHAR
CHAR will erase the last
character typed
intr CHAR
CHAR will send an interrupt
signal
kill CHAR
CHAR will erase the current
line
* lnext CHAR
CHAR will enter the next
character quoted
quit CHAR
CHAR will send a quit
signal
* rprnt CHAR
CHAR will redraw the current
line
start CHAR
CHAR will restart the output
after stopping it
stop CHAR
CHAR will stop the output
susp CHAR
CHAR will send a terminal stop
signal
* swtch CHAR
CHAR will switch to a different
shell layer
* werase CHAR
CHAR will erase the last word
typed
Special
settings:
N
set the input and output speeds to N bauds
* cols N
tell the kernel that the
terminal has N columns
* columns N
same as cols N
ispeed N
set the input speed to N
* line N
use line discipline N
min N
with -icanon, set N characters minimum for
a completed read
ospeed N
set the output speed to N
* rows N
tell the kernel that the
terminal has N rows
* size
print the number of rows and columns according to the
kernel
speed
print the terminal speed
time N
with -icanon, set read timeout of N tenths
of a second
Control
settings:
[-]clocal
disable modem control
signals
[-]cread
allow input to be received
* [-]crtscts
enable RTS/CTS handshaking
csN
set character size to N bits, N in [5..8]
[-]cstopb
use two stop bits per character
(one with ’-’)
[-]hup
send a hangup signal when the last process closes the
tty
[-]hupcl
same as [-]hup
[-]parenb
generate parity bit in output
and expect parity bit in input
[-]parodd
set odd parity (or even parity
with ’-’)
Input
settings:
[-]brkint
breaks cause an interrupt
signal
[-]icrnl
translate carriage return to
newline
[-]ignbrk
ignore break characters
[-]igncr
ignore carriage return
[-]ignpar
ignore characters with parity
errors
* [-]imaxbel
beep and do not flush a full
input buffer on a character
[-]inlcr
translate newline to carriage
return
[-]inpck
enable input parity
checking
[-]istrip
clear high (8th) bit of input
characters
* [-]iutf8
assume input characters are
UTF-8 encoded
* [-]iuclc
translate uppercase characters
to lowercase
* [-]ixany
let any character restart
output, not only start character
[-]ixoff
enable sending of start/stop
characters
[-]ixon
enable XON/XOFF flow
control
[-]parmrk
mark parity errors (with a
255-0-character sequence)
[-]tandem
same as [-]ixoff
Output
settings:
* bsN
backspace delay style, N in [0..1]
* crN
carriage return delay style, N in [0..3]
* ffN
form feed delay style, N in [0..1]
* nlN
newline delay style, N in [0..1]
* [-]ocrnl
translate carriage return to
newline
* [-]ofdel
use delete characters for fill
instead of null characters
* [-]ofill
use fill (padding) characters
instead of timing for delays
* [-]olcuc
translate lowercase characters
to uppercase
* [-]onlcr
translate newline to carriage
return-newline
* [-]onlret
newline performs a carriage
return
* [-]onocr
do not print carriage returns
in the first column
[-]opost
postprocess output
* tabN
horizontal tab delay style, N in [0..3]
* tabs
same as tab0
* -tabs
same as tab3
* vtN
vertical tab delay style, N in [0..1]
Local
settings:
[-]crterase
echo erase characters as
backspace-space-backspace
* crtkill
kill all line by obeying the
echoprt and echoe settings
* -crtkill
kill all line by obeying the
echoctl and echok settings
* [-]ctlecho
echo control characters in hat
notation (’^c’)
[-]echo
echo input characters
* [-]echoctl
same as [-]ctlecho
[-]echoe
same as [-]crterase
[-]echok
echo a newline after a kill
character
* [-]echoke
same as [-]crtkill
[-]echonl
echo newline even if not
echoing other characters
* [-]echoprt
echo erased characters
backward, between ’\’ and ’/’
[-]icanon
enable erase, kill, werase, and
rprnt special characters
[-]iexten
enable non-POSIX special
characters
[-]isig
enable interrupt, quit, and
suspend special characters
[-]noflsh
disable flushing after
interrupt and quit special characters
* [-]prterase
same as [-]echoprt
* [-]tostop
stop background jobs that try
to write to the terminal
* [-]xcase
with icanon, escape with
’\’ for uppercase characters
Combination
settings:
* [-]LCASE
same as [-]lcase
-cbreak
same as icanon
cooked
same as brkint ignpar istrip icrnl ixon opost isig
icanon, eof and eol characters to their default values
-cooked
same as raw
crt
same as echoe echoctl echoke
dec
same as echoe echoctl echoke -ixany intr ^c
erase 0177 kill ^u
* [-]decctlq
same as [-]ixany
ek
erase and kill characters to their default values
evenp
same as parenb -parodd cs7
-evenp
same as -parenb cs8
* [-]lcase
same as xcase iuclc olcuc
litout
same as -parenb -istrip -opost
cs8
-litout
same as parenb istrip opost
cs7
nl
same as -icrnl -onlcr
-nl
same as icrnl -inlcr -igncr onlcr
-ocrnl -onlret
oddp
same as parenb parodd cs7
-oddp
same as -parenb cs8
[-]parity
same as [-]evenp
pass8
same as -parenb -istrip cs8
-pass8
same as parenb istrip cs7
raw
same as -ignbrk -brkint -ignpar
-parmrk -inpck -istrip -inlcr
-igncr -icrnl -ixon -ixoff
-iuclc -ixany -imaxbel -opost
-isig -icanon -xcase min 1 time 0
-raw
same as cooked
sane
same as cread -ignbrk brkint
-inlcr -igncr icrnl -iutf8
-ixoff -iuclc -ixany imaxbel opost
-olcuc -ocrnl onlcr -onocr
-onlret -ofill -ofdel nl0 cr0 tab0 bs0
vt0 ff0 isig icanon iexten echo echoe echok -echonl
-noflsh -xcase -tostop -echoprt
echoctl echoke, all special characters to their default
values
Handle the tty
line connected to standard input. Without arguments, prints
baud rate, line discipline, and deviations from stty sane.
In settings, CHAR is taken literally, or coded as in ^c,
0x37, 0177 or 127; special values ^- or undef used to
disable special characters.
copyright
Copyright © 2012 Free Software Foundation, Inc. License GPLv3+:
GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute
it. There is NO WARRANTY, to the extent permitted by law.
reporting bugs
Report stty bugs to bug-coreutils[:at:]gnu[:dot:]org
GNU coreutils home page:
<http://www.gnu.org/software/coreutils/>
General help using GNU software:
<http://www.gnu.org/gethelp/>
Report stty translation bugs to
<http://translationproject.org/team/>
see also
The full
documentation for stty is maintained as a Texinfo
manual. If the info and stty programs are
properly installed at your site, the command
info
coreutils 'stty invocation'
should give you
access to the complete manual.
author
Written by
David MacKenzie.