Как сбросить системные цвета

6869
Max Williams

Я использую Linux Mint, MATE версия. У меня возникает странная проблема, которая возникает довольно часто при прокрутке файлов журнала в терминале: машина останавливается на секунду или две, а когда она возвращается, мои системные цвета шифруются. То есть все цвета ANSI смешаны - красный думает, что он желтый, желтый думает, что он зеленый и т. Д. Это влияет не только на терминалы, но и на некоторые другие настольные приложения: Caja (замена nautilus), Geany (текстовый редактор) и Gedit. ,

Назначение цвета кажется случайным и иногда приводит к непригодным для использования комбинациям, например, замена белого на черный (бесполезно на черном фоне). Мне нужно перезагрузиться, чтобы вернуть цвета.

Я предполагаю, что происходит то, что некоторые строки символов в файле журнала не экранированы должным образом и что-то попадают в систему, но я недостаточно технически, чтобы попытаться отладить это. Есть ли какая-нибудь команда, которую я мог бы ввести, чтобы сбросить все цвета обратно, кто-нибудь знает?

Благодарен за любой совет, макс

РЕДАКТИРОВАТЬ - прикрепленный скриншотenter image description here

РЕДАКТИРОВАТЬ - я использую MATE Terminal 1.2.1

7
вы пробовали команду `reset` в терминале? mnmnc 11 лет назад 0
Проблема сохраняется, если вы открываете новый терминал? terdon 11 лет назад 0
@mnmnc - да, без эффекта. terdon - да, это сохраняется, если я открываю новый терминал. Он просто сделал это снова впервые за много лет. Max Williams 11 лет назад 0

2 ответа на вопрос

10
harrymc

Issuing binary characters to the terminal screen is risky, as some control sequences are interpreted as commands that change the terminal mode, and not only for colors. This is because the Linux terminal emulates the antique VT100 console (with additions). See this post for a good explanation of the problem.

To sanitize your tty use one or several of the following commands :

  • reset
  • stty sane
  • tput init
  • tput reset

A surer way might be to use the stty command to save and reset all your setting at once:

  1. Use stty -g to print the current settings in stty-readable format
  2. Copy the resulting string
  3. Add to your shell init file (.bashrc or whatever) the alias (s for sane) as :
    alias s='stty <output string from step 2>'
  4. Now when confusion occurs, just type : s Enter
Спасибо, я попробую это в следующий раз, когда это произойдет, и прокомментирую, чтобы вы знали. Max Williams 11 лет назад 0
Хорошо, это просто случилось! Я перепробовал все команды в вашем списке, а также более длинный четырехэтапный процесс, который вы описали. Неудачно. Max Williams 11 лет назад 0
Кстати, я использую MATE Terminal 1.2.1 Max Williams 11 лет назад 0
У меня нет опыта работы с MATE Terminal, извините. harrymc 11 лет назад 0
Я должен попробовать другой терминал, я думаю ... Max Williams 11 лет назад 0
Наверное, так ... harrymc 11 лет назад 0
Вместо этого я использовал gnome-терминал и просто впервые столкнулся с той же проблемой. Так что я не думаю, что это вина Терминала. Max Williams 11 лет назад 0
У вас всегда будет эта проблема при печати бинарных файлов на любой консоли tty-эмуляции. Проблема неизбежна, но есть решения, как описано выше, которые работают для большинства терминалов. harrymc 11 лет назад 0
2
Ľuboš Katrinec

Правильный ответ (по крайней мере, это сработало в моем случае):

tput sgr0 

Из документации:

tput sgr0 - отключить все атрибуты

Похожие вопросы