GNU/Linux >> Linux Esercitazione >  >> Linux

Perché `cat /dev/urandom` rompe il tuo terminale?

Mentre ci sono i normali caratteri ASCII stampabili che vengono inviati avanti e indietro su un terminale, ci sono anche molti caratteri non stampabili che vengono utilizzati dal sistema per comunicare con il terminale. Ad esempio, se un programma invia il carattere 0x07 ("carattere ASCII Bell"), il tuo terminale dovrebbe emettere un segnale acustico.

Altre sequenze speciali possono essere utilizzate per cambiare il colore del testo visualizzato, la direzione in cui viene visualizzato, il titolo della finestra, la dimensione della finestra, ecc., tra molte altre cose.

Quando tu

cat /dev/urandom

Un gruppo di caratteri casuali viene scaricato sul tuo terminale e il terminale non può dire che non si tratta di codici di controllo reali.

Poiché il programma sta effettivamente inviando comandi casuali al terminale, il terminale finisce in uno stato casuale, spesso inutilizzabile.


Alcuni degli output casuali saranno codici di escape ANSI (http://en.wikipedia.org/wiki/ANSI_escape_code), che possono fare cose divertenti come nascondere il cursore o selezionare caratteri alternativi. Un'altra possibilità sono le sequenze unicode:un flusso di byte casuale non sarà UTF-8 valido e probabilmente non tutti i terminali che riconoscono l'unicode lo gestiscono con garbo.


Linux
  1. In che modo Linux gestisce più separatori di percorsi consecutivi (/home////nomeutente///file)?

  2. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0?

  3. Quanto sono portatili /dev/stdin, /dev/stdout e /dev/stderr?

  4. Quando usare /dev/random vs /dev/urandom?

  5. Linux:cosa significa la lettera "u" in /dev/urandom?

Perché Linux elenca le unità NVMe come /dev/nvme0 invece di /dev/sda?

Perché dd da /dev/random fornisce dimensioni di file diverse?

Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

kernel:disabilitare /dev/kmem e /dev/mem

È sbagliato collegare /dev/random a /dev/urandom su Linux?

Perché su alcuni sistemi Linux, il filesystem di root appare come /dev/root invece di /dev/<real device node>in mtab?