stty 命令说明及使用讲解 |
|
|
http://blog.chinaunix.net/u/19203/showart_1913815.html
————————————————————————————————————————-
命令参考大全
stty 命令
用途
语法
描述
stty
命令对当前为标准输入的设备设置某些 I/O 选项。该命令将输出写到当前为标准输出的设备中。
这个操作系统的版本使用标准 《X/Open 可移植性指南,发行版 4》 接口来控制终端,保持与 POSIX 和 BSD 接口的兼容性。
stty
命令支持 POSIX 和 BSD 的适应选项,但强烈推荐使用 POSIX 选项。同样提供
废弃的 BSD 选项
列表(带有对应的 POSIX 选项)。
输入以下命令时,可以将 tty 设备的标准输入重定向:
stty -a </dev/ttyx
stty
命令(POSIX)将挂起并等待该 tty 的
open()
,直到确定 RS-232 载波检测信号。如果设置了
clocal
或
forcedcd
(仅对 128 端口)选项,这个规则将不适用。
标志
-a |
将所有选项设置的当前状态写到标准输出中。 |
-g |
将选项设置写到标准输出中,其格式可以由另一个 stty 命令使用。 |
选项
stty
命令支持以下选项类别:
控制模式 |
|
clocal |
假定一行没有调制解调器控制。 |
-clocal |
假定一行带有调制解调器控制。 |
cread |
启用接收器。 |
-cread |
禁用接收器。 |
cstopb |
每个字符选择两个停止位。 |
-cstopb |
每个字符选择一个停止位。 |
cs5 , cs6 , cs7 , cs8 |
选择字符大小。 |
hup , hupcl |
最后关闭时挂起拨号连接。 |
-hup , -hupcl |
最后关闭时不挂起拨号连接。 |
parenb |
启用奇偶性校验的生成和检测。 |
-parenb |
禁用奇偶性校验的生成和检测。 |
parodd |
选择奇校验。 |
-parodd |
选择偶校验。 |
0 |
立即挂起电话线路。 |
speed |
将工作站输入和输出速度设置为指定的 speed 数(以位/秒为单位)。并不是所有的硬件接口都支持所有的速度。 speed 的可能值有: 50 、 75 、 110 、 134 、 200 、 300 、 600 、 1200 、 1800 、 2400 、 4800 、 9600 、 19200 、 19.2 、 38400 、 38.4 、 exta 和 extb 。
注:
exta 、 19200 和 19.2 是同义词; extb 、 38400 和 38.4 是同义词。 |
ispeed speed |
将工作站输入速度设置为指定的 speed 数(以位/秒为单位)。并不是所有的硬件接口都支持所有的速度,而且并不是所有的硬件接口都支持该选项。 speed 的可能值与 speed 选项相同。 |
ospeed speed |
将工作站输出速度设置为指定的 speed 数(以位/秒为单位)。并不是所有的硬件接口都支持所有的速度,而且并不是所有的硬件接口都支持该选项。 speed 的可能值与 speed 选项相同。 |
输入模式 |
|
brkint |
中断时发出 INTR 信号。 |
-brkint |
中断时不发出 INTR 信号。 |
icrnl |
输入时将 CR 映射为 NL。 |
-icrnl |
输入时不将 CR 映射为 NL。 |
ignbrk |
输入时忽略 BREAK。 |
-ignbrk |
输入时不忽略 BREAK。 |
igncr |
输入时忽略 CR。 |
-igncr |
输入时不忽略 CR。 |
ignpar |
忽略奇偶错误。 |
-ignpar |
不忽略奇偶错误。 |
inlcr |
输入时将 NL 映射为 CR。 |
-inlcr |
输入时不将 NL 映射为 CR。 |
inpck |
启用奇偶校验。 |
-inpck |
禁用奇偶校验。 |
istrip |
将输入字符剥离到 7 位。 |
-istrip |
不将输入字符剥离到 7 位。 |
iuclc |
将大写字母字符映射为小写。 |
-iuclc |
不将大写字母字符映射为小写。 |
ixany |
允许任何字符重新启动输出。 |
-ixany |
只允许 START(Ctrl-Q 按键顺序)重新启动输出。 |
ixoff |
当输入队列接近空或满时,发送 START/STOP 字符。 |
-ixoff |
不发送 START/STOP 字符。 |
ixon |
启用 START/STOP 输出控制。一旦启用 START/STOP 输出控制,您可以按下 Ctrl-S 按键顺序暂停向工作站的输出,也可按下 Ctrl-Q 按键顺序恢复输出。 |
-ixon |
禁用 START/STOP 输出控制。 |
imaxbel |
当输入溢出时,回送 BEL 字符并且废弃最后的输入字符。 |
-imaxbel |
当输入溢出时,废弃所有输入。 |
parmrk |
标记奇偶错误。 |
-parmrk |
不标记奇偶错误。 |
输出方式 |
|
bs0 , bs1 |
为退格符选择延迟样式( bs0 表示没有延迟)。 |
cr0 , cr1 , cr2 , cr3 |
为 CR 字符选择延迟样式( cr0 表示没有延迟)。 |
ff0 , ff1 |
为换页选择延迟样式( ff0 表示没有延迟)。 |
nl0 , nl1 |
为 NL 字符选择延迟样式( nl0 表示没有延迟)。 |
ofill |
使用延迟填充字符。 |
-ofill |
使用延迟定时。 |
ocrnl |
将 CR 字符映射为 NL 字符。 |
-ocrnl |
不将 CR 字符映射为 NL 字符。 |
olcuc |
输出时将小写字母字符映射为大写。 |
-olcuc |
输出时不将小写字母字符映射为大写。 |
onlcr |
将 NL 字符映射为 CR-NL 字符。 |
-onlcr |
不将 NL 字符映射为 CR-NL 字符。 |
onlret |
在终端 NL 执行 CR 功能。 |
-onlret |
在终端 NL 不执行 CR 功能。 |
onocr |
不在零列输出 CR 字符。 |
-onocr |
在零列输出 CR 字符。 |
opost |
处理输出。 |
-opost |
不处理输出;即忽略所有其它输出选项。 |
ofdel |
使用 DEL 字符作为填充字符。 |
-ofdel |
使用 NUL 字符作为填充字符。 |
tab0 , tab1 , tab2 |
为水平制表符选择延迟样式( tab0 表示没有延迟)。 |
tab3 |
扩展制表符至多个空格。 |
vt0 , vt1 |
为垂直制表符选择延迟样式( vt0 表示没有延迟)。 |
本地模式 |
|
echo |
回送每个输入的字符。 |
-echo |
不回送字符。 |
echoctl |
以 ^X(Ctrl-X)回送控制字符,X 是将 100 八进制加到控制字符代码中给出的字符。 |
-echoctl |
不以 ^X(Ctrl-X)回送控制字符。 |
echoe |
以“backspace space backspace”字符串回送 ERASE 字符。
注:
该模式不保持对列位置的跟踪,因此您可能在擦除制表符和转义序列等符号时得到意外的结果。
|
-echoe |
不回送 ERASE 字符,只回送退格符。 |
echok |
在 KILL 字符后回送 NL 字符。 |
-echok |
在 KILL 字符后不回送 NL 字符。 |
echoke |
通过擦除输出行上的每个字符,回送 KILL 字符。 |
-echoke |
只回送 KILL 字符。 |
echonl |
回送 NL 字符。 |
-echonl |
不回送 NL 字符。 |
echoprt |
以 /(斜杠)和 \ (反斜杠) 向后回送擦除的字符。 |
-echoprt |
不以 /(斜杠)和 \ (反斜杠) 向后回送擦除的字符。 |
icanon |
启用规范输入(规范输入允许使用 ERASE 和 KILL 字符进行输入行的编辑)。请参阅 AIX 5L Version 5.2 Communications Programming Concepts 中的 Line Discipline Module (ldterm) 中关于 canonical mode input 的讨论。 |
-icanon |
禁用规范输入。 |
iexten |
指定从输入数据中识别实现性定义的功能。要识别以下控制字符,需要设置 iexten : eol2、dsusp、reprint、discard、werase、lnext。 与这些模式关联的功能也需要设置 iexten : imaxbel 、 echoke 、 echoprt 、 echoctl 。 |
-iexten |
指定从输入数据中识别实现性定义的功能。 |
isig |
启用对特殊控制字符(INTR、SUSP 和 QUIT)的字符检查。 |
-isig |
禁用对特殊控制字符(INTR、SUSP 和 QUIT)的字符检查。 |
noflsh |
不清除 INTR、SUSP 或 QUIT 控制字符之后的缓冲区。 |
-noflsh |
清除 INTR、SUSP 或 QUIT 控制字符之后的缓冲区。 |
pending |
下次读操作暂挂或输入到达时,要重新输入从原始模式转换为规范模式后被暂挂的输入。暂挂是一个内部状态位。 |
-pending |
没有文本暂挂。 |
tostop |
为背景输出发出 SIGTOU 信号。 |
-tostop |
不为背景输出发出 SIGTOU 信号。 |
xcase |
在输入中回送大写字符,并在输出显示的大写字符之前加上 \ (反斜杠)。 |
-xcase |
不在输入时回送大写字符。 |
硬件流量控制模式
这些选项是对 《X/Open 可移植性指南,发行版 4》 标准的扩展。
控制指定
要将一个控制字符指定到某字符串中,请输入:
stty Control String
其中,
Control
参数可以是 INTR、QUIT、ERASE、KILL、EOF、EOL、EOL2、START、STOP、SUSP、DSUSP、
REPRINT、DISCARD、WERASE、LNEXT、MIN 或 TIME 参数。(使用字符 MIN 和 TIME 时,请加上
-icanon
选项。)
String
参数可以是任何单一的字符,比如
c
。以下内容为控制赋值的示例:
stty STOP c
另一种指定控制字符的方法可以是:输入一个字符序列,它是由一个 \^ (反斜杠,插入记号) 后面跟着一个单一字符组成的。如果跟在 ^ (插入记号)后的单一字符是下表的
^
c(插入记号 c)栏中列出的字符之一,将设置相应的控制字符值。例如,要使用 ?(问号)字符指定 DEL 控制字符,请输入字符串
\^?
(反斜杠,插入记号,问号),如下:
stty ERASE \^?
^c | 替换值 | ^c | 替换值 | ^c | 替换值 |
---|---|---|---|---|---|
a, A |
<SOH> |
l, L |
<FF> |
w, W |
<ETB> |
b, B |
<STX> |
m, M |
<CR> |
x, X |
<CAN> |
c, C |
<ETX> |
n, N |
<SO> |
y, Y |
<EM> |
d, D |
<EOT> |
o, O |
<SI> |
z, Z |
<SUB> |
e, E |
<ENQ> |
p, P |
<DLE> |
[ |
<ESC> |
f, F |
<ACK> |
q, Q |
<DC1> |
\ |
<FS> |
g, G |
<BEL> |
r, R |
<DC2> |
] |
<GS> |
h, H |
<BS> |
s, S |
<DC3> |
^ |
<RS> |
i, I |
<HT> |
t, T |
<DC4> |
_ |
<US> |
j, J |
<LF> |
u, U |
<NAK> |
? |
<DEL> |
k, K |
<VT> |
v, V |
<SYN> |
@ |
<NUL> |
组合模式 |
|
cooked |
请参阅 -raw 选项。 |
ek |
分别将 ERASE 和 KILL 字符设置为 Ctrl-H 和 Ctrl-U 按键顺序。 |
evenp |
启用 parenb 和 cs7 。 |
-evenp |
禁用 parenb 并设置 cs8 。 |
lcase , LCASE |
设置 xcase , iuclc 和 olcuc 。在工作站只以大写字符使用。 |
-lcase , -LCASE |
设置 -xcase 、 -iuclc 和 -olcuc 。 |
nl |
设置 -icrnl 和 -onlcr 。 |
-nl |
设置 icrnl 、 onlcr 、 -inlcr 、 -igncr 、 -ocrnl 和 -onlret 。 |
oddp |
启用 parenb 、 cs7 和 parodd 。 |
-oddp |
禁用 parenb 并设置 cs8 。 |
parity |
请参阅 evenp 选项。 |
-parity |
请参阅 -evenp 选项。 |
sane |
将参数重新设置为合理的值。 |
raw |
允许原始模式输入(不包括输入处理,例如 erase、kill 或 interrupt);传回奇偶(校验)位。 |
-raw |
允许规范输入方式。 |
tabs |
保留制表符。 |
-tabs , tab3 |
打印时将制表符替换为空格。 |
窗口大小 |
|
cols n , columns n |
将终端(窗口)大小记录为有 n 列。 |
rows n |
将终端(窗口)大小记录为有 n 行。 |
size |
将终端(窗口)大小打印到标准输出(先是行,再是列)中。 |
废弃选项
stty
命令支持以下 BSD 选项。 对于每个选项,都给出了建议的 POSIX 选项。
all |
使用 stty -a 命令显示所有当前设置。 |
crt |
使用 sane 选项将参数重新设置为合理的值。 |
crtbs |
使用 -echoe 选项。 |
crterase |
使用 echoe 选项。 |
-crterase |
使用 -echoe 选项。 |
crtkill |
使用 echoke 选项。 |
-crtkill |
使用 echok 和 -echoke 选项。 |
ctlecho |
使用 echoctl 选项。 |
-ctlecho |
使用 -echoctl 选项。 |
decctlq |
使用 -ixany 选项。 |
-decctlq |
使用 ixany 选项。 |
even |
使用 evenp 选项。 |
-even |
使用 -evenp 选项。 |
everything |
使用 stty -a 命令显示所有当前设置。 |
litout |
使用 -opost 选项。 |
-litout |
使用 opost 选项。 |
odd |
使用 oddp 选项。 |
-odd |
使用 -oddp 选项。 |
pass8 |
使用 -istrip 选项。 |
-pass8 |
使用 istrip 选项。 |
prterase |
使用 echoprt 选项。 |
speed |
使用 stty 命令显示当前设置。 |
tandem |
使用 ixoff 选项。 |
-tandem |
使用 -ixoff 选项。 |
示例
-
要显示您的工作站配置的简短列表,请输入:
stty
这将列出与缺省值不同的设置。
-
要显示您的工作站配置的完整列表,请输入:
-
要启用停止列表滚动出屏幕的按键顺序,请输入:
stty ixon ixany
这将设置
ixon
模式,从而可以通过按下 Ctrl-S 按键顺序来停止列表的滚动。
ixany
标志允许按任意键来恢复列表的滚动。正常的工作站配置包含
ixon
和
ixany
标志,使您可以用 Ctrl-S 按键顺序停止列表的滚动,而只有 Ctrl-Q 按键顺序才能使列表重新滚动。 -
要重新设置搞乱的配置,请输入:
在命令前后按 Ctrl-J 按键顺序,而不是按 Enter 键。当控制 Enter 键处理的参数搞乱时,系统通常能识别 Ctrl-J 按键顺序。
有时屏幕上显示的信息可能看上去很奇怪,或当您按 Enter 键时系统不反应。当您使用
stty
命令,而它带有不兼容的参数或参数的操作难以理解时,可能会发生这种情况。当面向屏幕的应用程序异常结束并且无法复位工作站配置时,也可能发生这种情况。输入
stty sane
命令设置合理的配置,但它可能与您的正常配置略有不同。 -
要保存和恢复终端的配置:
OLDCONFIG=`stty -g` # save configuration stty -echo # do not display password echo "Enter password: \c" read PASSWD # get the password stty $OLDCONFIG # restore configuration
该命令保存工作站的配置、关闭回送信号、读取密码并恢复原始配置。
输入
stty
–
echo
命令关闭回送信号,这意味着当您在键盘上输入密码时,密码并不出现在屏幕上。此操作与
echo
命令(该命令在屏幕上显示消息)毫无关系
====
http://study.chyangwa.com/IT/AIX/aixcmds5/stty.htm#amcmi3a1manu
—————————————————————————————————-
4.5.2. The stty Command
The name
stty
probably means “set tty,” but the
stty
command can also be used to display a terminal’s configuration. Perhaps even more so than
setserial
, the
stty
command provides a bewildering number of characteristics you can configure. We’ll cover the most important of these in a moment. You can find the rest described in the
stty
manual page.
The
stty
command is most commonly used to configure terminal parameters, such as whether characters will be echoed or what key should generate a break signal. We explained earlier that serial devices are tty devices and the
stty
command is therefore equally applicable to them.
One of the more important uses of the
stty
for serial devices is to enable hardware handshaking on the device. We talked briefly about hardware handshaking earlier. The default configuration for serial devices is for hardware handshaking to be disabled. This setting allows “three wire” serial cables to work; they don’t support the necessary signals for hardware handshaking, and if it were enabled by default, they’d be unable to transmit any characters to change it.
Surprisingly, some serial communications programs don’t enable hardware handshaking, so if your modem supports hardware handshaking, you should configure the modem to use it (check your modem manual for what command to use), and also configure your serial device to use it. The
stty
command has a
crtscts
flag that enables hardware handshaking on a device; you’ll need to use this. The command is probably best issued from the
rc.serial
file (or equivalent) at boot time using commands like those shown in
Example 4-3
.
Example 4-3. Example rc.serial stty Commands
#
stty crtscts < /dev/ttyS0
stty crtscts < /dev/ttyS1
stty crtscts < /dev/ttyS2
stty crtscts < /dev/ttyS3
#
The
stty
command works on the current terminal by default, but by using the input redirection (“<“) feature of the shell, we can have
stty
manipulate any tty device. It’s a common mistake to forget whether you are supposed to use “<” or “>”; modern versions of the
stty
command have a much cleaner syntax for doing this. To use the new syntax, we’d rewrite our sample configuration to look like that shown in
Example 4-4
.
Example 4-4. Example rc.serial stty Commands Using Modern Syntax
#
stty crtscts -F /dev/ttyS0
stty crtscts -F /dev/ttyS1
stty crtscts -F /dev/ttyS2
stty crtscts -F /dev/ttyS3
#
We mentioned that the
stty
command can be used to display the terminal configuration parameters of a tty device. To display all of the active settings on a tty device, use:
$ stty -a -F /dev/ttyS1
The output of this command, shown in
Example 4-5
, gives you the status of all flags for that device; a flag shown with a preceding minus, as in
–crtscts
, means that the flag has been turned off.
Example 4-5. Output of stty -a Command
speed 19200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-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
A description of the most important of these flags is
given in
Table 4-2
. Each of these flags is enabled by supplying it to
stty
and disabled by supplying it to
stty
with the – character in front of it. Thus, to disable hardware handshaking on the
ttyS0
device, you would use:
$ stty -crtscts -F /dev/ttyS0
Table 4-2. stty Flags Most Relevant to Configuring Serial Devices
Flags Description
N
Set the line speed to
N
bits per second.
crtsdts
Enable/Disable hardware handshaking.
ixon
Enable/Disable XON/XOFF flow control.
clocal
Enable/Disable modem control signals such as DTR/DTS and DCD. This is necessary if you are using a “three wire” serial cable because it does not supply these signals.
cs5 cs6 cs7 cs8
Set number of data bits to 5, 6, 7, or 8, respectively.
parodd
Enable odd parity. Disabling this flag enables even parity.
parenb
Enable parity checking. When this flag is negated, no parity is used.
cstopb
Enable use of two stop bits per character. When this flag is negated, one stop bit per character is used.
echo
Enable/Disable echoing of received characters back to sender.
The next example combines some of these flags and sets the
ttyS0
device to 19,200 bps, 8 data bits, no parity, and hardware handshaking with echo disabled:
$ stty 19200 cs8 -parenb crtscts -echo -F /dev/ttyS0
====
http://linux.about.com/od/lna_guide/a/gdelna38t01.htm