Mengapa `cat / dev / urandom` merusak terminal Anda?

Jawaban:

21

Meskipun ada karakter ASCII yang normal dan dapat dicetak yang dikirim bolak-balik di terminal, ada juga banyak karakter yang tidak patut yang digunakan untuk sistem untuk berkomunikasi dengan terminal. Misalnya, jika suatu program mengirim karakter 0x07("karakter ASCII Bell"), terminal Anda akan berbunyi bip.

Urutan khusus lainnya dapat digunakan untuk mengubah warna teks yang ditampilkan, ke arah mana itu ditampilkan, judul jendela, ukuran jendela, dll., Di antara banyak hal lainnya.

Kapan kamu

cat /dev/urandom

Banyak karakter acak dibuang ke terminal Anda, dan terminal tidak dapat mengatakan bahwa itu bukan kode kontrol yang sebenarnya.

Karena program ini secara efektif mengirimkan perintah acak ke terminal, terminal berakhir dalam keadaan acak, sering kali tidak dapat digunakan.

Darth Android
sumber
4

Beberapa keluaran acak adalah kode pelarian ANSI ( http://en.wikipedia.org/wiki/ANSI_escape_code ), yang dapat melakukan hal-hal menyenangkan seperti menyembunyikan kursor atau memilih font alternatif. Kemungkinan lain adalah urutan unicode: bytestream acak tidak akan valid UTF-8, dan mungkin tidak semua terminal yang sadar unicode menanganinya dengan anggun.

vbraun
sumber
1

cat /dev/urandomakan memberi Anda aliran byte acak antara 0dan 255, tidak semua nilai tersebut adalah karakter teks yang valid. Karena jendela terminal adalah umpan data yang tidak valid, maka tidak pernah diharapkan untuk mengatasinya bisa membuat aplikasi terminal ke keadaan "rusak".

Scott Chamberlain
sumber