Bagaimana cara mereset TTY yang rusak?

15

Slackware TTY saya dapat rusak dengan mudah dengan menjalankan:

cat some_binary_file

Setelah perintah, seluruh TTY tidak akan lagi menampilkan karakter yang dapat dibaca tetapi masih merespons peristiwa keyboard.

Bahkan jika saya logout dan login lagi, TTY masih rusak dan tidak menampilkan karakter yang dapat dibaca lagi. Saya harus menghidupkan ulang mesin untuk mengembalikan operasi TTY yang normal.

Apakah ada solusi tanpa me-restart seluruh mesin?

Howard
sumber

Jawaban:

13

Run echo ^v^o, yang echokemudian Ctrl-vdan kemudian Ctrl-o, Enter. Anda tidak akan melihat Ctrl-v. Ini akan ditampilkan sebagai echo ^O. Ctrl-vmengaturnya ke mode verbose, melewati karakter kontrol, dan Ctrl-oakan mereset terminal.

Florian
sumber
4
Sekedar petunjuk singkat: Jika TTY benar-benar tidak dapat digunakan atau konsol logging, Anda dapat mengatur ulangnya dengan mudah dari TTY lainnya dengan echo ^v^o > /dev/ttyNN sebagai nomor terminal.
Torben
Ini tidak berfungsi untuk saya di MacOSX (10.11.6) / iTerm2 (3.0.12) / bash (4.1.2)
Ed Randall
25

Biasanya, menjalankan resetme-reset terminal. Namun, beberapa ikatan utama .inputrcmungkin hilang.

choroba
sumber
Solusi super sederhana yang memperbaiki panel tmux oh-my-zsh saya yang macet.
Shadoninja
Ini lebih baik daripada jawaban yang diterima menurut saya. Ketika Anda tidak dapat melihat apa yang Anda ketikkan lebih mudah untuk mengetik resetdan menekan enter daripada mencoba menggunakan kombinasi tombol, ditambah lagi, itu berfungsi 100% dari waktu.
Sergio
12

Anda dapat mencoba perintah reset ANSI:

printf "\033c"
Jlliagre
sumber
ini adalah satu-satunya yang bekerja pada OpenBSD 5.4
execNext
1
Ini juga bekerja dari shell (bash) sebagai echo -e '\ 033c'
Ed Randall
3
@ EdRandall Ya. Perhatikan bahwa "echo -e" tidak didukung oleh semua shell sementara printfmemiliki keuntungan menjadi portabel sehingga berfungsi apa pun shell, termasuk bash.
jlliagre
Saya membayangkan bahwa ini tidak ada hubungannya dengan diakritik burung camar di IPA? U + 033C ‹◌̼› \ N {MENGGABUNGKAN SEAGULL DI BAWAH}
TRiG
@TRiG Memang. Tidak ada hubungannya dengan kutipan Eric Cantona yang terkenal itu. ;-)
jlliagre
5

Terminal saya tidak menampilkan karakter apa pun yang saya ketikkan. Tidak ada trik lain yang berhasil. Yang ini berfungsi:

stty sane

Bekerja untukku. Kadang-kadang saya memiliki terminal dalam keadaan tidak responsif, tetapi tidak ada saran lain yang dapat memberi saya output kembali. Saran lain yang saya coba, tetapi tidak berhasil:

echo ^v^o
reset
printf "\033c"

Sumber: /unix//a/79686/53236

Jesper Rønn-Jensen
sumber
0

Sebenarnya ada beberapa masalah potensial, dan mungkin ada hubungannya dengan lingkungan Anda. Pertama, seperti yang dijawab @Jesper, Anda ingin melakukannya stty sane. Namun, Anda bahkan mungkin tidak dapat mengatur lingkungan dengan benar.

Ini karena perbedaan antara /bin/bashdan /bin/sh. Setelah membuka tty Anda, jalankan /bin/bashdan kemudian coba stty sane. Ini harus memperbaiki semuanya. Akhirnya, saya sarankan menambahkan hal seperti itu ke .bashrc

Pilihan lain adalah menginstal perangkat lunak yang sehat.

pengguna2262111
sumber