Linux命令-stty(显示/修改终端行设置) Linux命令-stty显示/修改终端行设置快速参考查看当前设置核心设置回显控制特殊字符配置行规程控制终端尺寸与速度Shell 脚本中的实用模式特殊字符一览常见问题排查sttySet Teletype用于显示和修改终端设备的行规程设置。它控制着终端输入输出的各种行为——比如密码输入时是否回显、CtrlC 是否中断进程、退格键的行为等。stty是使用最频繁却没有图形界面的命令之一每次你输入密码时背后都是stty -echo在工作。快速参考stty[选项][设置...]stty-a# 显示所有当前设置stty操作的是当前终端的行规程层介于物理终端和 Shell 之间。它对用户透明的特性使其成为 Shell 脚本安全输入和终端控制的基石。查看当前设置# 显示当前设置简洁模式stty# 显示所有设置包括特殊字符stty-a# 显示所有设置BSD 格式-a 等价于 -gstty-g# 保存当前设置到变量SAVED_STTY$(stty-g)# 仅显示某类设置stty-a|head-10stty speed# 仅显示波特率stty size# 仅显示终端行列数核心设置回显控制# 关闭字符回显密码输入场景stty-echoread-p请输入密码: password sttyechoecho密码已读取# 关闭回显和回车换行stty-echo-icanonread-n1key# 读取单个字符不等待回车sttyechoicanon# 标准密码输入函数read_password(){localprompt$1passwordecho-n$promptstty-echoreadpassword sttyechoechoREPLY$password}read_password密码: echo你输入了:$REPLY特殊字符配置# 设置中断信号CtrlCstty intr^C# 设置 EOFCtrlDstty eof^D# 设置挂起信号CtrlZstty susp^Z# 设置擦除字符Backspacestty erase^?# 设置终止字符通常 Ctrl\stty quit^\# 设置单词擦除CtrlWstty werase^W# 设置重新打印CtrlRstty rprnt^R# 查看特殊字符当前映射stty-a|grep-Eintr|quit|erase|kill|eof行规程控制# 规范模式行缓冲默认stty icanon# 输入以行为单位可退格编辑回车后提交# 原始模式逐字符无缓冲stty-icanon# 程序读取每个按键无需回车# 启用信号处理默认stty isig# CtrlC 发送 SIGINTCtrlZ 发送 SIGTSTP# 禁用信号处理stty-isig# CtrlC 等不再发送信号作为普通字符传递# 回显控制sttyecho# 显示输入字符默认stty-echo# 不显示输入字符stty echoe# 退格时擦除字符stty-echoe# 退格不擦除# 输出处理stty onlcr# 换行时添加回车默认stty-onlcr# 仅换行不添加回车# 输入处理将回车转为换行stty icrnl# 回车→换行默认stty-icrnl# 保留回车原样终端尺寸与速度# 查看终端行列数stty size# 输出: 24 80 行 列# 设置终端行列数stty rows40cols100# 查看终端速度波特率stty speed# 设置波特率串口终端stty9600stty115200# 脚本中获取终端尺寸COLS$(stty size|awk{print $2})ROWS$(stty size|awk{print $1})echo终端尺寸:${ROWS}行 x${COLS}列# 也可使用 tput 获取tput cols tput linesShell 脚本中的实用模式# 1. 安全的密码输入read_secure(){localpassprintfPassword: stty-echoreadpass sttyechoprintf\neval$1$pass}read_secure MY_PASS# 2. 单键菜单无需回车key_menu(){echo请选择 [y/n]: stty-echo-icanonkey$(ddbs1count12/dev/null)sttyechoicanonecho$keycase$keyiny|Y)echo选择了 YES;;n|N)echo选择了 NO;;*)echo无效选择;;esac}# 3. 终端设置在脚本异常退出时恢复trapstty echo icanon isig; echo 终端设置已恢复EXIT# 4. 临时切换为非规范模式raw_mode(){stty-echo-icanonmin1time0}restore_mode(){sttyechoicanon}traprestore_mode EXIT raw_mode# ... 逐字符读取交互逻辑 ...# 5. 显示进度条利用 stty 控制光标progress_bar(){localpercent$1width${2:-50}localfilled$((percent*width/100))localempty$((width-filled))printf\r[printf%${filled}s|tr #printf%${empty}s|tr -printf] %3d%%$percent}foriin$(seq0100);doprogress_bar$isleep0.05doneecho特殊字符一览# 查看所有特殊字符定义stty-a|grep-o\w\ \^.|column# 常用特殊字符说明# intr ^C 中断当前进程SIGINT# quit ^\ 强制退出并生成 core dumpSIGQUIT# erase ^? 删除前一个字符Backspace# kill ^U 删除整行# eof ^D 文件结束/退出 Shell# eol 未定义# eol2 未定义# swtch ^Z Shell 层切换已废弃# start ^Q 恢复输出XON# stop ^S 暂停输出XOFF# susp ^Z 挂起进程SIGTSTP# rprnt ^R 重新打印当前行# werase ^W 删除前一个单词# lnext ^V 输入下一个字面字符# discard ^O 丢弃输出常见问题排查# 问题 1: 终端输入乱了——输入不显示或显示异常# 通常是程序异常退出后 stty 设置未恢复stty sane# 恢复终端到合理状态reset# 更彻底的重置# 问题 2: 密码输入时字符可见stty-echo# 关闭回显# 问题 3: CtrlS 冻结了终端误触# 按 CtrlQ 恢复这是 XON/XOFF 流控制# 问题 4: 退格键无效stty erase^?# 问题 5: 程序退出后终端无回显sttyecho# 问题 6: 终端尺寸不对stty size# 查看当前# 调整终端窗口大小重新执行 resize 命令resizestty是那种你不知道它存在但它一直在工作的命令。每次登录终端、输入密码、按下 CtrlC 终止程序时都是stty配置在背后支撑。理解stty就是理解终端工作的底层原理。

相关新闻

最新新闻

15分钟快速集成:TradingView图表库终极完整指南

15分钟快速集成:TradingView图表库终极完整指南

15分钟快速集成:TradingView图表库终极完整指南 【免费下载链接】charting-library-examples Examples of Charting Library integrations with other libraries, frameworks and data transports 项目地址: https://gitcode.com/gh_mirrors/ch/charting-library-…

2026/8/12 14:12:53
《Alphablocks》自然拼读动画全攻略:资源获取、播放指南与高效学习方案

《Alphablocks》自然拼读动画全攻略:资源获取、播放指南与高效学习方案

最近在整理儿童英语启蒙资源时,发现很多家长都在寻找《Alphablocks》这部动画片,但网上资源零散,版本混杂,下载后经常遇到播放问题。作为一部风靡全球的自然拼读启蒙动画,它通过字母积木的生动演绎,将抽象的…

2026/8/12 14:12:53
前端性能优化:防抖与节流技术详解

前端性能优化:防抖与节流技术详解

1. 为什么我们需要防抖和节流? 前端开发中,我们经常会遇到一些高频触发的事件,比如窗口的resize、scroll,输入框的input,按钮的click等。如果不做任何处理,这些事件会在短时间内被频繁触发,导致…

2026/8/12 14:12:53
国家中小学智慧教育平台电子课本下载器:解决教育资源获取难题的高效工具

国家中小学智慧教育平台电子课本下载器:解决教育资源获取难题的高效工具

国家中小学智慧教育平台电子课本下载器:解决教育资源获取难题的高效工具 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本…

2026/8/12 14:12:53
3分钟学会:用ncmdump快速解密网易云音乐NCM文件

3分钟学会:用ncmdump快速解密网易云音乐NCM文件

3分钟学会:用ncmdump快速解密网易云音乐NCM文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了喜欢的歌曲,却发现只能在特定播放器上收听?当你想要在车载音响、其他…

2026/8/12 14:12:53
Unity动态图像解码全解析:从GIF原理到UniGif实战优化

Unity动态图像解码全解析:从GIF原理到UniGif实战优化

1. 项目概述:为什么Unity动态图像解码是个“老大难”问题? 如果你在Unity项目里用过动态图片,尤其是从网络下载或者需要运行时加载的GIF,大概率踩过坑。要么是播放卡顿,内存飙升,要么干脆显示不出来&#x…

2026/8/12 14:07:52