Kadang-kadang, layar terminal kacau, dan ketika kita gunakan man ls
untuk membaca halaman manual, atau tekan panah ATAS untuk pergi ke perintah sebelumnya dalam sejarah, layar akan menampilkan karakter bukan sebagai tempat yang tepat. (misalnya, perlakukan ujung layar seperti di bagian tengah layar).
Perintah reset
dicoba dan tidak akan berhasil. Salah satu cara yang berhasil adalah dengan keluar atau menutup jendela, dan mengubah ukuran jendela terlebih dahulu, lalu lakukan ssh
(atau tutup tab itu, dan ubah ukuran jendela, lalu buka tab baru untuk mendapatkan shell baru).
Tetapi dengan cara ini, kita akan kehilangan apa pun yang sebelumnya kita lakukan, seperti memulai konsol mesin virtual, dll. Jadi jika kita tidak menutup shell, apakah ada cara untuk memperbaiki masalah ini?
(Ini terjadi sebelum tepat di dalam Fedora, dan juga untuk Macbook ssh
ke kotak RHEL 5.4).
Pembaruan: Saya ingat sekarang bagaimana hal itu terjadi di Fedora: Saya membuka Terminal, dan melakukan FreeVM untuk menggunakan konsol dari Mesin Virtual (shell). Saya pikir itu ukuran 80 x 25 dan kemudian setelah beberapa saat, saya mengubah ukuran Terminal menjadi 130 x 50 kira-kira, dan kemudian "kulit dalam" (dari VM) mulai berperilaku aneh).
reset
tidak menyelesaikan masalah.^Jreset^J
, di mana^J
berarti menekanctrl-J
. Atau (pada terminal grafis) Anda dapat mencobaReset
tombolnya. Juga, beberapa program tidak siap untuk mengubah ukuran terminal di bawahnya (ya, perangkat lunak kuno hidup dan menendang) atau hanya berperilaku buruk ketika terminal menjadi terlalu kecil.Jawaban:
Jika Anda menggunakan bash, periksa apakah opsi "checkwinsize" diaktifkan di sesi Anda menggunakan
Jika Anda tidak mengerti
lalu aktifkan dengan
Dokumentasi Bash mengatakan untuk atribut "checkwinsize":
Jika Anda menyukai pengaturan, Anda dapat mengaktifkan
checkwinsize
di~/.bashrc
.shopt -s checkwinsize
shopt -u checkwinsize
sumber
Anda dapat mencoba Ctrl+ L. Ini membersihkan dan / atau menggambar ulang layar terminal, tergantung pada programnya.
sumber
menambahkan opsi ini ke exec buruh pelabuhan tampaknya menyelesaikan masalah saya
sumber
Saya memiliki masalah yang sama dan tidak ada resep di atas yang bekerja untuk saya karena saya percaya bahwa bash saya tidak pernah menerima
SIGWINCH
sinyal, yang terjebak oleh proses induknya.Saya akhirnya menemukan solusi. Saya menambahkan ke
.bashrc
:Sekarang setiap kali saya mendapatkan prompt baru, jendela saya disesuaikan kembali.
Terima kasih kepada UKmonkey untuk peningkatan PROMPT_COMMAND.
sumber
export PROMPT_COMMAND="resize &>/dev/null; $PROMPT_COMMAND"
sehingga perintah cepat yang lama, apa pun yang saya dapat akan dipertahankanSaya hanya ingin menambahkan apa yang sudah disebutkan Arcadien. Pemberian checkwinsize berfungsi, tetapi bagi saya, yang diperlukan adalah mengatur ulang ukuran jendela agar berfungsi dengan benar. Saya kira checkwinsize dimaksudkan untuk menghilangkan ini, tetapi masih, layak dicoba. Coba ubah ukuran jendela atau un-memaksimalkan dan memaksimalkannya memposting opsi ini.
sumber
Saya menghadapi masalah yang sama dari waktu ke waktu menggunakan zsh di macOS. Doa sederhana
reset
perintah membuat terminal sesuai dengan keinginan saya lagi.sumber
reset
itu tidak bekerja untuk mereka, dan ini sebenarnya adalah inti dari pertanyaan ....reset
bekerja dalam kasus ini. Saya menambahkan jawaban ini untuk membantu siapa saja, yang menghadapi masalah yang sama pada MacOS dan tidak mengetahui tentangreset
perintah.reset
berfungsi di Windows Putty dengan Ubuntu 16.04!Saya memiliki masalah yang sama dengan Anda dan ini adalah apa yang saya lakukan:
Saya memiliki
.profile
pengaturan di pengguna saya, jadi di situlah saya melakukan semua perubahan saya.Ada paket yang disebut
xterm
yang tersedia melaluiapt-get
saya tidak tahuyum
. Tapi saya melakukan instalasi lokal dari sumber karena saya tidak memiliki hak instalasi. LINK: http://invisible-island.net/xterm/#downloadSaya mengekspor jalur di profil saya dan memintanya di tempat yang sama
Jadi sekarang setiap kali saya masuk, ukuran terminal diatur sesuai dengan ukurannya.
sumber
Nah, itu masalah umum dan harus ada solusi sederhana.
Jika tindakan lain seperti Ctrl + A Ctrl + L tidak berfungsi, coba gunakan
stty
:Atau: Tinggalkan layar (Ctrl + AD untuk melepaskan) dan keluar dari sesi SSH Anda.
stty -a | grep rows
: Dapatkan jumlah baris dan kolom.Contoh:
speed 38400 baud; rows 33; columns 133; line = 0;
stty
output harus berbeda.Contoh:
speed 38400 baud; rows 47; columns 177; line = 0;
stty rows N
dan distty columns N
mana N adalah nomor "nyata" (di luar layar). Contoh:$ stty rows 33; stty columns 133
Jika Anda menggunakan Terminator , Anda dapat melewati tiga langkah pertama karena ini menunjukkan jumlah kolom dan baris di bagian atas.
Anda tidak perlu mengubah ukuran jendela terminal Anda untuk mengalami hal ini. Admin biasanya masuk dari komputer yang berbeda dan ketika monitor yang terpasang memiliki ukuran (resolusi) yang berbeda, sebuah jendela yang dimaksimalkan akan memiliki ukuran yang berbeda di setiap komputer. Sebenarnya agak sulit untuk tidak sering mengalami hal ini.
Dan hasilnya bukan hanya beberapa halaman manual tidak muncul dengan benar. Cukup banyak yang menggunakan pager - beberapa baris pertama sering hilang (misalnya). Dan bahkan tidak berpikir untuk menggunakan VIM di terminal yang tidak selaras. Anda ingin menyorot baris 3 (V) untuk menggantikannya, tetapi ketika Anda melakukannya, teks yang disorot adalah teks dari baris lain.
sumber
Coba
stty sane
. itu harus melakukan apa yang Anda butuhkan.sumber