我使用的是 Linux Mint,MATE 版本。我在终端中向下滚动日志文件时经常遇到一个奇怪的问题:机器暂停一两秒,当它恢复时,我的系统颜色就乱了。也就是说,ANSI 颜色全都混在一起了 - 红色认为是黄色,黄色认为是绿色等等。这不仅影响终端,还影响其他几个桌面应用程序:Caja(nautilus 替代品)、Geany(文本编辑器)和 Gedit。
颜色分配似乎是随机的,有时会导致无法使用的组合,例如白色被黑色替换(在黑色背景上无用)。我需要重新启动才能恢复颜色。
我认为发生的情况是日志文件中的某些字符串未正确转义,并且正在影响系统中的某些内容,但我的技术不够,无法尝试调试此问题。是否有任何命令可以输入以重置所有颜色,有人知道吗?
非常感谢您的建议,max
编辑-附加截图
编辑-我正在使用 MATE Terminal 1.2.1
答案1
向终端屏幕发出二进制字符是有风险的,因为某些控制序列会被解释为更改终端模式的命令,而不仅仅是颜色。这是因为 Linux 终端模拟了古老的 VT100 控制台(带有附加功能)。请参阅这个帖子以便更好地解释这个问题。
要清理你的tty,请使用以下一个或多个命令:
reset
stty sane
tput init
tput reset
更可靠的方法可能是使用stty 命令一次保存并重置所有设置:
- 用于
stty -g
以 stty 可读格式打印当前设置 - 复制结果字符串
- 将别名(s 代表 sane)添加到您的 shell 初始化文件(.bashrc 或其他文件)中,如下所示:
alias s='stty <output string from step 2>'
- 当出现混淆时,只需输入:s Enter
答案2
正确答案是(至少对我来说是有效的):
tput sgr0
来自文档:
tput sgr0 – 关闭所有属性