Linux 的 stty 命令是一个用于配置和显示终端(terminal)设置的实用工具。它允许用户查看和修改与终端相关的各种参数,这些参数控制着终端的输入输出行为。
基本功能
-
查看当前终端设置 :
最简单的用法是直接输入
stty -a,这会显示当前终端的所有设置。例如:bashstty -a输出会包括波特率、行控制、字符处理等各种参数。
-
修改终端设置 :
stty可以修改终端的多种行为,比如:-
设置回显(echo):
bashstty echo # 启用回显 stty -echo # 禁用回显 -
设置行结束符(如将回车符设置为
^M):bashstty crlf
-
常见应用场景
-
密码输入 :
在脚本中禁用回显可以安全地输入密码:
bash#!/bin/bash stty -echo read -p "Password: " password stty echo -
串口通信配置 :
在与串口设备通信时,可以用
stty设置波特率等参数:bashstty -F /dev/ttyS0 9600 cs8 -cstopb -parenb -
修复混乱的终端 :
如果终端显示异常,可以用以下命令重置:
bashstty sane
注意事项
stty的设置通常是临时的,只对当前终端会话有效。- 某些设置可能会影响终端的行为,比如禁用回显后,输入的内容将不可见。
- 在脚本中使用时,最好在修改设置后恢复原状,以避免不可预知的问题。
高级用法
stty 还支持更多高级功能,比如:
-
设置字符的擦除(erase)和终止(kill):
bashstty erase ^H # 设置退格键为擦除字符 -
控制流(flow control)设置:
bashstty -ixon # 禁用软件流控制
通过灵活使用 stty,可以精确控制终端的行为,满足各种特殊需求。