Linux 终端掌控核心:stty 命令详解与实战配置指南一、命令简介

Linux 终端掌控核心:stty 命令详解与实战配置指南一、命令简介
一、命令简介stty 命令用于显示和修改终端TTY设备的设置。它允许用户查看和调整与终端输入 / 输出行为相关的各种参数例如字符回显、行控制、流控制以及特殊控制字符如 CtrlC、CtrlD 等的映射。该命令对于脚本编写、终端故障排查以及自定义命令行交互体验非常有用。二、语法格式bash运行stty [选项] [设置...]基本形式stty显示当前终端的关键设置。stty -a 或 stty --all以人类可读的格式显示所有当前设置。stty -g 或 stty --save以 stty 可解析的格式十六进制字符串输出当前所有设置便于保存和恢复。stty [设置]应用指定的终端设置。stty [选项] [设置]结合选项和设置使用。三、常用选项及说明表格选项说明-a, --all以易于阅读的格式打印终端的所有当前设置。-g, --save以机器可读的格式一个十六进制字符串打印当前所有设置。此输出可直接用于 stty 命令以恢复该配置。-F DEVICE, --fileDEVICE指定要操作的终端设备文件而不是当前的标准输入。例如stty -F /dev/ttyS0 speed。--help显示帮助信息并退出。--version显示版本信息并退出。常用设置参数说明stty 的设置参数通常成对出现形如 功能 和 - 功能分别表示启用和禁用该功能。以下是一些常见设置3.1 特殊控制字符表格设置说明intr ^C将中断信号SIGINT的发送字符设置为 CtrlC。设置时^C 需按字面输入通常按 CtrlV再按 CtrlC。eof ^D将文件结束符EOF设置为 CtrlD。erase ^? 或 erase ^H设置退格删除字符通常对应 Backspace 或 Delete 键。kill ^U设置行删除字符删除整行输入。werase ^W设置单词删除字符。3.2 输入设置表格设置说明ignbrk / -ignbrk忽略 / 不忽略输入中的 BREAK 条件。brkint / -brkintBREAK 产生 / 不产生中断信号。igncr / -igncr忽略 / 不忽略输入中的回车符CR。icrnl / -icrnl将输入中的回车符CR映射 / 不映射为换行符NL。ixon / -ixon启用 / 禁用软件流控制XON/XOFFCtrlS/CtrlQ。ixoff / -ixoff启用 / 禁用发送 START/STOP 字符以防止输入缓冲区溢出。3.3 输出与本地设置表格设置说明echo / -echo启用 / 禁用回显输入字符常用于输入密码时关闭回显。icanon / -icanon启用 / 禁用规范模式行缓冲。禁用后输入字符将立即可用无需等待换行符。isig / -isig启用 / 禁用对特殊控制字符intr, quit, susp的检查。禁用后CtrlC 等将无法发送信号。onlcr / -onlcr启用 / 禁用在输出时将换行符NL映射为回车 - 换行符CR-NL。3.4 硬件 / 组合设置表格设置说明cs8 / cs7设置字符大小为 8 位或 7 位。speed显示当前波特率。使用 speed N 设置波特率如 speed 115200。rows N将终端行数高度设置为 N。cols N 或 columns N将终端列数宽度设置为 N。size打印终端的行数和列数。四、示例用法查看所有当前终端设置bash运行stty -a保存当前终端设置并在之后恢复bash运行# 保存设置到一个变量或文件 SAVED_SETTINGS$(stty -g) # ... 在此处进行其他操作或修改设置 # 恢复设置 stty $SAVED_SETTINGS禁用回显用于密码输入脚本bash运行#!/bin/bash echo -n Password: stty -echo # 关闭回显 read PASSWORD stty echo # 重新打开回显 echo echo Password read.更改中断字符和 EOF 字符bash运行# 将中断信号字符从 CtrlC 改为 CtrlX stty intr ^X # 将 EOF 字符从 CtrlD 改为 CtrlA stty eof ^A修复退格键Backspace或 Delete 键行为异常bash运行# 尝试以下设置之一具体取决于您的终端 stty erase ^H # 通常对应 Backspace stty erase ^? # 通常对应 Delete设置串口设备参数bash运行# 配置 /dev/ttyS0 为 115200 波特率8位数据无校验1位停止位 stty -F /dev/ttyS0 115200 cs8 -parenb -cstopb五、注意事项谨慎修改 错误地使用 stty如 stty -echo -icanon可能导致终端无响应或输入异常。在修改关键设置如 isig, icanon, echo前建议先用 stty -g 保存当前配置。恢复默认 如果终端行为变得异常可以尝试关闭终端并重新打开或者通过另一个终端会话如另一个终端标签使用 stty sane 命令来恢复一组合理的默认设置。作用范围 stty 的设置通常只影响当前终端会话或脚本执行的上下文。字符输入 在设置控制字符如 intr ^C时^C 等不是直接键入的字符而是需要通过键序列输入通常先按 CtrlV再按目标组合键。在脚本中可以使用类似 stty intr ^c 的转义形式。