Wofür ist das $TERM
?
Die $TERM
Variable wird von Anwendungen verwendet, um die Funktionen dieses Terminals zu nutzen.
Wenn ein Programm beispielsweise farbigen Text anzeigen möchte, muss es zuerst herausfinden, ob das von Ihnen verwendete Terminal farbigen Text unterstützt, und wenn ja, wie farbiger Text angezeigt werden soll.
Auf diese Weise verwaltet das System eine Bibliothek bekannter Terminals und ihrer Funktionen. Auf den meisten Systemen ist dies /usr/share/terminfo
der Fall (es gibt auch Termcap, aber es wird nicht mehr viel verwendet).
Nehmen wir also an, Sie haben ein Programm, das roten Text anzeigen möchte. Es ruft im Grunde genommen die terminfo-Bibliothek auf, in der steht " Gib mir die Folge von Bytes, die ich für roten Text für das xterm-Terminal senden muss ". Dann nimmt es nur diese Bytes und druckt sie aus.
Sie können dies selbst versuchen, indem Sie dies tun tput setf 4; echo hi
. Dadurch wird die setf
terminfo-Fähigkeit erhalten und es wird ein Parameter übergeben 4
, bei dem es sich um die gewünschte Farbe handelt.
Warum gnome terminal über sich selbst lügt:
Nehmen wir nun an, Sie haben einen glänzenden neuen Terminal-Emulator, der gerade veröffentlicht wurde, und die Terminfo-Bibliothek des Systems hat noch keine Definition dafür. Wenn Ihre Anwendung nachschaut, wie etwas zu tun ist, schlägt dies fehl, da das Terminal nicht bekannt ist.
Die Art und Weise, wie Ihr Terminal dies umgeht, besteht darin, zu lügen, wer es ist. Ihr Gnomenterminal sagt also " I'm xterm ".
Xterm ist ein sehr einfaches Terminal, das es seit den Anfängen von X11 gibt, und daher unterstützen die meisten Terminalemulatoren, was es unterstützt. Wenn das Gnome-Terminal sagt, es sei ein xterm, ist es wahrscheinlicher, dass es eine Definition in der terminfo-Bibliothek hat.
Der Nachteil Ihres Terminaltyps ist, dass das Terminal möglicherweise wesentlich mehr unterstützt als xterm (z. B. unterstützen viele neue Terminals 256 Farben, während ältere Terminals nur 16 unterstützen). Sie haben also einen Kompromiss, erhalten mehr Funktionen oder mehr Kompatibilität. Die meisten Terminals werden sich für mehr Kompatibilität entscheiden und sich daher dafür entscheiden, als zu werben xterm
.
Wenn Sie dies überschreiben möchten, bieten viele Terminals eine Möglichkeit, das Verhalten zu konfigurieren. Sie können es aber auch einfach tun export TERM=gnome-terminal
.