【busybox记录】【shell指令】stty

目录

内容来源:

【GUN】【stty】指令介绍

【busybox】【stty】指令介绍

【linux】【stty】指令介绍

使用示例:

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        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

指令不常用/组合用法还需继续挖掘:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻面条EW

感谢您的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值