Configurando o tipo de terminal no arquivo inittab

0

Eu configurei o tipo de terminal para monocromático, um em inittab , assim:

c2:... tty2 linux-m

mas quando eu digito um comando com saída colorida como:

ls --color=always -l

Ainda tenho resultado colorido. Como pode ser se o terminal estiver configurado para não-colorido (definição tty no arquivo inittab como acima).

    
por Ringger81 31.01.2018 / 11:22

2 respostas

0

O tipo de terminal descreve uma maneira particular de usar um terminal. Não há garantias de que um terminal realmente se comporta dessa maneira, nem há garantia de que um programa use outras informações para manipular o terminal.

Nesse caso, o programa ls usa seu próprio banco de dados embutido, que diz que o "linux" é colorido.

Outras leituras: ncurses FAQ Aplicativos miscitados como usuários de biblioteca

    
por 31.01.2018 / 11:26
0

Como mencionado antes, esses programas provavelmente produzem diretamente seqüências de escape ANSI :

As 256-color lookup tables became common on graphic cards, escape sequences were added to select from a pre-defined set of 256 colors:[citation needed]

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: grayscale from black to white in 24 steps

Esse argumento também seria estrito por respostas para uma pergunta semelhante intitulada Disable colors no terminal e SSH no Unix SE .

Em suas perguntas anteriores para este tópico, você mencionou que está usando o xterm. A página man do xterm também lista uma opção -cm para desabilitar o reconhecimento de seqüências de escape ANSI. Isso também é mencionado nas respostas da pergunta vinculada:

-cm

This option disables recognition of ANSI color-change escape sequences. It sets the colorMode resource to "false".

O que você está fazendo definindo as informações do terminal é que você define as capacidades do terminal (conforme man 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 elas tenham que honrá-lo de alguma forma.

    
por 02.02.2018 / 12:49