Bağımlı olarak birçok yerde
Sanal terminallerde ve gerçek terminallerde, TERM
ortam değişkeni, zincirleme yapılan program tarafından ayarlanır login
ve bir kez oturum açtığında yürütülen etkileşimli kabuk boyunca kalıtımsal olarak alınır. Tam olarak, bunun gerçekleştiği yer sistemden sisteme ve terminal türüne göre değişir.
Gerçek, seri, terminaller, kablonun diğer ucunda bulunanlara göre çeşit olarak değişebilir. Bu yüzden geleneksel olarak, getty
program, terminal tipini belirten bir argüman ile çağrılır veya TERM
program bir servis yöneticisinin servis konfigürasyon verilerinden geçirilir .
Çekirdek sanal terminalleri, belirttiğiniz gibi, sabit bir türe sahiptir. Hareket halindeyken çekirdek sanal terminal türünü değiştirebilen NetBSD'den farklı olarak, Linux ve diğer BSD'ler, çekirdeğin yerleşik terminal emülasyon programında uygulanan tek bir sabit terminal türüne sahiptir. Linux'ta, bu tür linux
terminfo veritabanından eşleşir . (FreeBSD'nin çekirdek terminal öykünmesi xterm
9. sürümden beri sınırlı bir alt kümedir.)
- Program kullanan
mingetty
veya vc-get-tty
(no paketinden) sistemlerde, program yalnızca sanal bir terminalle konuşabileceğini "bilir" ve programın derlendiği işletim sistemine uygun "bilinen" sanal terminal türlerini sabitlediler.
- Systemd sistemlerinde , bunu okuyan
/usr/lib/systemd/system/getty@.service
birim dosyasında ( /lib/systemd/system/getty@.service
birleştirilmemiş sistemlerde) görülebilirÇevre = SÜRESİ = linux
TERM
ortamdaki değişkeni ayarlamaya geçti agetty
.
Çekirdek sanal istasyon, bir etmez terminal türünü değiştirmek. Sonuçta, çekirdekteki terminal emülatör programı değişmiyor. Öyle yanlış türünü değiştirmek için. Özellikle, bu imleci / düzenleme anahtarını CSI dizilimini tanımaya mahveder. linux
Linux çekirdek terminal emülatörü tarafından gönderilen CSI dizileri farklı olan xterm
ya da vt100
Aralık VT modunda GUI terminal emülatörü programları tarafından gönderilen CSI dizileri.
GUI terminal emülatörünüz, SSH sunucusundan screen
sahte terminal kullanan birçok programdan biridir . Terminal tipinin ne olduğu, sözde terminalin ana tarafında hangi terminal emülatör programının çalıştığına ve nasıl yapılandırıldığına bağlıdır. GUI terminal emülatörlerinin çoğu, programı TERM
ana taraftaki değeri, terminal ana emülasyonu ile eşleşen bir değişkenle başlatacaktır . SSH sunucusu gibi programlar, bağlantının istemci ucunda bulunan terminal tipini "geçmeye" çalışacaktır. Genellikle terminal emülasyonları arasından seçim yapabileceğiniz bazı menü veya yapılandırma seçenekleri vardır.
Sürükleyici el
Renk kabiliyetini tespit etmenin doğru yolu , betiğinizdeki terminal türlerinin bir listesini düzenlemek değildir . Rengi destekleyen çok sayıda terminal türü vardır.
Doğru yol termcap / terminfo'nun terminal tipiniz hakkında ne söylediğine bakmaktır.
Renk = 0
eğer tput Co> / dev / null 2> & 1
sonra
"` tput Co` "testi -gt 2 && renk = 1
elif tput renkler> / dev / null 2> & 1
sonra
testi "` tput renkler "" -gt 2 && renk = 1
fi
daha fazla okuma
- Jonathan de Boyne Pollard (2018).
TERM
. nosh Kılavuzu . Yazılımları.