目录
内容来源:
GUN : Coreutils - GNU core utilities
busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【stty】指令介绍
stty:打印或更改终端特性
stty 打印或更改终端特性,如波特率。
简介:
stty [option] [setting]...
stty [option]
如果没有给出行设置,stty打印波特率,行规则号(在支持它的系统上),以及从' stty sane '设置的值更改的行设置。
默认情况下,模式读取和设置是在连接到标准输入的tty线上执行的,尽管这可以通过 --file选项进行修改。
stty接受许多改变终端行操作方面的非选项参数,如下所述。
程序接受以下选项。请参见第2章[常用选项],第2页。
‘-a’
‘--all’
以人类可读的形式打印所有当前设置。此选项不能与任何行设置结合使用。
‘-F device’
‘--file=device’
设置由device中指定的文件名打开的行,而不是连接到标准输入的tty行。
这个选项是必要的,因为打开POSIX tty需要使用O_NONDELAY标志来防止POSIX tty阻塞,直到载波检测线高(如果没有设置本地标志)。
因此,不可能总是允许外壳以传统的方式打开设备。
‘-g’
‘--save’
以可作为另一个stty命令的参数的形式打印所有当前设置,以恢复当前设置。此选项不能与任何行设置结合使用。
许多设置可以通过在它们前面加一个' - '来关闭。这样的论点在其描述中标有“可能被否定”。这些描述本身指的是肯定的情况,即没有被否定的情况(当然,除非另有说明)。
有些设置在所有POSIX系统上都不可用,因为它们使用扩展。这些参数在其描述中标有“非posix”。
在非posix系统上,这些或其他设置也可能不可用,但是记录所有的变化是不可行的:只是尝试一下看看。
stty仅安装在具有POSIX终端接口的平台上,因此可移植脚本不应该依赖于它在非POSIX平台上的存在。
退出状态为0表示成功,非0表示失败。
1控制设置
控制设置:
‘parenb’ 在输出中产生奇偶校验位,并期望在输入中产生奇偶校验位。可能会被否定。
‘parodd’ 设置奇偶校验(即使为负值)。可能会被否定。
‘cmspar’ 使用“棒”(标记/空格)奇偶校验。
如果设置了parodd,奇偶校验位总是1;
如果parodd未设置,奇偶校验位始终为零。posix。可能会被否定。
‘cs5’
‘cs6’
‘cs7’
‘cs8’ 设置字符大小为5,6,7或8位。
‘hup’
‘hupcl’ 当最后一个进程关闭tty时发送一个挂起信号。可能会被否定。
‘cstopb’ 每个字符使用两个停止位(如果为负值则为一个)。可能会被否定。
‘cread’ 允许接收输入。可能会被否定。
‘clocal’ 禁用调制解调器控制信号。可能会被否定。
‘crtscts’ 启用RTS/CTS流量控制。posix。可能会被否定。
‘cdtrdsr’ 使能DTR/DSR流量控制。posix。可能会被否定。
2输入设置
这些设置控制从终端接收数据的操作。
‘ignbrk’ 忽略break字符。可能会被否定。
‘brkint’ 使中断产生中断信号。可能会被否定。
‘ignpar’ 忽略有奇偶校验错误的字符。可能会被否定。
‘parmrk’ 标记奇偶校验错误(255-0个字符的序列)。可能会被否定。
‘inpck’ 启用输入奇偶校验。可能会被否定。
‘istrip’ 清除输入字符的高(8)位。可能会被否定。
‘inlcr’ 将换行符转换为回车。可能会被否定。
‘igncr’ 忽略回车。可能会被否定。
‘icrnl’ 将回车符转换为换行符。可能会被否定。
‘iutf8’ 假设输入字符是UTF-8编码。可能会被否定。
‘ixon’ 启用XON/XOFF流量控制(即Ctrl-S/Ctrl-Q)。可能会被否定。
‘ixoff’
‘tandem’ 当系统输入缓冲区几乎满时,启用发送停止字符,当它再次几乎为空时,启用发送开始字符。可能会被否定。
‘iuclc’ 将大写字符转换为小写字符。posix。可能会被否定。没有' ilcuc '设置,因为在调用它之后,几乎不能发出任何(小写)Unix命令。
‘ixany’ 允许任何字符重新开始输出(如果否定,只允许开始字符)。posix。可能会被否定。
‘imaxbel’ 如果字符到达时输入缓冲区已满,则启用蜂鸣声而不刷新输入缓冲区。posix。可能会被否定。
3输出设置
这些设置控制对发送到终端的数据的操作。
‘opost’ 后处理输出。可能会被否定。
‘olcuc’ 将小写字符转换为大写字符。posix。可能会被否定。(没有“ouclc”这个词。)
‘ocrnl’ 将回车符转换为换行符。posix。可能会被否定。
‘onlcr’ 将换行符转换为回车换行符。posix。可能会被否定。
‘onocr’ 不打印第一列中的回车。posix。可能会被否定。
‘onlret’ 换行符执行回车。posix。可能会被否定。
‘ofill’ 使用填充(填充)字符而不是延迟计时。posix。可能会被否定。
‘ofdel’ 使用ASCII DEL字符代替ASCII NUL字符进行填充。posix。可能会被否定。
‘nl1’
‘nl0’ 换行延迟样式。posix。
‘cr3’
‘cr2’
‘cr1’
‘cr0’ 回车延迟样式。posix。
‘tab3
‘tab2
‘tab1
‘tab0 水平标签延迟样式。posix。
‘bs1’
‘bs0’ 退格延迟样式。posix。
‘vt1’
‘vt0’ 垂直标签延迟样式。posix。
‘ff1’
‘ff0’ 表单馈送延迟样式。posix。
4本地设置
‘isig’ 启用中断、退出和挂起特殊字符。可能会被否定。
‘icanon’ 启用擦除、杀死、删除和打印特殊字符。可能会被否定。
‘iexten’ 启用非posix特殊字符。可能会被否定。
‘echo’ 回显输入字符。可能会被否定。
‘echoe’
‘crterase’ 以backspace-space-backspace的形式返回删除字符。可能会被否定。
‘echok’ 在kill字符后回显换行符。可能会被否定。
‘echonl’ 回显换行符,即使不回显其他字符。可能会被否定。
‘noflsh’ 在中断后禁用刷新并退出特殊字符。可能会被否定。
‘xcase’ 当设置icanon时,通过在其小写等首物前面加上' \ '来启用大写字符的输入和输出。posix。可能会被否定。
‘tostop’ 停止试图写入终端的后台作业。posix。可能会被否定。
‘echoprt’
‘prterase’ 在' \ '和' / '之间向后返回已删除的字符。posix。可能会被否定。
‘echoctl’
‘ctlecho’ 以该符号(' ^c ')而不是按字面意思回显控制字符。posix。可能会被否定。
‘echoke’
‘crtkill’ 通过擦除echoprt和echoe设置所指示的行上的每个字符来回显kill特殊字符,而不是通过echoctl和echok设置。posix。可能会被否定。
‘extproc’ 启用' LINEMODE ',用于避免在高延迟链接上回显每个字符。参见Internet RFC 1116 (https://datatracker.ietf.org/ doc/rfc1116/)。posix。可能会被否定。
‘flusho’ 丢弃输出。这个设置目前在GNU/Linux系统上被忽略。NonPOSIX。可能会被否定。
5组合设置
结合设置:
‘evenp’
‘parity’ 与parenb -parodd cs7相同。可能会被否定。如果取反,与-parenb cs8相同。
‘oddp’ 与parenb parodd cs7相同。可能会被否定。如果取反,与-parenb cs8相同。
‘nl’ 与-icrnl -onlcr相同。可能会被否定。如果被否定,则与 icrnl -inlcr -igncr - onlcr - onlcr -onlret相同。
‘ek’ 将擦除和杀死特殊字符重置为默认值。
‘sane’同:
cread -ignbrk brkint -inlcr -igncr icrnl
icanon iexten echo echoe echok -echonl -noflsh
-ixoff -iutf8 -iuclc -ixany imaxbel -xcase -olcuc -ocrnl
opost -ofill onlcr -onocr -onlret nl0 cr0 tab0 bs0 vt0 ff0
isig -tostop -ofdel -echoprt echoctl echoke -extproc
并将所有特殊字符设置为其默认值。
‘cooked’ 相同,在使用icicon后,将eof和eol字符设置为默认值,如果它们与min和time字符相同。可能会被否定。如果否定,则与raw相同。
‘raw’ 同:
-ignbrk -brkint -ignpar -parmrk -inpck -istrip
-inlcr -igncr -icrnl -ixon -ixoff -icanon -opost
-isig -iuclc -ixany -imaxbel -xcase min 1 time 0
可能会被否定。如果是否定的,和 cooked 一样。
‘cbreak’ 和-icanon一样。可能会被否定。如果是否定的,和icanon一样。
‘pass8’ 与-parenb - strip cs8相同。可能会被否定。如果取反,则与parenbistrip cs7相同。
‘litout’ 同-parenb - strip - postcs8。可能会被否定。如果是否定的,则与cs7后的parenb istrip相同。
‘decctlq’ 和-ixany一样。posix。可能会被否定。
‘tabs’ 与tab0相同。posix。可能会被否定。如果是否定的,与表3相同。
‘lcase’
‘LCASE’ 与' xcase '相同。posix。可能会被否定。(仅用于大写字符的终端。)
‘crt’ 与echoe echoctl echoke相同。
‘dec’ 同echoe echot echoke-ixany intr ^C erase ^? kill C-u.
6特殊字符
特殊字符的默认值因系统而异。它们是用语法' name value '设置的,其中名称在下面列出,值可以按字面意思给出,以表示法(' ^c '),或者作为一个整数,可以以' 0x '开头表示十六进制,' 0 '表示八进制,或任何其他数字表示十进制。
对于GNU stty,给出^-或undef值将禁用该特殊字符。(这与Ultrix stty不兼容,它使用' u '值来禁用特殊字符。GNU stty将值' u '与其他值一样对待,即将该特殊字符设置为u。
‘intr’ 发送一个中断信号。
‘quit’ 发送退出信号。
‘erase’ 删除输入的最后一个字符。
‘kill’ 删除当前行。
‘eof’ 发送文件结束(终止输入)。
‘eol’ 别排队了。
‘eol2’ 行结束的替代字符。posix。
‘discard’ 切换输出丢弃的替代字符。posix。
‘swtch’ 切换到不同的shell层。posix。
‘status’ 发送一个信息信号。目前GNU/Linux不支持。posix。
‘start’ 停止输出后重新启动输出。
‘stop’ 停止输出。
‘susp’ 发送终端停止信号。
‘dsusp’ 在冲洗输入后发送终端停止信号。posix。
‘rprnt’ 重新绘制当前线。posix。
‘werase’ 删除最后键入的单词。posix。
‘lnext’ 按字面输入下一个字符,即使它是一个特殊字符。NonPOSIX。
7特殊设置
‘min n’ 设置-icanon时,设置在时间值过期之前满足读取的最小字符数。
‘time n’ 设置-icanon时,如果未读取最小字符数,则在读取超时前设置十分之一秒的时间。
‘ispeed n’ 设置输入速度为n。
‘ospeed n’ 设置输出速度为n。
‘rows n’ 告诉tty内核驱动终端有n行。posix。
‘cols n’
‘columns n’ 告诉内核终端有n列。posix。
‘drain’ 在第一次等待待定输出传输后应用设置。这在默认情况下为GNU stty启用。这将被视为一个选项,而不是一个行设置,并将遵循上面摘要中描述的选项处理规则。
在系统可能处于无法进行串行传输的状态时,禁用此选项非常有用。
例如,如果系统在启用了ixon(软件流量控制)的情况下接收了' DC3 '字符,那么stty将在没有指定-drain的情况下阻塞。可能会被否定。posix。
‘size’ 打印内核认为终端拥有的行数和列数。(在内核中不支持行和列的系统通常使用环境变量LINES和columns代替;然而,GNU stty对它们一无所知。)posix。
‘line n’ Use line discipline n. Non-POSIX.
‘speed’ 打印终端速度。
‘n’ 设置输入输出速度为n。n可以是0 50 75 110 134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200 38400 extra extb。
extra与19200相同;Extb与38400相同。许多系统,包括GNU/Linux,都支持更高的速度。
stty命令支持的速率为57600、115200、230400、460800、500000、576000、921600、1000000、1152000、1500000、2000000、2500000、3000000、3500000、4000000。
如果设置了-clocal,则挂起该线路。
【busybox】【stty】指令介绍
[root@localhost bin]# ./stty --help
BusyBox v1.36.1 (2024-04-16 11:16:28 EDT) multi-call binary.
Usage: stty [-a|g] [-F DEVICE] [SETTING]...
Without arguments, prints baud rate, line discipline,
and deviations from stty sane
-F DEVICE Open device instead of stdin
-a Print all current settings in human-readable form
-g Print in stty-readable form
[SETTING] See manpage
【linux】【stty】指令介绍
[root@localhost bin]# stty --help
用法:stty [-F 设备 | --file=设备] [设置]...
或:stty [-F 设备 | --file=设备] [-a|--all]
或:stty [-F 设备 | --file=设备] [-g|--save]
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 显示此帮助信息并退出
--version 显示版本信息并退出
可选- 在设置前的指示中,* 标记出了非POSIX 标准的设置。以下系
统定义象征了哪些设置是有效的。
Special characters:
* discard CHAR CHAR will toggle discarding of output
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
* [-]drain wait for transmission before applying settings (on by default)
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 '-')
* [-]cmspar use "stick" (mark/space) parity
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 假定输入字符都是UTF-8 编码
* [-]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 NUL 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 '/'
* [-]extproc enable "LINEMODE"; useful with high latency links
* [-]flusho discard output
[-]icanon enable special characters: erase, kill, werase, rprnt
[-]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
-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 等于parenb parodd cs7
-oddp 等于-parenb cs8
[-]parity 等于[-]evenp
pass8 等于-parenb -istrip cs8
-pass8 等于parenb istrip cs7
raw same as -ignbrk -brkint -ignpar -parmrk -inpck -istrip
-inlcr -igncr -icrnl -ixon -ixoff -icanon -opost
-isig -iuclc -ixany -imaxbel -xcase min 1 time 0
-raw same as cooked
sane same as cread -ignbrk brkint -inlcr -igncr icrnl
icanon iexten echo echoe echok -echonl -noflsh
-ixoff -iutf8 -iuclc -ixany imaxbel -xcase -olcuc -ocrnl
opost -ofill onlcr -onocr -onlret nl0 cr0 tab0 bs0 vt0 ff0
isig -tostop -ofdel -echoprt echoctl echoke -extproc -flusho,
all special characters to their default values
处理连接到标准输入的tty 终端行设置。当不附加参数时,程序会输出波特率、行约束
规则以及与标准stty 设置间的偏差。在设置中,字符会被逐字读取或是被编码为^c、
0x37、0177 或127 这样的字符,其中有特殊值^- 或undef 被用于禁止特殊字符。
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 stty 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/stty>
或者在本地使用:info '(coreutils) stty invocation'
使用示例:
NA
常用组合指令:
NA