Di banyak tempat, tergantung
Pada terminal virtual dan terminal nyata, TERM
variabel lingkungan diatur oleh program yang terhubung login
, dan diwarisi sepanjang jalan ke shell interaktif yang dijalankan setelah seseorang telah logon. Di mana, tepatnya, ini terjadi bervariasi dari satu sistem ke sistem, dan sesuai dengan jenis terminal.
Jenis nyata, serial, terminal dapat bervariasi, sesuai dengan apa yang ada di ujung kabel. Jadi secara konvensional getty
program dipanggil dengan argumen yang menentukan jenis terminal, atau melewati TERM
program dari data konfigurasi layanan manajer layanan.
Terminal virtual kernel, seperti yang telah Anda catat, memiliki tipe tetap. Tidak seperti NetBSD, yang dapat memvariasikan jenis terminal virtual kernel dengan cepat, Linux dan BSD lainnya memiliki satu jenis terminal tetap yang diimplementasikan dalam program emulasi terminal bawaan kernel. Di Linux, tipe itu cocok linux
dengan basis data terminfo. (Emulasi terminal kernel FreeBSD adalah xterm
subset terbatas sejak versi 9.)
Untuk terminal virtual kernel, seseorang tidak mengubah tipe terminal. Program emulator terminal di kernel tidak berubah. Tidak benar untuk mengubah jenisnya. Secara khusus, ini akan mengacaukan pengenalan urutan CSI kursor / pengeditan. The linux
urutan CSI dikirim oleh Linux kernel terminal emulator yang berbeda dengan xterm
atau vt100
urutan CSI dikirim oleh GUI program emulator terminal dalam mode Desember VT.
Emulator terminal GUI Anda adalah salah satu dari banyak program, mulai dari perintah SSH hingga screen
, yang menggunakan pseudo-terminal. Apa tipe terminal tergantung dari program emulator terminal apa yang berjalan di sisi master terminal semu, dan bagaimana hal itu dikonfigurasikan. Kebanyakan emulator terminal GUI akan memulai program di sisi slave dengan TERM
variabel yang nilainya cocok dengan emulasi terminal mereka di sisi master. Program seperti server SSH akan berusaha "melewati" jenis terminal yang ada di ujung koneksi klien. Biasanya ada beberapa menu atau opsi konfigurasi untuk memilih di antara emulasi terminal.
Tangan yang mencengkeram
Cara yang tepat untuk mendeteksi kapabilitas warna bukanlah dengan memasang daftar jenis terminal di skrip Anda. Ada banyak sekali jenis terminal yang mendukung warna.
Cara yang benar adalah dengan melihat apa yang termcap / terminfo katakan tentang tipe terminal Anda.
warna = 0
jika tput Co> / dev / null 2> & 1
kemudian
test "` tput Co` "-gt 2 && color = 1
warna tif elif> / dev / null 2> & 1
kemudian
test "` tput colors` "-gt 2 && color = 1
fi
Bacaan lebih lanjut
- Jonathan de Boyne Pollard (2018).
TERM
. Panduan nosh . Perangkat lunak.