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

Wie Linux /dev/tty und /dev/tty0 verwendet

/dev/tty ist das steuernde tty des aktuellen Prozesses , für jeden Prozess, der diese spezielle Datei tatsächlich öffnet. Es ist nicht unbedingt ein virtuelles Konsolengerät (/dev/tty n ) und kann ein pty, ein serieller Port usw. sein. Wenn das steuernde tty keine virtuelle Konsole ist, muss der Prozess nicht mit Konsolengeräten interagieren, selbst wenn sein pseudotty tatsächlich auf der Systemkonsole implementiert ist. Z.B. für eine Shell in einem Terminal-Emulator unter einem lokal laufenden Xserver bilden diese Programme solche Interaktionsketten wie:

Unix-Shell
/dev/pts/2 (≡ /dev/tty für seine Prozesse)
Kernel pty-Treiber
/dev/ptmx
Terminal-Emulator
⇕ X Window-Protokoll
X-Server
/dev/tty7 (≡ /dev/tty für den Server)
Systemkonsole
z x c ↿⇂[_̈░░]
Benutzer

Verwendung von /dev/tty von Userland-Programmen beinhaltet:

  • Schreiben Sie etwas an das steuernde Terminal und ignorieren Sie alle Umleitungen und Pipes;
  • Erstellen Sie ein ioctl() – siehe tty_ioctl(4);
  • Zum Beispiel vom Terminal trennen (TIOCNOTTY).

/dev/tty0 ist die gerade aktive (d.h. auf dem Monitor sichtbare) virtuelle Konsole des Betriebssystems . Diese spezielle Datei wird wahrscheinlich nicht wesentlich von der Systemsoftware verwendet, aber /dev/console ist praktisch ein „Alias“ für tty0 und /dev/console wird viel von Syslog-Daemons und manchmal auch vom Kernel selbst verwendet.

Experimentieren Sie, um den Unterschied zu zeigen:Führen Sie root aus Shell auf tty3 (Strg +Alt +F3 ) oder in einem Terminalemulator. Jetzt

# sleep 2; echo test >/dev/tty

dann schnell Strg +Alt +F2 , zwei Sekunden warten und Strg +Alt +was auch immer zurück. Wo siehst du die Ausgabe?
Und jetzt derselbe Test für /dev/tty0 .


/dev/tty ist das steuernde tty für jeden Prozess. Dies könnte Ihre Shell sein.

Wenn Ihr Prozess kein steuerndes tty hat, ist /dev/tty nicht verfügbar, dies z. gilt für Daemons.

Wenn Ihr Prozess ein steuerndes tty hat, dann ist /dev/tty ein Treiber-Alias ​​für den echten tty-Treiber, den Ihr Prozess für stdin, stdout oder stderr verwendet.

Siehe man -s7d tty für mehr Informationen. Beachten Sie, dass der Abschnitt, in dem sich dieses Handbuch befindet, je nach Betriebssystem unterschiedlich sein kann und nicht mit der Manpage in Abschnitt 1 verwechselt werden sollte. Überprüfen Sie also z. man -k tty .


Linux
  1. So ersetzen Sie eine ausgefallene Festplatte in einem Linux-Software-RAID

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

  3. Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0?

  4. Wie portabel sind /dev/stdin, /dev/stdout und /dev/stderr?

  5. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

tty (/dev/tty ) vs. pts (/dev/pts) unter Linux

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

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Wie kann ich die Anzahl und Größe von Linux-Ramdisks (/dev/ram0 - /dev/ram15) ändern?

Linux:Unterschied zwischen /dev/console , /dev/tty und /dev/tty0

Kernel:/dev/kmem und /dev/mem deaktivieren