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.