Karena penasaran, ketika karakter shell Anda mengatur istirahat dari melakukan sesuatu seperti cat /dev/urandomapakah ada cara untuk memperbaikinya di tempat?
Tentu ... jangan lakukan itu! Juga, jika Anda berpikir perintah dapat menghasilkan karakter yang tidak valid, gunakan cat -A.
jnylen
2
Selain itu, saya selalu penasaran bagaimana catbisa mematahkan set karakter Anda ...
crasic
cat / bin / ls sering memperbaiki ini (tidak yakin mengapa)
skarface
2
@crasic: mengirimkan biner ke terminal, dan setiap terminal memiliki cara untuk mengubah font / warna / dll dengan menerima karakter khusus. Lihat yang luar biasa: linusakesson.net/programming/tty (alias "TTY demistified). Bergantung pada pengaturan TERM Anda, itu akan bereaksi secara berbeda juga (dan tentu saja, tergantung byte yang diterimanya dan dalam urutan apa)
Olivier Dulac
@skarface: Anda mungkin beruntung bahwa biner dari / bin / ls memiliki, mendekati akhir, urutan byte yang memperbaiki tampilan. Ini akan tergantung pada OS, biner (yaitu, versi mana, kompilasi apa yang digunakan optino, dll), dan pengaturan JANGKA terminal Anda ... jadi saya sangat menyarankan Anda menggunakan "stty sane" sebagai gantinya ^^
Olivier Dulac
Jawaban:
50
Coba salah satu dari ini:
stty sane
atau
reset
Jika keduanya tidak berfungsi, atau terminal Anda sangat kacau sehingga Anda bahkan tidak bisa memasukkan perintah, maka yang terbaik adalah menutup terminal dan memulai yang baru.
Catatan yang stty sanedidefinisikan oleh POSIX sedangkan resettidak. Itu berarti pada beberapa sistem mungkin tidak ada resetatau mungkin melakukan sesuatu yang sama sekali berbeda, seperti mengatur ulang seluruh sistem. Saya belum menemukan sistem tanpa reset.
Untuk informasi latar belakang lebih lanjut, baca "Keyboard dan konsol Linux HOWTO" bab "Mengatur Ulang Terminal Anda" .
Saya memberi Anda jawaban yang tepat karena Anda adalah yang pertama. Maaf untuk yang lain.
Pedro Montoto García
Secara umum, menulis byte acak ke terminal tidak mungkin untuk menempatkannya dalam situasi yang membutuhkan stty waras untuk memperbaikinya; itu lebih mungkin berasal dari crash program.
Random832
stty saneadalah cara yang aman & tepat (saya lelah "reset" karena alasan yang saya nyatakan dalam komentar di bawah jawaban lain)
Olivier Dulac
1
@OlivierDulac Terima kasih telah berbagi pengalaman Anda. Saya meneliti dan mempelajari yang resettidak didefinisikan oleh POSIX.
lesmana
1
@ Iain saya tidak berpikir bahwa @OlivierDulac menyebarkan FUD. Referensi yang resetbukan "aman" adalah fakta bahwa itu tidak didefinisikan oleh POSIX. Tolong berhenti menyebarkan FUD bahwa @OlivierDulac menyebarkan FUD.
Anda menautkan halaman manual, secara implisit merekomendasikan RTFM yang baik. Anda adalah pahlawan saya hari ini, terima kasih.
Luke404
Ini berfungsi pada banyak unix ... Tapi beberapa kata peringatan: hati-hati: pada beberapa sistem (yaitu, OS lain, atau mungkin beberapa distribusi linux lainnya?) Ini dapat memulai pengaturan ulang sistem (saya percaya misalnya tidak pada beberapa versi solaris). Oleh karena itu mengatur ulang sistem, yaitu memaksa reboot (tanpa shutdown yang tepat) ... Seperti untuk perintah apa pun, hati-hati. (Ini juga berlaku untuk perintah lain: beberapa 'tar' misalnya JANGAN menghapus awalan "/" dan karena itu dapat menimpa file sensitif, dll. Selalu pastikan Anda tahu bagaimana perintah yang ingin Anda gunakan bekerja pada sistem yang Anda gunakan menggunakan.)
Olivier Dulac
1
@OlivierDulac; OP menandai linux pertanyaannya sehingga ia mendapatkan jawaban linuxcentric meskipun itu akan bekerja pada sistem unix lain termasuk Solaris tanpa masalah. Saya bekerja dengan Solaris selama 15 tahun! Anda mengacaukan perintah reset SPARC Open Boot Prom dengan perintah userland reset (1). Jika Anda mengeluarkan pengaturan ulang di prompt ok Anda tidak akan pulih dari terminal yang rusak.
user9517 mendukung GoFundMonica
@lain: ah, ini bisa jadi ini (Open Boot prom), memang. Tapi tetap saja, itu berarti pada beberapa lingkungan "reset" dikaitkan dengan mengatur ulang host, jadi saya lebih suka orang (bahkan jika mereka "kebanyakan" di linux) untuk belajar / menggunakan perintah "safe" "stty sane" (yang menyatakan apa ya, dan tidak mendua seperti "reset") ... itu sebabnya saya memperingatkan pembaca tentang ini.
Olivier Dulac
@OlivierDulac Solaris, CentOS, Ubuntu, OpenBSD semua tautan reset ke tset - tolong berikan bukti untuk informasi yang salah Anda selain kesalahan Anda mengingat sesuatu. OBP bukan OS host sehingga tidak masuk hitungan.
cat -A
.cat
bisa mematahkan set karakter Anda ...Jawaban:
Coba salah satu dari ini:
atau
Jika keduanya tidak berfungsi, atau terminal Anda sangat kacau sehingga Anda bahkan tidak bisa memasukkan perintah, maka yang terbaik adalah menutup terminal dan memulai yang baru.
Catatan yang
stty sane
didefinisikan oleh POSIX sedangkanreset
tidak. Itu berarti pada beberapa sistem mungkin tidak adareset
atau mungkin melakukan sesuatu yang sama sekali berbeda, seperti mengatur ulang seluruh sistem. Saya belum menemukan sistem tanpareset
.Untuk informasi latar belakang lebih lanjut, baca "Keyboard dan konsol Linux HOWTO" bab "Mengatur Ulang Terminal Anda" .
sumber
stty sane
adalah cara yang aman & tepat (saya lelah "reset" karena alasan yang saya nyatakan dalam komentar di bawah jawaban lain)reset
tidak didefinisikan oleh POSIX.reset
bukan "aman" adalah fakta bahwa itu tidak didefinisikan oleh POSIX. Tolong berhenti menyebarkan FUD bahwa @OlivierDulac menyebarkan FUD.Anda dapat mencoba menggunakan perintah reset .
sumber
The
reset
perintah harus bekerja.sumber