
Eu configurei o tipo de terminal para monocromático no inittab
arquivo assim:
c2:... tty2 linux-m
mas quando digito um comando com saída colorida como:
ls --color=always -l
Ainda consigo resultados coloridos. Como pode ser se o terminal estiver configurado para não colorido (definição tty no arquivo inittab como acima).
Responder1
Apenas o tipo de terminaldescreveuma maneira particular de usar um terminal. Não há garantias de que um terminal realmente se comporte dessa maneira, nem há qualquer garantia de que um programa utilize outras informações para manipular o terminal.
Nesse caso, o ls
programa usa seu próprio banco de dados codificado, que diz que “linux” faz cores.
Leitura adicional: Perguntas frequentes sobre ncursesAplicativos confundidos como usuários da biblioteca
Responder2
Como mencionado antes, esses programas provavelmente produzem diretamenteSequências de escape ANSI:
À medida que as tabelas de pesquisa de 256 cores se tornaram comuns em placas gráficas, sequências de escape foram adicionadas para selecionar um conjunto predefinido de 256 cores:
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: escala de cinza do preto ao branco em 24 etapas
Este argumento também seria fortalecido pelas respostas a uma pergunta semelhante intituladaDesative cores no terminal e SSH no Unix SE.
Nas perguntas anteriores deste tópico, você mencionou que está usando o xterm. Opágina de manual do xtermtambém lista uma -cm
opção para desativar o reconhecimento de sequências de escape ANSI. Isso também é mencionado nas respostas à pergunta vinculada:
-cm
Esta opção desativa o reconhecimento de sequências de escape de mudança de cor ANSI. Ele define o recurso colorMode como "false".
O que você está fazendo ao definir as informações do terminal é definir os recursos do terminal (conformehomem terminfo). Como tal, o que você está fazendo equivale a dizer, ls
e assim por diante, que você tem certeza de que pode fazer certas coisas, mas isso não significa que eles tenham que honrá-las de alguma forma.