Do czego służy $TERM
?
$TERM
Zmienna jest do wykorzystania przez aplikacje, aby skorzystać z możliwości tego terminala.
Na przykład, jeśli program chce wyświetlać kolorowy tekst, musi najpierw dowiedzieć się, czy terminal, którego używasz, obsługuje kolorowy tekst, a następnie, jeśli tak, jak zrobić kolorowy tekst.
Działa to tak, że system utrzymuje bibliotekę znanych terminali i ich możliwości. W większości systemów jest to dostępne /usr/share/terminfo
(istnieje również termcap, ale jego spuścizna nie jest już używana).
Powiedzmy, że masz program, który chce wyświetlać czerwony tekst. Zasadniczo wywołuje bibliotekę terminfo, która mówi „ podaj mi sekwencję bajtów, którą muszę wysłać na czerwony tekst dla terminala xterm ”. Następnie pobiera te bajty i drukuje je.
Możesz tego spróbować samodzielnie tput setf 4; echo hi
. Spowoduje to uzyskanie setf
możliwości terminfo i przekazanie jej parametru określającego żądany 4
kolor.
Dlaczego terminal gnome polega na sobie:
Powiedzmy teraz, że masz nowy błyszczący emulator terminala, który właśnie został wydany, a systemowa biblioteka terminfo nie ma jeszcze dla niego definicji. Gdy aplikacja przejdzie w celu sprawdzenia, jak coś zrobić, zakończy się niepowodzeniem, ponieważ terminal nie jest znany.
Sposób, w jaki omijasz ten terminal, polega na kłamaniu na temat tego, kto to jest. Więc twój terminal gnomów mówi „ Jestem Xterm ”.
Xterm jest bardzo podstawowym terminalem, który istnieje od początku X11, a zatem większość emulatorów terminali obsługuje to, co obsługuje. Tak więc, mówiąc, że terminal gnome mówi, że jest to xterm, bardziej prawdopodobne jest, że będzie miał definicję w bibliotece terminfo.
Wadą tego typu terminala jest to, że terminal może obsługiwać znacznie więcej niż Xterm (na przykład wiele nowych terminali obsługuje 256 kolorów, podczas gdy starsze terminale obsługują tylko 16). Masz więc kompromis, zyskujesz więcej funkcji lub masz większą kompatybilność. Większość terminali zdecyduje się na większą kompatybilność, a tym samym reklamuje się jako xterm
.
Jeśli chcesz to zmienić, wiele terminali oferuje pewien sposób konfiguracji zachowania. Ale możesz też po prostu zrobić export TERM=gnome-terminal
.