手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

stty(1)

名称

stty - 设置终端的选项

用法概要

/usr/bin/stty [-a] [-g]
/usr/bin/stty [modes]
/usr/xpg4/bin/stty [-a | 
-g]
/usr/xpg4/bin/stty [modes]
/usr/xpg6/bin/stty [-a | 
-g]
/usr/xpg6/bin/stty [modes]

描述

stty 实用程序用于设置作为当前标准输入的设备的某些终端 I/O 选项。不带参数时,stty 将报告某些选项的设置。

在此报告中,如果某个字符前面带有一个插入记号 (^),则该选项的值是相对应的控制字符(例如,^h 就是 CTRL-h)。在这种情况下,请记住 CTRL-h 与 BACKSPACE 键相同)。序列 ^@ 表示选项具有空值。

有关从“控制模式”到“本地模式”列出的各种模式的详细信息,请参见 termio(7I)。有关在“硬件流控制模式”和“时钟模式”下列出的模式的详细信息,请参见 termiox(7I)

"组合模式"部分中介绍的操作数是使用前面部分中的选项实现的。请注意,许多选项组合没有意义,不会执行合理性检查。可能并不是所有硬件接口都支持硬件流控制和时钟模式选项。

选项

支持以下选项:

–a

将该终端的所有选项设置写入到标准输出。

–g

以一种可用作其他 stty 命令的参数的格式报告当前设置。如果底层驱动程序支持 termios 类型输出,则发出该输出。否则,它会发出 termio 类型输出。

操作数

支持以下模式操作数:

控制模式

parenb(–parenb)

启用(禁用)奇偶校验生成和检测。

parext(–parext)

启用(禁用)支持 mark 和 space 校验的扩展奇偶校验生成和检测。

parodd(–parodd)

如果已启用 parext,则选择奇(偶)校验或 mark (space) 校验。

cs5 cs6 cs7 cs8

选择字符大小(请参见 termio(7I))。

0

立即挂起线路。

hupcl (–hupcl)

最后关闭时挂起(不挂起)连接。

hup (–hup)

hupcl(–hupcl) 相同。

cstopb (–cstopb)

每个字符使用两个(一个)停止位。

cread (–cread)

启用(禁用)接收器。

crtscts (-crtscts)

启用输出硬件流控制。建立 RTS(请求发送)调制解调器控制线路。暂停输出,直至建立 CTS(清除发送)线路。

crtsxoff (–crtsxoff)

启用输入硬件流控制。建立 RTS(请求发送)调制解调器控制线路以接收数据。RTS 为低时暂停输入。

clocal (–clocal)

假定一条不带(带)调制解调器控制的线路。

defeucw

将多字节字符的宽度设置为在由 LC_CTYPE 指定的当前语言环境中定义的值。在内部,宽度按照每个字符的字节数以及每个字符的屏幕或显示列数来表示。

110 300 600 1200 1800
2400 4800 9600 19200
38400 357600 76800 115200
153600 230400 307200 460800

如有可能,将终端波特率设置为给定数值。(并不是所有硬件接口都支持所有速度。)

ispeed 0 110 300 600 1200
1800 2400 4800 9600 19200
38400 57600 76800 115200
153600 230400 307200 460800

如有可能,将终端输入波特率设置为给定数值。(并不是所有硬件都支持分离波特率。)如果将输入波特率设置为 0,则输入波特率将由输出波特率的值指定。

ospeed 0 110 300 600 1200
1800 2400 4800 9600 19200
38400 57600 76800 115200
153600 230400 307200 460800

如有可能,将终端输出波特率设置为给定数值。(并不是所有硬件都支持分离波特率。)如果将输出波特率设置为 0,则会立即将线路挂起。

输入模式

ignbrk (–ignbrk)

输入时忽略(不忽略)断开。

brkint (–brkint)

断开时发送(不发送)INTR 信号。

ignpar (–ignpar)

忽略(不忽略)奇偶校验错误。

parmrk (–parmrk)

标记(不标记)奇偶校验错误(请参见 termio(7I))。

inpck (–inpck)

启用(禁用)输入奇偶校验检查。

istrip (–istrip)

将输入字符分离(不分离)为七位。

inlcr (–inlcr)

将 NL 映射(不映射)为输入中的 CR。

igncr (–igncr)

忽略(不忽略)输入中的 CR。

icrnl (–icrnl)

将 CR 映射(不映射)为输入中的 NL。

iuclc (–iuclc)

将大写字符映射(不映射)为输入中的小写字母。

ixon (–ixon)

启用(禁用)START/STOP 输出控制。通过发送 STOP 控制字符停止输出,并通过发送 START 控制字符启动输出。

ixany (–ixany)

允许任何字符(仅限 DC1)重新启动输出。

ixoff (–ixoff)

请求系统在输入队列几乎为空/满时发送(不发送)START/STOP 字符。

imaxbel (–imaxbel)

输入行过长时回显(不回显)BEL。如果设置了 imaxbel,则在输入流溢出时回显 ASCII BEL 字符(十六进制 07)。不存储其他输入,但不会打乱已存在的任何输入。如果未设置 –imaxbel,则不回显 BEL 字符,并且在输入流溢出的情况下,将会丢弃输入队列中存在的所有未读输入。

输出模式

opost (–opost)

后处理输出(不后处理输出;忽略所有其他输出模式)。

olcuc (–olcuc)

将小写字母映射(不映射)为输出中的大写字母。

onlcr (–onlcr)

将 NL 映射(不映射)为输出中的 CR-NL。

ocrnl (–ocrnl)

将 CR 映射(不映射)为输出中的 NL。

onocr (–onocr)

在第 0 列上不输出(输出)CR。

onlret (–onlret)

在终端上 NL 执行(不执行)CR 函数。

ofill (–ofill)

针对延迟使用填充字符(使用计时)。

ofdel (–ofdel)

填充字符为 DEL (NUL)。

cr0 cr1 cr2 cr3

选择回车的延迟样式(请参见 termio(7I))。

nl0 nl1

选择换行符的延迟样式(请参见 termio(7I))。

tab0 tab1 tab2 tab3

选择水平制表符的延迟样式(请参见 termio(7I))。

bs0 bs1

选择退格键的延迟样式(请参见 termio(7I))。

ff0 ff1

选择换页符的延迟样式(请参见 termio(7I))。

vt0 vt1

选择垂直制表符的延迟样式(请参见 termio(7I))。

本地模式

isig(–isig)

启用(禁用)按照特殊控制字符 INTR、QUIT、SWTCH 和 SUSP 来检查字符。有关 SWTCH 的信息,请参见“附注”部分。

icanon (–icanon)

启用(禁用)规范输入(ERASE 和 KILL 处理)。请不要设置 MINTIME

xcase (–xcase)

规范(未处理的)大写/小写显示。

echo (–echo)

回显(不回显)每个键入的字符。

echoe (–echoe)

将 ERASE 字符回显(不回显)为退格键-空格-退格键字符串。这种模式会擦除许多 CRT 终端上的 ERASEed 字符;不过,它不会跟踪列位置,对于转义的字符、制表符和退格键来说,可能会造成混乱。

echok(–echok)

在 KILL 字符后面回显(不回显)NL。

lfkc (–lfkc)

echok(–echok) 相同;已过时。

echonl (–echonl)

回显(不回显)NL。

noflsh (–noflsh)

在 INTR、QUIT 或 SUSP 之后禁用(启用)刷新。

stwrap (–stwrap)

禁用(启用)将同步行上长于 79 个字符的行截断。

tostop (–tostop)

当后台进程写入到终端时发送(不发送)SIGTTOU。

echoctl (–echoctl )

将控制字符回显(不回显)为 ^char,将 DEL 回显(不回显)为 ^?

echoprt (–echoprt )

将删除字符回显(不回显)为字符 "erased"(已删除)。

echoke (–echoke )

在终止行时,BS-SP-BS 删除(不 BS-SP-BS 删除)整行。

flusho (–flusho )

正在刷新(未正在刷新)输出。

pendin (–pendin )

在下一个读取或输入字符处重新键入(不重新键入)暂挂输入。

iexten (–iexten )

启用(禁用)当前未由 icanonisigixonixoff 控制的特殊控制字符:VEOLVSWTCHVREPRINTVDISCARDVDSUSPVWERASEVLNEXT

stflush (–stflush )

在每个 write(2) 之后的同步行上启用(禁用)刷新。

stappl (–stappl)

在同步行上使用应用程序模式(使用行模式)。

硬件流控制模式

rtsxoff (–rtsxoff)

在输入中启用(禁用) RTS 硬件流控制。

ctsxon (–ctsxon)

在输出中启用(禁用) CTS 硬件流控制。

dtrxoff (–dtrxoff)

在输入中启用(禁用) DTR 硬件流控制。

cdxon (–cdxon)

在输出中启用(禁用) CD 硬件流控制。

isxoff (–isxoff)

在输入中启用(禁用)等时硬件流控制。

时钟模式

xcibrg

从内部波特率发生器获取发送时钟。

xctset

从发送器信号元件计时(DCE 源)线、CCITT V.24 线路 114、EIA-232-D 针 15 获取发送时钟。

xcrset

从接收器信号元件计时(DCE 源)线、CCITT V.24 线路 115、EIA-232-D 针 17 获取发送时钟。

rcibrg

从内部波特率发生器获取接收时钟。

rctset

从发送器信号元件计时(DCE 源)线、CCITT V.24 线路 114、EIA-232-D 针 15 获取接收时钟。

rcrset

从接收器信号元件计时(DCE 源)线、CCITT V.24 线路 115、EIA-232-D 针 17 获取接收时钟。

tsetcoff

未提供发送器信号元件计时时钟。

tsetcrbrg

在发送器信号元件计时(DTE 源)线、CCITT V.24 线路 113、EIA-232-D 针 24 上输出接收波特率发生器。

tsetctbrg

在发送器信号元件计时(DTE 源)线、CCITT V.24 线路 113、EIA-232-D 针 24 上输出发送波特率发生器。

tsetctset

在发送器信号元件计时(DTE 源)线、CCITT V.24 线路 113、EIA-232-D 针 24 上输出发送器信号元件计时(DCE 源)。

tsetcrset

在发送器信号元件计时(DTE 源)线、CCITT V.24 线路 113、EIA-232-D 针 24 上输出接收器信号元件计时(DCE 源)。

rsetcoff

未提供接收器信号元件计时时钟。

rsetcrbrg

在接收器信号元件计时(DTE 源)线、CCITT V.24 线路 128 、无 EIA-232-D 针输出接收波特率发生器。

rsetctbrg

在接收器信号元件计时(DTE 源)线、CCITT V.24 线路 128 、无 EIA-232-D 针输出发送波特率发生器。

rsetctset

在接收器信号元件计时(DTE 源)线、CCITT V.24 线路 128、无 EIA-232-D 针输出发送器信号元件计时(DCE 源)。

rsetcrset

在接收器信号元件计时(DTE 源)线、CCITT V.24 线路 128、无 EIA-232-D 针、输出接收器信号元件计时(DCE 源)。

控制赋值

control-character c

control-character 设置为 c,其中:

control-character

ctabdiscarddsuspeofeoleol2eraseintrkilllnextquitreprintstartstopsuspswtchwerasectab 用于 –stappl,请参见 termio(7I))。有关 swtch 的信息,请参见“附注”部分。

c

如果 c 是单个字符,则控制字符设置为该字符。

在 POSIX 语言环境中,如果 c 前面有一个表示从 shell 转义的插入记号 (^),并且是下表的 ^c 列中列出的项之一,则它所使用的值(在 Value 列中)是相应的控制字符(例如,"^d" 是 CTRL-d)。``"^?" 被解释为 DEL,而 "^−" 被解释为未定义。

^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>
min number
time number

mintime 的值设置为 numberMINTIME 在非规范模式输入处理 (–icanon) 中使用。

line i

将线路规程设置为 i (0< i <127)。

组合模式

saved settings

将当前终端特性设置为由 –g 选项生成的已保存设置。

evenpparity

启用 parenbcs7,或禁用 parodd

oddp

启用 parenbcs7parodd

spacep

启用 parenbcs7parext

markp

启用 parenbcs7paroddparext

–parity–evenp

禁用 parenb 并设置 cs8

–oddp

禁用 parenbparodd 并设置 cs8

–spacep

禁用 parenbparext 并设置 cs8

–markp

禁用 parenbparoddparext 并设置 cs8

raw–rawcooked

启用(禁用)原始输入和输出。原始模式等效于设置:

stty cs8 -icanon min 1 time 0 -isig -xcase \
    -inpck -opost

/usr/bin/stty, /usr/xpg6/bin/stty

nl (–nl)

取消设置(设置)icrnlonlcr。此外,–nl 还会取消设置 inlcrigncrocrnlonlret

/usr/xpg4/bin/stty

nl (–nl)

设置(取消设置)icrnl。此外, –nl 还会取消设置 inlcrigncrocrnlonlret–nl 会设置 onlcrnl 会取消设置 onlcr

lcase (–lcase)

设置(取消设置)xcaseiuclcolcuc

LCASE (–LCASE)

lcase(–lcase) 相同。

tabs–tabstab3

打印时保留(扩展为空格)制表符。

ek

将 ERASE 和 KILL 分别重置为正常 DEL 和 CTRL-u。

sane

将所有模式重置为某种合理的值。

term

设置所有适合终端类型 term 的模式,其中,termtty33tty37vt05tn300ti700tek 之一。

async

设置正常异步通信,其中,时钟设置为 xcibrgrcibrgtsetcoffrsetcoff

窗口大小

rows n

将窗口大小设置为 n 行。

columns n

将窗口大小设置为 n 列。

cols n

将窗口大小设置为 n 列。cols 是列的一个简略别名。

ypixels n

将垂直窗口大小设置为 n 像素。

xpixels n

将水平窗口大小设置为 n 像素。

用法

–g 标志有利于保存和恢复 shell 级别的终端状态。例如,程序可以:


saveterm="$(stty -g)"      # save terminal state
stty (new settings)        # set new state
...                        # ...
stty $saveterm             # restore terminal state

由于 –a 格式的规范十分宽松,因此,保存和恢复终端设置的脚本应使用 –g 选项。

环境变量

有关影响 crontab 执行的以下环境变量的描述,请参见 environ(5):LANG、LC_ALL、LC_CTYPE、LC_MESSAGES 和 NLSPATH。

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

/usr/bin/stty

属性类型
属性值
可用性
system/core-os

/usr/xpg4/bin/stty

属性类型
属性值
可用性
system/xopen/xcu4
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

/usr/xpg6/bin/stty

属性类型
属性值
可用性
system/xopen/xcu6
接口稳定性
Committed(已确定)
标准
请参见 standards(5)

另请参见

tabs(1)ioctl(2)write(2)getwidth(3C)attributes(5)environ(5)standards(5)ldterm(7M)termio(7I)termiox(7I)

附注

Solaris 不支持由 System V 发行版 4 上的 sxt 驱动程序使用的 swtch 所隐含的任何操作。Solaris 允许设置 swtch 值,并在已设置的情况下将其打印出来,但它不执行 swtch 操作。

Solaris 上的作业切换功能实际上是由作业控制处理的。为此,susp 是正确设置。