Mengubah emulator terminal

10

Saya memiliki akses ssh ke mesin jarak jauh. Di mesin ini jika saya menjalankan echo $TERMsaya dapatkan xterm.

Jika saya ingin mengubah terminal emulator saya ke beberapa emulator lain (dengan asumsi bahwa itu diinstal pada mesin remote), bagaimana saya melakukannya?

Amelio Vazquez-Reina
sumber

Jawaban:

15

Nilai variabel lingkungan TERM digunakan oleh server (dalam sistem V, atau BSD, diturunkan OS) untuk mengontrol bagaimana input diakui oleh sistem, dan kemampuan apa yang ada untuk output. Beberapa jenis terminal cukup mirip sehingga dapat dipertukarkan namun tetap bermanfaat, sementara yang lain dapat membuat sistem tidak dapat digunakan sampai Anda membuka koneksi baru dengan nilai yang didukung untuk JANGKA. Misalnya, dari satu sistem Linux ke sistem Linux lainnya, Anda mungkin akan mengalami sedikit perbedaan antara pengaturan vt100, vt220, dan xterm. Sebagian besar perbedaan akan terletak pada bagaimana output ditampilkan, dan apakah warna atau font tebal tersedia untuk jenis terminal tersebut. Database termcap mencantumkan semua jenis terminal, dengan berbagai kemampuannya.

Selama Anda tidak beralih ke jenis terminal yang tidak kompatibel dengan keyboard dan layar Anda, Anda akan baik-baik saja.

baca halaman manual untuk istilah, dan termcap, di sistem Anda untuk informasi lebih lanjut.

Untuk mengubah jenis terminal:

dalam bash:

export TERM=vt100

di bourne shell atau ksh:

TERM=vt100
export TERM

dalam csh atau tcsh:

setenv TERM vt100

vt100adalah terminal yang cukup aman untuk mulai bermain. itu kompatibel dengan xterm, tetapi tidak menampilkan warna atau huruf tebal, dan mungkin tidak mengenali tombol F * Anda, tetapi Anda tidak mungkin benar-benar mengacaukan apa pun menggunakan vt100.

Banyak orang menggunakan deteksi terminal dalam skrip init pribadi untuk mengoptimalkan pengalaman pengguna mereka tergantung bagaimana mereka masuk ke server. Misalnya, atur PS1 polos jika Anda menggunakan vt100, gunakan variabel warna dan dinamis saat menggunakan bash dalam xterm.

Semoga berhasil dengan riset Anda.

Tim Kennedy
sumber
3
@ intrpc Perhatikan bahwa sangat jarang perlu mengubah TERMvariabel; sebagian besar diperlukan ketika Anda masuk ke sistem yang lebih lama yang tidak tahu tentang nama terminal yang lebih baru (dan belum ada banyak jenis terminal baru dalam 15 tahun terakhir atau lebih, kebanyakan emulator terminal menggunakan gaya mereka sendiri xterm). TERMadalah jenis program terminal percaya mereka berbicara dengan, itu tidak mengubah apa terminal sebenarnya.
Gilles 'SANGAT berhenti menjadi jahat'
9

Anda salah paham.

Contoh konsol atau terminal atau Putty Anda di sisi LOCAL adalah "terminal emulator" yang sebenarnya, meskipun saat ini kami hanya menyingkat menjadi "terminal". Penggunaan berasal dari belakang ketika orang benar-benar menggunakan terminal monitor dan keyboard untuk masuk ke server mainframe daripada menggunakan beberapa konsol dan lingkungan pengguna grafis.

Variabel $ TERM hanya memberi tahu sistem jarak jauh seperti apa kode kontrol yang akan dipahami terminal Anda ketika mengirimkannya (misalnya, untuk menghasilkan menu berbasis teks atau apa pun berdasarkan pada libncurses).

Saya tidak yakin apa yang ingin Anda capai, tetapi mengubah $ TERM mungkin tidak akan membantu.

Shadur
sumber
Terima kasih @Shadur, ini sangat membantu. Saya ingin mengaktifkan dukungan untuk lebih banyak warna. Saya mengalami masalah dengan melarikan diri karakter, seperti yang saya jelaskan dalam pembaruan dalam pertanyaan ini . Dalam hal itu penting, kedua mesin / sistem modern ( Ubuntu 11.10pada mesin lokal saya dan Red Hat Enterprise Linux Server release 5.4 (Tikanga)pada mesin jarak jauh)
Amelio Vazquez-Reina
Maaf, tautannya ke pertanyaan yang salah. Saya baru saja mengedit komentar saya di atas.
Amelio Vazquez-Reina
Maka masalah Anda masih bukan variabel TERM, karena jendela gnome-terminal saya, SSHed ke server jauh dengan nilai $ TERM dari xterm tidak memiliki masalah rendering warna ansi. Mungkin lebih baik jika Anda menjelaskan masalah Anda daripada bertanya bagaimana menerapkan apa yang menurut Anda harus menjadi solusinya.
Shadur
Terima kasih, tetapi saya tidak mengatakan bahwa "masalah saya" adalah $TERMvariabel. Juga, saya tidak menanyakan pertanyaan ini untuk tujuan tunggal menemukan solusi untuk masalah / pertanyaan yang berbeda. Jika ada, pertanyaan saya yang lain memotivasi pertanyaan ini. Akhirnya, saya tidak berpikir ada yang salah dengan berharap untuk belajar lebih banyak tentang bagaimana emulator terminal bekerja dengan menanyakan pertanyaan ini.
Amelio Vazquez-Reina
Ngomong-ngomong, jangan salah paham, saya menghargai saran Anda dan, seperti yang saya katakan sebelumnya, jawaban Anda membantu saya memahami emulator terminal lebih baik.
Amelio Vazquez-Reina