Untuk apa $TERM
?
The $TERM
variabel untuk digunakan oleh aplikasi untuk mengambil keuntungan dari kemampuan terminal itu.
Misalnya, jika suatu program ingin menampilkan teks berwarna, ia harus terlebih dahulu mencari tahu apakah terminal yang Anda gunakan mendukung teks berwarna, dan jika ya, bagaimana melakukan teks berwarna.
Cara kerjanya adalah sistem menyimpan perpustakaan dari terminal yang diketahui dan kemampuannya. Pada kebanyakan sistem ini ada /usr/share/terminfo
(ada juga termcap, tapi warisannya tidak banyak digunakan lagi).
Jadi katakanlah Anda memiliki program yang ingin menampilkan teks merah. Ini pada dasarnya membuat panggilan ke perpustakaan terminfo yang mengatakan " beri saya urutan byte yang saya harus kirim untuk teks merah untuk terminal xterm ". Kemudian hanya mengambil byte dan mencetaknya.
Anda dapat mencobanya sendiri dengan melakukan tput setf 4; echo hi
. Ini akan mendapatkan setf
kemampuan terminfo dan memberikannya parameter 4
, yang merupakan warna yang Anda inginkan.
Mengapa terminal gnome terletak pada dirinya sendiri:
Sekarang katakanlah Anda memiliki emulator terminal mengkilap baru yang baru saja dirilis, dan pustaka terminfo sistem belum memiliki definisi untuk itu. Ketika aplikasi Anda pergi untuk mencari cara melakukan sesuatu, itu akan gagal karena terminal tidak diketahui.
Cara terminal Anda menyiasatinya adalah dengan berbohong tentang siapa itu. Jadi terminal gnome Anda mengatakan " I'm xterm ".
Xterm adalah terminal yang sangat dasar yang telah ada sejak awal X11, dan dengan demikian sebagian besar terminal emulator mendukung apa yang didukungnya. Jadi dengan terminal gnome mengatakan itu adalah xterm, itu lebih mungkin untuk memiliki definisi di perpustakaan terminfo.
Kelemahan dari berbohong tentang jenis terminal Anda adalah bahwa terminal mungkin sebenarnya mendukung lebih banyak daripada xterm (misalnya, banyak terminal baru mendukung 256 warna, sedangkan terminal lama hanya mendukung 16). Jadi Anda memiliki tradeoff, dapatkan lebih banyak fitur, atau lebih banyak kompatibilitas. Sebagian besar terminal akan memilih lebih banyak kompatibilitas, dan karenanya memilih untuk mengiklankan diri mereka sebagai xterm
.
Jika Anda ingin mengesampingkan ini, banyak terminal akan menawarkan beberapa cara untuk mengkonfigurasi perilaku. Tapi Anda juga bisa melakukannya export TERM=gnome-terminal
.