Untuk menginisialisasi ulang terminal, gunakan reset
sederhana akan memperbaiki ini. Untuk info dan opsi selengkapnya, man reset
Jawaban @James Henstridge untuk pertanyaan AskUbuntu ini tampaknya mengidentifikasi kesalahan dengan benar karena terminal macet dalam mode "pengalamatan kursor", apa pun artinya.
Solusi pertamanya, perintah $ tput rmcup
, berfungsi, meskipun tidak banyak penjelasan. Jadi, saya mencoba mencari tahu.
man tput
memberitahu kita bahwa
tput
utilitas menggunakanterminfo
database untuk membuat nilai kapabilitas dan informasi yang bergantung pada terminal tersedia untuk shell (lihat sh(1)), untuk menginisialisasi atau mengatur ulang terminal, atau mengembalikan nama panjang dari jenis terminal yang diminta.
terminfo
juga tidak didokumentasikan dengan sangat berguna. Sumber terlengkap yang dapat saya temukan adalah artikel tldp.org. Ternyata terminfo
adalah basis data terminal yang berbeda dan perintah serta kemampuan apa yang mereka miliki. Mungkin setiap instalasi Linux memilikinya? Jadi Anda dapat menggunakan terminal yang berbeda?
man terminfo
menunjukkan bahwa file-nya ada di /etc/terminfo/*/*
, tetapi di Ubuntu 16.04 saya hanya menemukan README di sana. File sebenarnya ada di /lib/terminfo/*/*
; misalnya /lib/terminfo/l/linux
, file mana yang mungkin paling relevan untuk sebagian besar pembaca? Saya tidak tahu, karena file-file ini tidak dapat dibaca oleh manusia. Artikel tldp.org yang ditautkan di atas menyatakan bahwa infocmp
dapat digunakan untuk melihat sumbernya, tetapi itu tidak benar:
$ infocmp /lib/terminfo/l/linux
infocmp: couldn't open terminfo file /lib/terminfo/l/linux.
Artikel tersebut juga menyebutkan file kode sumber /etc/termcap
dan /etc/terminfo.src
, tetapi ini tidak ada di Ubuntu 16.04. Saya menemukan satu set /usr/share/vte/termcap*/
direktori yang berisi xterm
yang dapat dibaca manusia file. Saya harus menebak bahwa ini semua terhubung ke Terminal GNOME yang saya gunakan yang merupakan default untuk Ubuntu, tetapi saya lelah mencoba mencari tahu caranya.
man
halaman untuk terminfo
memang memiliki satu lagi catatan yang bermanfaat. Di bawah 'Predefined Capabilities' adalah 'Variable String' exit_ca_mode
dengan 'capname' ("nama kemampuan", saya asumsikan) rmcup
dengan keterangan strings to end programs using cup
. Deskripsinya tidak terlalu membantu, tetapi nama variabelnya adalah; ini harus mengacu pada kemampuan terminal untuk keluar dari 'mode pengalamatan kursor', di mana terminal macet.
Jadi, $ tput rmcup
harus menggunakan tput
untuk mengakses terminfo
database dan aktifkan exit_ca_mode
terminal saat ini kemampuan rmcup
, yang mematikan mode pengalamatan kursor dan mengembalikan terminal ke perilaku pengguliran normalnya.