reset命令用于重置终端设置,修复终端显示异常问题。它会重新初始化终端,清除屏幕,并将终端设置恢复为默认值。
reset [选项]
reset [终端类型]
reset实际上是tset命令的符号链接clear命令更彻底,会重置所有终端属性| 参数 | 说明 |
|---|---|
终端类型 |
指定终端类型,如vt100、xterm、linux等。通常会自动检测 |
-e ch |
设置擦除字符(默认为Ctrl+H) |
-I |
不发送终端初始化字符串 |
-Q |
不显示设置终端类型的消息 |
-c |
不读取~/.tsetrc配置文件 |
-w |
不清除屏幕,只重置终端设置 |
--help |
显示帮助信息 |
--version |
显示版本信息 |
当终端显示异常时,使用reset命令修复:
# 终端显示乱码或键盘输入异常时
$ reset
假设终端显示异常:
▯▯▯H▯e▯l▯l▯o▯▯▯W▯o▯r▯l▯d▯▯ # 乱码显示
输入reset命令后:
Erase set to delete. # 重置信息
# 终端恢复正常,显示干净的屏幕
使用-w参数只重置设置不清除屏幕内容:
# 重置终端设置但保留屏幕内容
$ reset -w
# 这样不会清除当前屏幕上的输出
# 只重置终端的内部设置
明确指定终端类型进行重置:
# 指定终端类型为xterm
$ reset xterm
# 指定终端类型为linux
$ reset linux
# 指定终端类型为vt100(传统终端)
$ reset vt100
当不小心用cat查看二进制文件导致终端乱码时:
# 不小心查看了二进制文件
$ cat /bin/ls
# 终端显示乱码,键盘输入可能也不正常
# 使用reset修复
$ reset
# 终端恢复正常
在SSH会话中修复终端问题:
# SSH连接到远程服务器后终端异常
$ ssh user@remote-server
# 登录后发现终端显示有问题
# 尝试以下命令修复
$ reset
# 或者
$ stty sane
$ tput reset
当退格键显示为^H或其他字符时:
# 退格键显示为^H而不是删除字符
$ echo "test^H^H^H" # 按退格键显示^H
# 使用reset修复
$ reset
# 或者使用stty设置
$ stty erase ^H
在脚本执行后重置终端设置:
#!/bin/bash
# 保存当前终端设置
original_stty=$(stty -g)
# 修改终端设置执行某些操作
stty raw -echo
# 执行需要特殊终端设置的操作
read -n 1 keypress
echo "你按下了: $keypress"
# 恢复终端设置
stty "$original_stty"
# 或者使用reset彻底重置
reset
比较clear和reset的区别:
# clear命令:只清除屏幕,不重置终端设置
$ clear
# reset命令:清除屏幕并重置所有终端设置
$ reset
# 查看它们的实际关系
$ ls -l /usr/bin/clear /usr/bin/reset
lrwxrwxrwx 1 root root 9 Jan 15 2020 /usr/bin/clear -> /usr/bin/tput
lrwxrwxrwx 1 root root 4 Jan 15 2020 /usr/bin/reset -> tset
直接发送终端转义序列进行重置:
# 发送重置转义序列
$ echo -e "\033c"
# 在某些情况下也可以使用
$ tput reset
# 完整的终端重置序列
$ echo -e "\033[!p\033[?3;4l\033[4l\033>"
reset会清除当前屏幕的所有内容stty sane,如果不行再用resetscript命令保存终端会话stty -a查看当前终端设置hexdump或odA: clear只清除屏幕内容,而reset会重置所有终端设置并清除屏幕。reset更彻底,能修复终端显示和输入问题。
A: reset会清除屏幕,所以执行瞬间的输出可能被立即清除了。可以使用reset -w来避免清除屏幕。
A: 可以先尝试stty sane,它不会清除屏幕。如果不行,可以使用screen或tmux保存会话状态。
A: 可能需要关闭当前终端窗口,重新打开一个新的。或者检查终端程序的设置。
A: 可以,但要注意它会清除屏幕。更好的做法是使用tput reset或tput clear。
clear - 清除终端屏幕stty - 修改和显示终端设置tset - 终端初始化(reset的实际命令)tput - 操作终端能力数据库tty - 显示当前终端设备文件名script - 记录终端会话screen - 终端多路复用器tmux - 终端多路复用器