GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum macht `cat /dev/urandom` Ihr Terminal kaputt?

Während es Ihre normalen, druckbaren ASCII-Zeichen gibt, die auf einem Terminal hin und her gesendet werden, gibt es auch viele nicht druckbare Zeichen, die für die Kommunikation des Systems mit dem Terminal verwendet werden. Zum Beispiel, wenn ein Programm das Zeichen 0x07 sendet ("ASCII Bell-Zeichen"), Ihr Terminal sollte piepen.

Andere spezielle Sequenzen können verwendet werden, um unter anderem die Farbe des angezeigten Textes, die Richtung, in der er angezeigt wird, den Titel des Fensters, die Größe des Fensters usw. zu ändern.

Wenn Sie

cat /dev/urandom

Ein Haufen zufälliger Zeichen wird an Ihr Terminal ausgegeben, und das Terminal kann nicht erkennen, dass es sich nicht um echte Steuercodes handelt.

Da das Programm zufällige Befehle an das Terminal sendet, landet das Terminal in einem zufälligen, oft unbrauchbaren Zustand.


Einige der zufälligen Ausgaben werden ANSI-Escape-Codes (http://en.wikipedia.org/wiki/ANSI_escape_code) sein, die lustige Sachen wie das Ausblenden des Cursors oder die Auswahl alternativer Schriftarten machen können. Eine andere Möglichkeit sind Unicode-Sequenzen:Ein zufälliger Bytestream wird kein gültiges UTF-8 sein, und wahrscheinlich handhaben das nicht alle Unicode-fähigen Terminals.


Linux
  1. So generieren Sie ein zufälliges Passwort unter Linux mit /dev/random

  2. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  3. Wie kann /dev/random oder /dev/urandom mit base64 codiert werden?

  4. Warum funktioniert find -exec mv {} ./target/ + nicht?

  5. screen Ihr Terminal '/dev/pts/0' kann nicht geöffnet werden - bitte überprüfen

Linux – Was bedeutet der Buchstabe „u“ in /dev/urandom?

Warum listet Linux NVMe-Laufwerke als /dev/nvme0 anstelle von /dev/sda auf?

Warum macht das Schreiben nach /dev/random das parallele Lesen aus /dev/random nicht schneller?

Ist es falsch, /dev/random unter Linux mit /dev/urandom zu verknüpfen?

echo oder print /dev/stdin /dev/stdout /dev/stderr

Warum sind < oder > erforderlich, um /dev/tcp