Ne $TERM
için?
$TERM
Değişken o terminalin yeteneklerinden yararlanmak için uygulamalar tarafından kullanılmak içindir.
Örneğin, bir program renkli metni görüntülemek istiyorsa, önce kullandığınız terminalin renkli metni destekleyip desteklemediğini ve sonra eğer renkli metnin nasıl yapıldığını öğrenmelidir.
Bunun çalışması, sistemin bilinen terminallerin ve yeteneklerinin bir kütüphanesini tutmasıdır. Çoğu sistemde bu /usr/share/terminfo
var (ayrıca termcap var, ancak artık fazla kullanılmayan bir miras).
Diyelim ki kırmızı metni görüntülemek isteyen bir programınız var. Temel olarak " xterm terminali için kırmızı metin için göndermem gereken bayt sırasını ver " yazan terminfo kütüphanesine çağrı yapar . Sonra sadece bu baytları alır ve yazdırır.
Bunu yaparak kendiniz deneyebilirsiniz tput setf 4; echo hi
. Bu, setf
terminfo kabiliyetine sahip olacak ve onu 4
istediğiniz rengin olduğu bir parametresini geçecektir .
GNOME terminalinin kendisi neden yalan söylüyor:
Şimdi yeni piyasaya sürülmüş bazı yeni terminal emülatörlerine sahip olduğunuzu ve sistemin terminfo kütüphanesinin henüz bir tanımı olmadığını söyleyelim. Uygulamanız bir şeyi nasıl yapacağınızı aramaya başladığında, terminal bilinmediğinden başarısız olur.
Terminalinizin buralarda dolaşması, onun kim olduğu hakkında yalan söylemektir. Gnome terminaliniz " ben xterm " diyor.
Xterm, X11'in başlangıcından beri etrafta olan çok temel bir terminaldir ve bu nedenle çoğu terminal emülatörü, desteklediklerini desteklemektedir. GNOME terminalinin bir xterm olduğunu söyleyerek terminfo kütüphanesinde bir tanımı olması daha muhtemeldir.
Terminal türünüz hakkında söylenmenin olumsuz tarafı, terminalin aslında xterm'den çok daha fazlasını destekleyebilmesidir (örneğin, birçok yeni terminal 256 rengi desteklerken, eski terminaller yalnızca 16'yı desteklemektedir). Yani, bir takasınız, daha fazla özellik edinin veya daha fazla uyumluluğunuz var. Çoğu terminal daha fazla uyumluluk tercih eder ve bu nedenle kendileri olarak reklam vermeyi seçer xterm
.
Bunu geçersiz kılmak istiyorsanız, birçok terminal davranışı yapılandırmanın bir yolunu sunacaktır. Ama sen de yapabilirsin export TERM=gnome-terminal
.