GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi `cat /dev/urandom` casse-t-il votre terminal ?

Bien qu'il y ait vos caractères ASCII imprimables normaux qui sont envoyés dans les deux sens sur un terminal, il existe également de nombreux caractères non imprimables qui sont utilisés pour que le système communique avec le terminal. Par exemple, si un programme envoie le caractère 0x07 ("Caractère ASCII Bell"), votre terminal doit émettre un bip.

D'autres séquences spéciales peuvent être utilisées pour changer la couleur du texte affiché, la direction dans laquelle il est affiché, le titre de la fenêtre, la taille de la fenêtre, etc., entre autres choses.

Lorsque vous

cat /dev/urandom

Un tas de caractères aléatoires sont déversés sur votre terminal, et le terminal ne peut pas dire qu'il ne s'agit pas de vrais codes de contrôle.

Parce que le programme envoie effectivement des commandes aléatoires au terminal, le terminal se retrouve dans un état aléatoire, souvent inutilisable.


Une partie de la sortie aléatoire sera des codes d'échappement ANSI (http://en.wikipedia.org/wiki/ANSI_escape_code), qui peuvent faire des choses amusantes comme masquer le curseur ou sélectionner des polices alternatives. Une autre possibilité sont les séquences Unicode :un flux d'octets aléatoire ne sera pas UTF-8 valide, et probablement que tous les terminaux compatibles Unicode ne le gèrent pas correctement.


Linux
  1. Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

  2. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  3. Quand utiliser /dev/random contre /dev/urandom ?

  4. Pourquoi find -exec mv {} ./target/ + ne fonctionne-t-il pas ?

  5. screen Impossible d'ouvrir votre terminal '/dev/pts/0' - veuillez vérifier

Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

Pourquoi Linux répertorie-t-il les lecteurs NVMe comme /dev/nvme0 au lieu de /dev/sda ?

Pourquoi dd de /dev/random donne-t-il des tailles de fichiers différentes ?

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

noyau :désactiver /dev/kmem et /dev/mem

Pourquoi sur certains systèmes Linux, le système de fichiers racine apparaît-il comme /dev/root au lieu de /dev/<real device node> dans mtab ?