Установка типа терминала в файле inittab

Установка типа терминала в файле inittab

Я установил монохромный тип терминала в inittabфайле следующим образом:

c2:... tty2 linux-m

но когда я ввожу команду с цветным выводом, например:

ls --color=always -l

Я все еще получаю цветной результат. Как это может быть, если терминал настроен на отсутствие цвета (определение tty в файле inittab, как указано выше).

решение1

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

В этом случае lsпрограмма использует собственную жестко запрограммированную базу данных, в которой указано, что «linux» выполняет цвет.

Дальнейшее чтение: часто задаваемые вопросы по ncursesЗаявки ошибочно принимаются за пользователей библиотеки

решение2

Как упоминалось ранее, эти программы, скорее всего, напрямую выводятEscape-последовательности ANSI:

Поскольку таблицы поиска на 256 цветов стали обычным явлением на графических картах, были добавлены управляющие последовательности для выбора из предопределенного набора из 256 цветов:[нужна ссылка]

ESC[ … 38;5;<n> … m Select foreground color
 ESC[ … 48;5;<n> … m Select background color
 0-  7:  standard colors (as in ESC [ 30–37 m)
 8- 15:  high intensity colors (as in ESC [ 90–97 m)
16-231:  6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)

232-255: оттенки серого от черного до белого за 24 шага

Этот аргумент также будет подкреплен ответами на аналогичный вопрос под названиемОтключить цвета на терминале и SSH на Unix SE.

В своих предыдущих вопросах по этой теме вы упомянули, что используете xterm.страница руководства xtermтакже перечислены -cmопции для отключения распознавания управляющих последовательностей ANSI. Это также упоминается в ответах на связанный вопрос:

-см

Эта опция отключает распознавание управляющих последовательностей смены цвета ANSI. Она устанавливает ресурс colorMode в значение "false".

Настраивая информацию о терминале, вы определяете возможности терминала (в соответствии сman terminfo). Таким образом, то, что вы делаете, равносильно тому, что вы говорите lsи т. д., что вы уверены, что можете делать определенные вещи, но это не значит, что они должны это каким-либо образом уважать.

Связанный контент