stty 命令说明及使用讲解

2023-05-16

UNIX系统的命令很多,但是巧妙使用命令的方法更多。随着经验的积累和观察学习其他用户的实践,我们也可学会解决特殊问题的方法。这里谈谈自己使用UNIX系统中stty命令的一些体会,希望能与你共享。
1.stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数。UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。
可以在stty命令中使用-a查看当前注册终端的设置情况。
$ stty -a
Speed 9600 baud; line =0;intr= DEL;quit = ^;erase = ^h;kill =^U; eof = ^d;start=^q;stop=^s
-parenb -parodd cs8 -cstopb -hupcl cread -clocal -loblk
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc
ixon ixany -ixoff
isig icanon -xcase echo echoe echok -echonl -noflsh
opost -olcuc onlcr -ocrnl -onocr onlret ofill ofdel tab3
需要时,这里显示的各种选择都可以重新配置。每种终端选项都有自己的名字(如ixon),其中大多数要么被设置要么被清除。在stty中相应选项前冠以负号(-),该选项被清除(禁止);如果无负号,该选项被设置。
当希望修改各选择的值时,应在stty命令中正确书写相应选项。如命令
$ stty -ixon
将流控制设置为OFF,而命令
$ stty ixon
则将其置为ON。在stty命令中可以同时设置多个选项:
$ stty ixon 1200
该命令将终端设置为1200波特,并将流控制置为ON。
当选项的列表较长时,应当小心所做的修改造成会话的混乱。典型的情况下,终端在设置不正确时完全不能工作。经常出现的现象是列输出显示或用户的击键不能被shell正确接受。有时NEWLINE可能只显示或走一行但不回行,即用户输入的NEWLINE符不能被shell正确读取。建立新注册标识的过程通常建立了正确的stty选项,在日常使用中很少需要修改。但如果变量TERM的设置不正确或用户希望使用新的终端或通信渠道(如局域网),则需要修改stty的选项。如果你在某个机器中注册后终端操作正常,但后来因故发生了混乱,那么最佳的解决方法是先注销然后再向系统注册。因为注册时系统会重新设置相应选项。还有一种不太严格的解决办法是:
$ stty sane
命令sane最常出现在大多数终端的stty选项的集合中。它并不改变通信信道的速率,但当终端发生混乱时,通常能够产生有益的效果。命令sane可能使全屏幕应用程序(如vi)不能正确工作,而且在设置了选项sane之后,如果不能解决任何问题,就应立即注销,然后再注册。如果终端在注册后依然不能正确工作,用户的注册可能是不成功的。如果终端已经混乱,NEWLINE键不能结束命令行,可以用CTRL-J代替NEWLINE直到用户执行stty sane。此时,再用CTRL-J终止stty sane,使系统恢复正常。
stty命令的几项主要选项功能为:
选项parenb使终端进行奇偶校验,-parenb则是禁止校验;
选项cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;
选项300、600、1200、2400、4800、9600和19200设置波特率;
cstopb和-cstopb分别设置两个或一个停止位;
tabs使系统使用制表符而不是空格序列,因此减少了输出量,选项-tabs仅使用空格,当终端不能正确处理制表符(tab)时应使用该项。
2. stty还可用于控制一些具有特殊控制功能的键。系统可能已经使用CTRL-D作为文件结束符,但你可能喜欢使用CTRL-C。因此可以使用stty命令改变之:
$ stty eof c
其中c可以是你喜欢的其它特殊控制字符。
可以直接输入控制字符,在其前面冠以反斜线和脱字符( ^)。命令
$ stty eof ^c
将CTRL-C设置为文件结束符。这种语法形式还可以用于修改删除符(通常为退格键BackSpace)和中断符(通常为DEL键)。若希望将删除符改为BACKSPACE,可以使用下列命令:
$ stty erase ^h
可以设置一个会话期,使得当自己键入一个退格键时,系统用退格、删除和退格序列响应。此时可以看到用退格键覆盖的字符从显示中消失了,这样更符合计算机的惯例。使用命令
$ stty echoe
可使这一特性设置为ON。
终端方式及其管理是UNIX系统中比较困难的内容之一,系统的用户手册中有stty选项的全部清单。在进行尝试之前,应当查阅手册,仔细分析,以免给你的工作带来麻烦。
 
 
stty - 改变并打印终端行设置
    总览
  stty [-F device] [--file=device] [SETTING]...
  stty [-F device] [--file=device] [-a|--all]
  stty [-F device] [--file=device] [-g|--save]
  描述
  quot; Add any additional description here
  打印或改变终端属性.
  -a, --all
  以可读的格式打印当前的所有设置
  -g, --save
  以终端可读的格式打印当前的所有设置
  -F, --file
  打开指定的设备,并用此设备作为输入来代替标准输入
  --help
  显示帮助并退出
  --version
  显示版本信息并退出
  选项-在SETTING之前使用这些选项将被视为无效 星号*表明是非POSIX设置. 以下是一些系统定义了的     
     可用设置:
  特殊字符
  * dsusp CHAR CHAR表示输入满时,发一个停止信号给终端
  eof CHAR
  CHAR表示一个文件结束 (结束输入)
  eol CHAR
  CHAR表示当前行结束
  * eol2 CHAR CHAR是另一个表示结束当前行的字符
  erase CHAR
  CHAR表示擦除最后一个输入字符
  intr CHAR
  CHAR表示发一个中断信号
  kill CHAR
  CHAR表示擦除当前行
  * lnext CHAR CHAR表示输入下一个字符
  quit CHAR
  CHAR表示发出一个退出信号
  * rprnt CHAR CHAR表示刷新当前行
  start CHAR
  CHAR表示在停止输出后重新开始输出
  stop CHAR
  CHAR表示停止输出
  susp CHAR
  CHAR表示发送一个终端停止信号
  * swtch CHAR CHAR表示切换到不同的外壳层
  * werase CHAR CHAR表示擦除已经输入的最后一个单词
  特殊设置
  N
  把输入和输出的波特率设为N
  * cols N 通知内核终端有N列
  * columns N 与cols N 相同
  ispeed N
  设置输入速度为N
  * line N 用行约束规则N
  min N
  用 -icanon, 设置一次完整的读操作最小为N个字符
  ospeed N
  设置输出速度为N
  * rows N 通知内核终端有N行
  * size 根据内核打印出终端的行数和列数
  speed
  打印出终端的速度
  time N
  同时用 -icanon, 设置读超时为十分之N秒
  控制设置
  [-]clocal
  关闭解调器的控制信号
  [-]cread
  允许接收输入
  * [-]crtscts 允许 RTS/CTS 的握手
  csN
  把字符长度设为N, N 为[5..8]
  [-]cstopb
  对每字符使用两个停止位 (一个带有 `-')
  [-]hup
  当最后一个进程关闭终端后,发一个挂起信号
  [-]hupcl
  同 [-]hup
  [-]parenb
  在输出中产生奇偶校验位,并要求在输入中也有奇偶校验位
  [-]parodd
  设置奇校验 (偶校验用 `-')
  输入设置:
  [-]brkint
  暂停并产生中断信号
  [-]icrnl
  将回车解释为换行
  [-]ignbrk
  忽略中断信号
  [-]igncr
  忽略回车符
  [-]ignpar
  忽略有奇偶校验错的字符
  * [-]imaxbel 对一个字符产生嘟叫,但不刷新已满的输入缓冲区
  [-]inlcr
  将换行解释为回车
  [-]inpck
  打开输入奇偶校验
  [-]istrip
  清除输入字符的高位(第8位)
  * [-]iuclc 将大写字符转换成小写字符
  * [-]ixany 使任何字符都重新开始输出(而 不仅仅是重新输出字符能实现此功能)
  [-]ixoff
  打开发送开始/停止字符的开关
  [-]ixon
  打开XON/XOFF的流量控制
  [-]parmrk
  标记奇偶校验错误 (使用255-0-character 字符序列)
  [-]tandem
  同 [-]ixoff
  输出设置:
  * bsN 回退延迟, N 为 [0..1]
  * crN 回车延迟, N 为 [0..3]
  * ffN 换页延迟, N 为 [0..1]
  * nlN 换行延迟, N 为 [0..1]
  * [-]ocrnl 将回车解释为换行
  * [-]ofdel 使用删除字符来填充,而不是用空字符填充
  * [-]ofill 使用填充字符,不使用定时延迟
  * [-]olcuc 将小写字符转换成大写
  * [-]onlcr 将换行解释为回车-换行
  * [-]onlret 换行执行一次回车
  * [-]onocr 不在第一列打印回车
  [-]opost
  postprocess 输出
  * tabN 水平tab键延迟, N 为 [0..3]
  * tabs 同tab0
  * -tabs 同tab3
  * vtN 垂直方向tab键延迟。。。, N 为 [0..1]
  本地设置:
  [-]crterase
  将擦除字符显示为:退格-空格-退格
  * crtkill 根据echoprt和echoe的设置去除所有行
  * -crtkill 根据echoctl和echok设置去除所有行
  * [-]ctlecho 在头部符号中显示控制字符'^c')
  [-]echo
  显示输入字符
  * [-]echoctl 同 [-]ctlecho
  [-]echoe
  同[-]crterase
  [-]echok
  在一个杀死字符后显示一个换行
  * [-]echoke 同 [-]crtkill
  [-]echonl
  即使不显示其它字符也换行
  * [-]echoprt 向后显示在 '' 和 '/'之间的擦除字符
  [-]icanon
  打开 erase, kill, werase, 和 rprnt 这些特殊字符
  [-]iexten
  打开 非POSIX 特殊字符
  [-]isig
  打开中断,退出和挂起这些特殊字符
  [-]noflsh
  在中断和退出这些特殊字符后禁止刷新
  * [-]prterase 同 [-]echoprt
  * [-]tostop 停止试图写终端的后台作业
  * [-]xcase 与icanon同时使用, 表示用`'退出大写状态
  综合设置:
  * [-]LCASE 同 [-]lcase
  cbreak
  同 -icanon
  -cbreak
  同 icanon
  cooked
  同 brkint ignpar istrip icrnl ixon opost isig icanon, eof 和 eol 字符被设为默认值
  -cooked
  同 raw
  crt
  同 echoe echoctl echoke
  dec
  同 echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u
  * [-]decctlq 同 [-]ixany
  ek
  将擦除,杀死字符设为它们的默认值
  evenp
  同 parenb -parodd cs7
  -evenp
  同 -parenb cs8
  * [-]lcase 同 xcase iuclc olcuc
  litout
  同 fB-parenb -istrip -opost cs8
  -litout
  同 parenb istrip opost cs7
  nl
  同 -icrnl -onlcr
  -nl
  同 icrnl -inlcr -igncr onlcr -ocrnl -onlret
  oddp
  同 parenb parodd cs7
  -oddp
  同 -parenb cs8
  [-]parity
  同 [-]evenp
  pass8
  同 -parenb -istrip cs8
  -pass8
  同 parenb istrip cs7
  raw
  同 -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuc lc -ixany -imaxbel -opost -isig -icanon -xcase min 1 ti me 0
  -raw
  同 cooked
  sane
  同 cread -ignbrk brkint -inlcr -igncr icrnl -ixoff -iuclc -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff 0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke, 所有特殊字符 使用缺省值.
  本命令处理连接到标准输入的终端行.如不带参数,则输出波特率, 行的约束规则,以及与健全 的stty相背离的设置.在设置中, CHAR 是逐字读取的, 或是象 ^c, 0x37, 0177 或127这样的 编码; 特殊值 ^- 或未定义被用来禁止特殊字符.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stty 命令说明及使用讲解 的相关文章

  • 无人机slam定位算法调研

    1 相关博客 xff0c 知乎 xff0c 网页 1 室内无源定位 激光SLAM在无人机上的飞行测试 2 高速飞行的无人机用SLAM怎样导航 3 泡泡图灵智库 面向无人机的高效双目SLAM 2 相关论文 无人机景象匹配视觉导航技术综述 四旋
  • 嵌入式中可能使用的算法

    在嵌入式的测量中可能存在某些无法被直接测量的变量 xff0c 但可能可以通过几个不同的数据指标运算处理得到 xff0c 这里介绍最小而成发 xff0c 最小二乘法适用于描述Y 61 AX 43 B的数据 xff0c 即寻找到最合适的一条通过
  • 项目参与度较低怎么办?

    大家好 xff0c 我是雄雄 xff0c 欢迎关注公众号 雄雄的小课堂 经过这两天做项目的表现 xff0c 可以很明显的看的出来学生与学生之间掌握的还是有差距的 xff0c 组内有的组员是可以为项目贡献代码的 xff0c 但是有的组员可能只
  • 微信小程序中使用画布canvas实现动态心电图绘制

    大家好 我是雄雄 内容先知 前言 效果图 实现代码 前言 近期 接了个项目 三端 小程序 PC 公众号 同步开发 PC端没的问题 以前一直做的就是PC端 但是小程序和公众号之前没有做过 只能通过这个项目 边做边学了 人家都说小程序用原生的特
  • C#中请求HTTP接口api的方法

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 现在是 xff1a 2023年2月15日22 14 30 搞代码的陈戌源都知道 xff0c 哦 xff0c 不好意思 xff0c 是程序员 xff
  • 如何usb 触摸设备不识别为usb mouse

    一 获取输入设备name 有一下两种方法 1 使用 cat proc bus input devices 可以查看 输入设备信息 I Bus 61 0018 Vendor 61 0000 Product 61 0000 Version 61
  • java实现采集(爬)网页中的信息

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 爬虫 xff0c 大家都听过 xff0c 可能好多人的第一印象 xff0c 就是使用python进行操作 xff0c 但是除了python之外 x
  • springboot中如何解决redis空闲连接时自动休眠的问题

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 前言 今天发现了个神奇的问题 xff0c redis在长时间不使用的时候 xff0c 再次使用的时候 xff0c 会报错500 xff0c 看了下日志
  • 计算机各个岗的内容以及职责(简单整理)

    大家好 xff0c 我是雄雄 xff0c 欢迎关注微信公众号 xff1a 雄雄的小课堂 美工UI 主流技术 xff1a 平面设计软件 如Photoshop Illustrator Sketch等 用于界面设计和资源切图矢量图绘制软件 如Il
  • java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示

    注意 xff1a 看完之后如有不懂 xff0c 请看 xff1a 关于人脸和指纹识别共同交流方案 xff0c 也可以关注微信公众号 xff1a 雄雄的小课堂 xff0c 回复 xff1a 人脸识别群获取群号 xff0c 群内有直接可以运行的
  • 人脸识别活体检测之眨眨眼和张张嘴

    这段时间有点忙 xff0c 终于截止今天2018 06 22完成了人脸识别的最后一道程序 活体检测之眨眨眼和张张嘴 关于人脸识别的内容我之前也写过好几篇博文 xff0c 其中有 xff1a java实现人脸识别源码 C winforms实现
  • ps中扩展画布的时候,不能选择扩展画布部分的颜色解决方法

    在PS中 xff0c 我们有时候会遇到扩展画布的场景 xff0c 但是扩展完画布之后我们发现不能改变颜色 xff0c 这可怎么办 首先来看一下是什么样的问题 xff1a 这个背景是不能选择的 问题分析 xff1a 这是因为你创建的画布的时候
  • eclipse下载与安装步骤详解,包含解决错误(最全最详细)

    以前一直用的是myeclipse 今天有幸接触eclipse 那我们就先来安装的配置一下 xff0c 下载地址 xff1a 点击下载密码 xff1a h0kg xff0c 下载完成以后就可以安装了 xff0c 首先我们来先安装jdk1 7
  • 如何在vm虚拟机里面安装win10操作系统

    首先打开虚拟机 xff0c 点击创建虚拟机 然后选择典型即可 xff01 选择稍后安装操作系统 然后选择win10 64位 然后在找个路径 xff1a 默认60GB即可 xff0c 也可以更改大小 xff1a 最后点击完成 xff1a 接下
  • 前端工程化 - 剖析npm的包管理机制

    导读 现如今 xff0c 前端开发的同学已经离不开 npm 这个包管理工具 xff0c 其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区 xff0c 理解其内部机制非常有利于加深我们对模块开发的理解 各项前端工程化的配置以加快我们
  • 学习笔记 | 核心网KPI异常检测

    核心网KPI异常检测 业务目标 核心网在运营商网络中位置高 xff0c 很少发生故障 但一旦发生故障 xff0c 对全网稳定性和服务质量影响很大 xff0c 另外 xff0c 有时候网络问题只影响小部分用户 xff0c 此时没有显性告警 x
  • imx8mp usb转四串口不能使用问题

    使用usb 4串口 xff0c 不能识别 xff0c 注册为 acm类 在 acm 类驱动 probe函数中 将通过usb idVen dor 过滤 drivers usb class cdc acm c printk 34 s x x n
  • k8s部署微服务

    一 安装nfs服务 由于资源有限 xff0c 以master节点所在虚拟机作为nfs服务器 1 确认是否安装nfs rpm qa nfs utils rpcbind 如果未安装 xff0c 则安装 nfs服务器上安装2个模块 xff1a y
  • windows下QtCreator配置clang环境

    1 下载clang版本 下载地址 xff1a https github com llvm llvm project releases tag llvmorg 12 0 0 我选择的是LLVM 12 0 0 win64 exe 下载后安装 x
  • Ubuntu20.04 tcp调试工具mNetAssist安装

    1 下载 tcp调试工具 mNetAssist deb下载地址 xff1a https cloud 189 cn t ra2M7juimAFb 访问码 k9kv 2 安装 用命令行安装软件如下 xff1a span class token

随机推荐

  • 为什么中断子程序中不能使用延时和过长的程序?

    A回答 xff1a 通常在中断子程序中是不调用延时子程序的 xff0c 这样会增加中断处理时间 xff0c 如果有其它低级中断了 xff0c 就会延误响应中断了 所以 xff0c 中断子程序中不要写调用延时子程序 xff0c 中断子程序也不
  • APP管理平台--后端篇,项目配置(一)

    作为一个Spring Boot Maven项目肯定会有各种配置 xff0c 配置Spring的 xff0c 配置Maven的 xff0c 还有数据库的 xff0c 甚至其他的 xff0c 也有不要Maven转向Gradle配置方式的 随心所
  • vscode C/C++ 调试配置

    本文目录 前言一 已有VSCODE环境可正常运行 c cpp文件二 以test cpp为例进行调试配置1 按F5 xff08 启动调试 xff09 利用vscode自动生成tasks json launch json2 对tasks jso
  • pixhawk飞控接口含义

    官方文档 xff1a https docs px4 io v1 9 0 en flight controller pixhawk html 1 spektrum DSM receiver2 xff0c 3 远程通信口 xff0c 接数传4
  • 非线性优化库学习资料:Ceres Gtsam G2o

    其中 Ceres 资料最完善也相对稳定 xff0c 是谷歌的非线性优化库 xff0c Google Cartographer 就是调用了该库 http www ceres solver org tutorial html 既可以作为 Cer
  • 解决ros抛出escalating to SIGTERM问题

    运行ros节点执行ctrl 43 c后进程会转而执行rosspin 后面的程序 xff0c 但是如果在一定时间内程序没有执行完毕 xff0c 进程会强制退出 xff0c 并抛出 escalating to SIGTERM 错误 xff0c
  • Ubuntu18.04 ros-melodic opencv版本冲突问题解决

    原链接 xff1a https blog csdn net Shushan1 article details 116588614 问题描述 ros自带的opencv版本和自己安装的opencv版本冲突导致如下报错 解决办法 修改cv bri
  • ubuntu中,出现Failed to fetch http://…..时,需要换源

    欢迎关注 xff1a 天际使徒的个人博客 问题描述 xff1a 出现Failed to fetch http 问题原因 xff1a 一般是由于直接使用国外的源无法连接的原因导致的解决方案 xff1a 直接替换成国内的源即可 xff08 1
  • yocto 使用技巧

    相当详细的文章就是转运一下 xff0c 方便大家阅读 xff0c 原版文章可以看原链接 对于大家使用Yocto中的一些疑问 xff0c 使用寥寥数语进行解答 xff0c 让大家快速高效地使用Yocto 1 Yocto 编译后文件放在了哪里
  • 基于蚁群算法的10个城市TSP问题的最短路径研究(附源码及讲解步骤)

    基于蚁群算法的10个城市TSP问题的最短路径研究 欢迎关注 xff1a 天际使徒的个人博客 1 蚁群算法 1 1 蚁群算法的流程步骤 这里以TSP问题为例 xff0c 算法设计的流程如下 xff1a 步骤1 xff1a 对相关参数进行初始化
  • (pycharm,typora,chrome补充中……)使用中,小tips

    欢迎关注 xff1a 天际使徒的个人博客 文章目录 pycharmpython解释器界面小说明 xff08 转载 https www cnblogs com xiashuai future p 11192346 html xff09 连按两
  • pycharm安装matplotlib失败(2020最新)

    欢迎关注 xff1a 天际使徒的个人博客 请修复网络 使用国内镜像速度会快很多 xff1a 临时使用 xff1a pip install i https pypi tuna tsinghua edu cn simple some packa
  • qq群文件无法打开显示内容?

    欢迎关注 xff1a 天际使徒的个人博客 解决方法 xff1a 打开ie浏览器 右上角齿轮 gt Internet选项 gt 连接 gt 局域网设置 只勾选 自动检测设置 把代理关了 就能正常显示
  • Windows10下开机任务栏透明TranslucentTB(其他需要自启动软件感觉可以通用)

    转载 xff1a https blog csdn net weixin 43977619 article details 109602040 下载运行 1 下载解压后可以直接运行TranslucentTB应用程序 TPS xff1a 链接已
  • 私藏搜索思路,怎么搜索信息更快更准?

    欢迎关注 xff1a 天际使徒的个人博客 当我们需要查点东西的时候 xff0c 自然而然会想到百度一下 xff0c 但是 xff0c 百度上的质量参差不齐 xff0c 需要筛选 下面我提供一种搜索信息的思路 百度一下 xff08 常识 xf
  • 连续区间多类型KPI异常检测

    文章目录 TitleSummaryResearch ObjectiveProblem StatementMethod s EvaluationConclusion Title ALSR An Adaptive Label Screening
  • KPI自动化异常检测系统——Opprentice

    论文 xff1a Opprentice Towards Practical and Automatic Anomaly Detection Through Machine Learning 文章目录 问题设计思想算法细节 问题 KPI类型很
  • 特征提取和深度学习的KPI异常检测方法—组合模型

    文章目录 简介挑战总体设计数据预处理特征提取数据均衡模型训练模型综合 方案来自于首届AIops挑战赛亚军团队 简介 问题场景就是运维中kpi异常检测 xff0c 希望可以提高检测的准确率 该团队的思路是提取特征然后用集成学习的方法将异常检测
  • docker 安装、升级

    docker 安装 升级 服务器版本 Centos 7 9 1 有外网情况下 docker 升级 镜像下载地址 xff1a https download docker com linux centos 7 x86 64 stable Pac
  • stty 命令说明及使用讲解

    UNIX系统的命令很多 xff0c 但是巧妙使用命令的方法更多 随着经验的积累和观察学习其他用户的实践 xff0c 我们也可学会解决特殊问题的方法 这里谈谈自己使用UNIX系统中stty命令的一些体会 xff0c 希望能与你共享 1 xff