Терминальная поддержка цветов определяется различными стандартами, например. ECMA -48 или более поздние стандарты, в которых добавлено больше цветов. В наши дни терминалы в основном представляют собой виртуальные окна, а не выделенные аппаратные устройства , и эмулируемый терминал обычно можно изменить, установив переменную среды TERM
— можно эмулировать терминал, который не поддерживает цвета . ], Например.
Для современных терминалов, если вам нужны цвета, обычно рекомендуется включить поддержку 256 цветов, обычно через TERM=xterm-256color
, поскольку в старых стандартах указано гораздо меньше цветов. В различных документах подробно описаны точные коды , используемые для генерации цветов, и это можно сделать вручную
.
% print "\033[31;5mDANGER DANGER WILL ROBINSON\033[0m"
...
хотя для переносимости обычно лучше использовать библиотеку, такую как ncurses
или, в вашем случае, специальный синтаксис ZSH для различных цветовых кодов
% print -P '%F{red}DANGER%f'
...
% print -P '%F{red}DANGER%f' | hexdump -C
00000000 1b 5b 33 31 6d 44 41 4e 47 45 52 1b 5b 33 39 6d |.[31mDANGER.[39m|
00000010 0a |.|
00000011
% print "\033[31;5mxxx\033[0m" | hexdump -C
00000000 1b 5b 33 31 3b 35 6d 78 78 78 1b 5b 30 6d 0a |.[31;5mxxx.[0m.|
0000000f
О, -мой -zsh объединяет случайные биты кода, подобные приведенному выше, которые (в конечном итоге )генерируют что-то вроде \033[31m
кодов, показанных выше, которые затем используются терминалом. и отображается (или нет ). Как терминал обрабатывает эти коды, зависит от терминала,\033[31m
(«красный цвет переднего плана» )вместо этого может отображаться как зеленый (или игнорироваться ); наборы таких настроек цветов в терминале могут быть названы программным обеспечением терминала темами; это полностью отличается от темы oh -my -zsh, несмотря на то, что используется то же имя.
Доступный метод подключения для Linux: OpenSSH .
Поэтому проверьте, настроен ли jumphost в~/.ssh/config или /etc/ssh/ssh _config , и отключите его.