Festlegen des Terminaltyps in der Inittab-Datei

Festlegen des Terminaltyps in der Inittab-Datei

Ich habe den Terminaltyp in inittabder Datei wie folgt auf Monochrom eingestellt:

c2:... tty2 linux-m

aber wenn ich einen Befehl eingebe, mit farbiger Ausgabe wie:

ls --color=always -l

Ich erhalte immer noch farbige Ergebnisse. Wie kann das sein, wenn das Terminal auf Nicht-Farbe eingestellt ist (TTY-Definition in der Inittab-Datei wie oben).

Antwort1

Der Terminaltyp nurbeschreibteine bestimmte Art, ein Terminal zu verwenden. Es gibt keine Garantie, dass sich ein Terminal tatsächlich so verhält, und es gibt auch keine Garantie, dass ein Programm andere Informationen zur Manipulation des Terminals verwendet.

In diesem Fall lsverwendet das Programm seine eigene fest codierte Datenbank, die besagt, dass „Linux“ Farbe erzeugt.

Weiterführende Literatur: ncurses FAQBewerbungen fälschlicherweise als Bibliotheksnutzer angegeben

Antwort2

Wie bereits erwähnt, geben diese Programme wahrscheinlich direkt ausANSI-Escapesequenzen:

Als Lookup-Tabellen mit 256 Farben auf Grafikkarten üblich wurden, wurden Escape-Sequenzen hinzugefügt, um aus einem vordefinierten Satz von 256 Farben auszuwählen:[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: Graustufen von Schwarz nach Weiß in 24 Schritten

Dieses Argument würde auch durch Antworten auf eine ähnliche Frage mit dem Titel gestärkt werden.Deaktivieren Sie Farben auf dem Terminal und SSH auf dem Unix SE.

In Ihren vorherigen Fragen zu diesem Thema haben Sie erwähnt, dass Sie xterm verwenden.xterm-manpagelistet auch eine -cmOption zum Deaktivieren der Erkennung von ANSI-Escape-Sequenzen auf. Dies wird auch in den Antworten auf die verlinkte Frage erwähnt:

-cm

Diese Option deaktiviert die Erkennung von ANSI-Escapesequenzen für Farbänderungen. Sie setzt die Ressource colorMode auf „false“.

Mit der Festlegung der Terminalinformationen definieren Sie die Fähigkeiten des Terminals (gemäßMann Terminfo). Was Sie tun, bedeutet also, dass Sie anderen mitteilen lsusw., dass Sie sicher sind, bestimmte Dinge tun zu können, aber das bedeutet nicht, dass sie das in irgendeiner Weise respektieren müssen.

verwandte Informationen