TERM
, menurut konvensi mengacu pada deskripsi terminal. Awalnya ini bernama bagian dari file teks termcap (dimulai pada akhir 1970-an). Pada pertengahan 1980-an, terminfo diperkenalkan sebagai file yang dikompilasi (biner) yang menghemat waktu saat mendapatkan deskripsi terminal. Walaupun keduanya tersedia untuk semua platform seperti Unix, termcap jarang digunakan saat ini kecuali sebagai emulasi menggunakan terminfo.
Untuk kedua format data ini, aplikasi biasanya mengekstrak data dari basis data terminal dengan pustaka pemrograman yang dapat digunakan kembali. Pustaka pemrograman terminfo biasanya merupakan bagian dari pustaka kutukan tingkat tinggi meskipun mungkin disediakan (misalnya, opsional seperti dalam ncurses) sebagai file pustaka yang terpisah. Apakah perpustakaan terminfo disediakan secara terpisah atau tidak, dalam kasus ini dianggap sebagai perpustakaan kutukan. (Ada juga beberapa perpustakaan tingkat tinggi lainnya seperti bahasa gaul).
Entri basis data terminal untuk setiap terminal berisi properti yang disebut kemampuan . Mereka memberi tahu perpustakaan kutukan (atau aplikasi yang menggunakan termcap / terminfo secara langsung) bagaimana melakukan operasi yang bermanfaat seperti menghapus layar. Untuk sebagian besar terminal yang merupakan urutan keluar. Beberapa terminal mungkin tidak mendukung urutan pelarian untuk tujuan ini; ada kemampuan lain yang dapat dikombinasikan oleh perpustakaan kutukan untuk menghapus layar (seperti membersihkan setiap baris). Tidak semua kemampuan adalah urutan pelarian. Ada kemampuan boolean dan angka juga, misalnya, untuk mengetahui apakah suatu fitur didukung, dan seberapa besar sesuatu itu (seperti ukuran layar).
Setiap aplikasi yang menggunakan termcap / terminfo menggunakan pustaka yang sesuai untuk mengambil deskripsi terminal, serta untuk melakukan operasi seperti mengganti parameter ke dalam kemampuan tertentu. Sebagai contoh, sebagian besar terminal menyediakan kemampuan untuk memindahkan kursor dengan jumlah kolom atau baris tertentu dari lokasi saat ini. Fungsi tparm
(atau tiparm
) menggantikan angka ke dalam kapabilitas untuk mendapatkan urutan pelarian aktual.
Kutukan perpustakaan memiliki aplikasi baris perintah yang menjaga database terminal ( tic , infocmp ) dan beberapa yang digunakan dalam skrip shell untuk query database terminal atau melakukan operasi tingkat rendah dengan kemampuan terminal ( tput , uji di / reset ).
Ada aplikasi tidak konvensional yang digunakan TERM
tanpa menggunakan database terminal. Sebagian besar dari mereka hanya melakukan hardcode perilakunya (seperti GNU grep, groff, dan tautan / links2 / elinks peramban web tekstual), sementara beberapa memiliki jumlah yang sama dengan basis data terminal mereka sendiri (seperti GNU ls), tetapi menggunakan aturan dan tingkah laku.
Kembali ke pertanyaan:
Jadi di mana variabel ini ditafsirkan dan memungkinkan misalnya mengatur ulang layar terminal saya menggunakan CTRL + l jika saya menetapkan nilai yang benar di sana?
Aplikasi dan pustaka yang mendasarinya menafsirkan nilai ini. Sebab controlL, itu dapat dilakukan untuk bash di perpustakaan readline (yang menggunakan antarmuka pemrograman termcap).
Siapa yang memeriksa misalnya warna mana yang didukung (xterm vs xterm-256color)?
Basis data terminal menyimpan jumlah warna sebagai kemampuan, bersama dengan kemampuan untuk mengatur warna latar depan dan latar belakang serta mengatur ulang warna. Beberapa aplikasi menggabungkan kemampuan ini dengan informasi lain (seperti pernyataan pengembang yang xterm
"benar-benar" xterm-256color
).
Kerang?
Sebagian besar shell menggunakan antarmuka pemrograman termcap untuk mendapatkan informasi terminal. Namun, mereka adalah aplikasi yang memiliki perilaku mereka sendiri (belum tentu sama dengan kutukan).
Aplikasi atau perpustakaan seperti ncurses?
(lihat di atas: cangkang adalah jenis aplikasi tertentu)
Dan di mana nilai-nilai / tipe-tipe terminal yang mungkin didefinisikan?
Biasanya yang ada di database terminal dibagi oleh aplikasi menggunakan kutukan atau perpustakaan slang. Beberapa aplikasi di-hardcode atau menggunakan database pribadi.
Bacaan lebih lanjut: