Die ttys sind nicht nur Ein-/Ausgabegeräte. Sie erfüllen auch eine besondere Aufgabe, indem sie als Kontrollterminal für eine Sitzung fungieren, wie das Senden von Signalen (Strg+C). /dev/ttyNN sind virtuelle Konsolen, die Vollbildanzeigen auf dem Monitor sind.
Die Terminals beginnen bei /dev/tty1. Sie können normalerweise zu diesen Konsolen wechseln, indem Sie die Tastenkombination Strg+Alt+Fn drücken.
B. Strg+Alt+F1 bringt Sie zum ersten virtuellen Terminal. Heutzutage führen die meisten Linux-Distributionen den X-Server vom tty1 aus. Das Drücken von Strg+Alt+F1 hat also möglicherweise keine Wirkung.
$ ps ax | grep Xorg | grep -v grep
1504 tty1 Ss+ 44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1
Strg+Alt+F2 bringt Sie zum zweiten Terminal. Normalerweise führen die Distributionen ein Anmeldeprogramm (agetty) auf dem virtuellen Terminal aus.
$ ps ax | grep tty2 | grep -v grep
31865 tty2 Ss+ 0:00 /sbin/agetty tty2 38400
Die Anmeldeprogramme bieten Ihnen eine Anmeldeaufforderung und ermöglichen Ihnen die Anmeldung mit Benutzername/Passwort. Das Init-Skript entscheidet, wo das gesamte Anmeldeprogramm ausgeführt wird. Abhängig davon sehen Sie möglicherweise eine Anmeldeaufforderung auf, sagen wir tty9. Um zu Ihrer GUI-Oberfläche zurückzukehren, drücken Sie Strg+Alt+F1 (wie in der Beispielausgabe oben).
/dev/tty0 ist ein spezielles Device, das auf das aktuelle Terminal zeigt. Unabhängig davon, von wo aus Sie es ausführen (irgendeine virtuelle Konsole), geht alles, was von tty0 gelesen/geschrieben wird, an Ihr aktuelles Terminal.
Die zweite Spalte in 'ps ax' gibt auch das steuernde Terminal des Programms an. Bei einigen Programmen, wie Daemons, sehen Sie vielleicht, dass die Spalte '?' ist, was bedeutet, dass sie nicht an ein Terminal gebunden sind.
/dev/pts/0 usw. sind Pseudo-Terminalgeräte, die nicht an die Systemanzeige angeschlossen sind. zum Beispiel Terminal, das Sie erhalten, wenn Sie ein Gnome-Terminal oder ein anderes GUI-Terminal öffnen. Dies sind Client-Server-basierte Ansätze, bei denen die Clientseite in Programme wie Bash exportiert wird. Die vom Programm an das Pseudo-Terminal gesendeten Daten werden an die „Server“-Seite gesendet (die normalerweise von einem anderen Programm wie gnome-terminal überwacht wird). Der steuernde Prozess (Serverseite) bestimmt, was an das Terminal gesendet werden muss, was schließlich vom Client gesehen wird. Diese Geräte helfen Ihnen, mehrere 'GUI-Terminals' ohne Einschränkung auf Ihrem System zu öffnen, wobei sie immer noch das gleiche alte Terminal wie Steuerelemente (ioctl(), Farbeinstellung, Senden von Signalen [Strg+C] usw.) bereitstellen.