GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie und wo wird $term interpretiert?

Ich frage mich, wie etwas terminale Magie arbeitet intern.

Beim Herumspielen mit Docker-Containern wird die Umgebungsvariable $TERM war nicht eingestellt. Dies führte zu seltsam aussehenden Konsolenanwendungen wie vim und tmux, aber auch dazu, dass STRG+l (Bildschirm löschen) ignoriert wurde.

Ich bin mir ziemlich sicher, dass alle Feature wie partielle Bildschirmaktualisierungen, Farben, Befehle wie Bildschirmrücksetzung usw. werden über Escape-Codes realisiert, oder?

Wo wird diese Variable also interpretiert und ermöglicht beispielsweise das Zurücksetzen meines Terminalbildschirms mit STRG + l, wenn ich dort den richtigen Wert einstelle? Wer prüft Welche Farben werden beispielsweise unterstützt (xterm vs. xterm-256color)? Die Muschel? Die Anwendung oder eine Bibliothek wie ncurses? Und wo sind die möglichen Werte / Terminaltypen definiert?

Akzeptierte Antwort:

$TERM wird vom terminfo-System gelesen und interpretiert. terminfo bezieht sich auch auf die Datenbank mit Terminalbeschreibungen, die Sie auf den meisten Systemen unter /usr/share/terminfo finden . $TERM muss mit einem der Einträge in dieser Datenbank übereinstimmen. Es gab auch eine ältere Bibliothek namens termcap, die weniger Fähigkeiten hatte, aber terminfo hat sie ersetzt. In modernen Systemen ist terminfo Teil der ncurses-Bibliothek.

Anwendungen rufen normalerweise entweder Terminalfunktionen direkt ab, indem sie Bibliotheksfunktionen wie tigetstr() verwenden oder sie verwenden Fluchschnittstellen auf höherer Ebene, um das Layout des Bildschirms zu verwalten. So oder so, $TERM und die terminfo-Datenbank wird konsultiert.


Linux
  1. So starten Sie den Linux-Befehl im Hintergrund und trennen den Prozess im Terminal

  2. So passen Sie Bash-Farben und -Inhalte in der Linux-Terminal-Eingabeaufforderung an

  3. So machen Sie Ihr Linux-Terminal und Ihre Shell weihnachtlich

  4. So scrollen Sie im Sliced-Screen-Terminal nach oben und unten

  5. in der Linux-Konsole, wie man die Ausgabe NICHT umschließt

So sichern und wiederherstellen Sie den Verlauf des Linux-Terminals

So installieren und verwenden Sie den Tilix Terminal Emulator unter Linux

So installieren und verwenden Sie den Konsole-Terminal-Emulator unter Linux

So installieren und verwenden Sie das Terminator-Terminal unter Linux

So kopieren Sie Dateien und Verzeichnisse im Linux-Terminal

So löschen Sie das Terminal unter Linux {Bildschirm in Linux löschen}