补充说明
reset 是 ncurses 套件中的终端复位程序,与 tset 是同一个程序的链接。它会发送终端初始化序列、清除屏幕、恢复滚动区域、字符集和特殊字符设置,常用于误用 cat 查看二进制文件后终端出现乱码、回车失效或颜色错乱的情况。
它读取 TERM 环境变量决定使用哪套 terminfo 能力;如果 TERM 本身已经错误,可以在命令行显式指定终端类型,如 reset xterm-256color。reset 执行时会打印 “Erase is backspace” 之类的提示,可用 -Q 抑制。
相比 stty sane,reset 的复位更彻底,会清屏并重新初始化终端;tput reset 也能达到类似效果。在脚本或非交互环境中不要随意调用,它会输出控制字符,污染管道或日志。
语法
reset [选项] [终端类型]
选项
-I:不发送终端初始化字符串-Q:不显示 Erase/Kill 等设置提示-e <字符>:设置 erase 字符-i <字符>:设置中断字符-k <字符>:设置 kill 字符-m <映射>:指定终端类型映射-V:显示版本
实例
# 终端被二进制内容弄乱后复位
reset
# 不显示提示信息,适合脚本中调用
reset -Q
# TERM 设置错误时显式指定终端类型
reset xterm-256color
# 只恢复终端行模式(不尝试清屏)
stty sane
# 检查当前 TERM 是否正确
printf '%s\n' "$TERM"