Was genau bewirkt der Befehl „tty“? Im Grunde genommen gibt er den Namen des Terminals aus, das gerade verwendet wird. Die Abkürzung TTY steht für „Teletypewriter“, was auf Deutsch Fernschreiber bedeutet. Aber woher stammt dieser Name und was hat er mit der heutigen Computertechnik zu tun? Die Geschichte dahinter ist etwas komplexer.
Fernschreiber im 19. Jahrhundert
In den 1830er und 1840er Jahren wurden Maschinen entwickelt, die als Fernschreiber bekannt wurden. Diese Geräte ermöglichten es, getippte Nachrichten über Drähte an entfernte Orte zu senden. Der Absender tippte die Nachrichten auf einer Art Tastatur, und sie wurden auf der Empfängerseite auf Papier ausgedruckt. Dies war ein bedeutender Fortschritt in der Telegrafie, die bis dahin auf Morsecode und ähnliche Verfahren angewiesen war.
Die Nachrichten wurden verschlüsselt übertragen, empfangen, entschlüsselt und schließlich ausgedruckt. Es gab verschiedene Techniken zur Ver- und Entschlüsselung. Eine der bekanntesten und erfolgreichsten wurde 1874 von Émile Baudot patentiert, nach dem die Baudrate benannt ist. Sein Zeichenkodierungssystem war 89 Jahre älter als ASCII.
Baudots Kodierung setzte sich als Standard in der Fernschreibtechnik durch und wurde von den meisten Herstellern übernommen. Sein ursprüngliches Design sah nur fünf Tasten vor, ähnlich wie bei einem Klavier. Der Benutzer musste für jeden Buchstaben eine spezielle Tastenkombination erlernen. Später wurde das Baudot-System an ein traditionelles Tastaturlayout angepasst.
Diese Maschinen wurden als Fernschreiber bezeichnet, später verkürzt zu Telex und schließlich zu TTY. Hier liegt der Ursprung der Abkürzung TTY, doch welche Verbindung besteht zur Computertechnik?
ASCII und Telex-Netzwerke
Mit der Einführung von ASCII im Jahr 1963 übernahmen die Fernschreiberhersteller diesen Standard. Trotz der Erfindung und weit verbreiteten Nutzung des Telefons waren Fernschreiber immer noch von großer Bedeutung.
Telex etablierte sich als ein weltweites Netzwerk von Fernschreibern, das den Versand von schriftlichen Nachrichten rund um den Globus ermöglichte. Telex war vor allem in der Zeit nach dem Zweiten Weltkrieg bis zum Aufkommen der Faxgeräte in den 1980er Jahren weit verbreitet.
Parallel dazu entwickelten sich auch Computer weiter. Sie wurden zunehmend interaktiv und konnten mehrere Benutzer gleichzeitig unterstützen. Der frühere Batch-Betrieb reichte nicht mehr aus. Benutzer wollten nicht mehr 24 Stunden oder länger auf ihre Ergebnisse warten. Die Zeit von Lochkarten und nächtelangem Warten war vorbei.
Es wurden Geräte benötigt, mit denen Anweisungen eingegeben und Ergebnisse empfangen werden konnten. Effizienz war gefragt.
Die Umnutzung des Fernschreibers
Der Fernschreiber erwies sich als idealer Kandidat für die Rolle eines Eingabe- und Ausgabegeräts. Er konnte Nachrichten tippen, verschlüsseln, senden, empfangen, entschlüsseln und drucken.
Für den Fernschreiber war es unerheblich, ob das Gerät am anderen Ende der Verbindung ein weiterer Fernschreiber war oder nicht. Solange die gleiche Verschlüsselungssprache verwendet wurde und Nachrichten empfangen und zurückgesendet werden konnten, funktionierte alles einwandfrei.
Außerdem wurde eine mehr oder weniger standardmäßige Tastatur verwendet.
Hardware-emulierte Fernschreiber
Fernschreiber wurden zum Standard für die Interaktion mit den großen Mini- und Großrechnern dieser Zeit.
Später wurden sie durch Geräte ersetzt, die diese elektromechanischen Maschinen elektronisch emulierten. Diese hatten Kathodenstrahlröhren (CRTs) anstelle von Papierrollen. Sie vibrierten nicht beim Anzeigen von Computerantworten und ermöglichten neue Funktionen wie die Cursorsteuerung, das Löschen von Bildschirmen oder Fettdruck.
Der DEC VT05 war ein frühes Beispiel für einen virtuellen Fernschreiber und der Vorläufer des berühmten DEC VT100, der millionenfach verkauft wurde.
Software-emulierte Fernschreiber
In der Desktop-Umgebung von Linux und anderen Unix-ähnlichen Betriebssystemen wie macOS sind das Terminalfenster und Anwendungen wie xterm und Konsole Beispiele für virtuelle Fernschreiber. Diese werden jedoch vollständig in Software emuliert und werden daher als Pseudo-Teletypen (PTS) bezeichnet.
Und hier kommt der Befehl „tty“ ins Spiel.
Was kann der Befehl „tty“ uns sagen?
Unter Linux gibt es einen Pseudo-Teletyp-Multiplexer, der die Verbindungen aller Pseudo-Teletypen (PTS) des Terminalfensters verwaltet. Der Multiplexer fungiert als Master, während die PTS als Slaves agieren. Der Kernel kommuniziert mit dem Multiplexer über eine Gerätedatei unter /dev/ptmx.
Der Befehl „tty“ gibt den Namen der Gerätedatei aus, die Ihr Pseudo-Fernschreiber-Slave verwendet, um mit dem Master zu kommunizieren. Im Wesentlichen ist dies die Nummer Ihres Terminalfensters.
Lassen wir uns ansehen, was der Befehl „tty“ für unser Terminalfenster ausgibt:
tty
Die Antwort zeigt, dass wir mit der Gerätedatei unter /dev/pts/0 verbunden sind.
Unser Terminalfenster, das eine Softwareemulation eines Fernschreibers (TTY) darstellt, ist als Pseudo-Fernschreiber (PTS) mit dem Pseudo-Fernschreiber-Multiplexer verbunden. Hier ist es zufällig die Nummer Null.
Die stille Option
Die Option „-s“ (silent) bewirkt, dass der Befehl „tty“ keine Ausgabe erzeugt.
tty -s
Allerdings liefert er einen Exit-Code:
0: wenn die Standardeingabe von einem TTY-Gerät kommt, sei es emuliert oder physisch.
1: wenn die Standardeingabe nicht von einem TTY-Gerät stammt.
2: bei einem Syntaxfehler oder einer falschen Eingabe von Kommandozeilenparametern.
3: wenn ein Schreibfehler aufgetreten ist.
Dies ist besonders nützlich bei der Bash-Skripterstellung. Aber selbst in der Befehlszeile können wir demonstrieren, wie ein Befehl nur ausgeführt wird, wenn er in einem Terminalfenster (einer TTY- oder PTS-Sitzung) ausgeführt wird.
tty -s && echo "In a tty"
Da wir uns in einer TTY-Sitzung befinden, ist unser Exit-Code 0, und der zweite Befehl wird ausgeführt.
Der Befehl „who“
Auch andere Befehle können Ihre TTY-Nummer anzeigen. Der Befehl „who“ listet Informationen für alle angemeldeten Benutzer auf, einschließlich Ihrer eigenen.
In diesem Beispiel sind Alec und Mary per Fernzugriff mit dem Linux-Computer verbunden. Sie sind mit PTS eins und zwei verbunden.
Benutzer dave ist mit „:0“ verbunden.
Dies entspricht dem Bildschirm und der Tastatur, die physisch mit dem Computer verbunden sind. Obwohl Bildschirm und Tastatur Hardwaregeräte sind, sind sie ebenfalls über eine Gerätedatei mit dem Multiplexer verbunden. Der Befehl „tty“ gibt hier /dev/pts/2 aus.
who
tty
Zugriff auf eine TTY-Sitzung
Sie können auf eine TTY-Sitzung im Vollbildmodus zugreifen, indem Sie die Tasten Strg+Alt gedrückt halten und eine der Funktionstasten drücken.
Strg+Alt+F3 öffnet die Anmeldeaufforderung von tty3.
Wenn Sie sich anmelden und den Befehl „tty“ ausführen, sehen Sie, dass Sie mit /dev/tty3 verbunden sind.
Dies ist kein Pseudo-Fernschreiber (in Software emuliert); es ist ein virtueller Fernschreiber (in Hardware emuliert). Er verwendet den Bildschirm und die Tastatur, die mit Ihrem Computer verbunden sind, um einen virtuellen Fernschreiber zu emulieren, ähnlich wie der DEC VT100 früher.
Sie können die Funktionstasten Strg+Alt mit den Funktionstasten F3 bis F6 verwenden und bis zu vier TTY-Sitzungen gleichzeitig geöffnet haben. Sie könnten sich beispielsweise bei tty3 anmelden und Strg+Alt+F6 drücken, um zu tty6 zu gelangen.
Um zu Ihrer grafischen Desktop-Umgebung zurückzukehren, drücken Sie Strg+Alt+F2.
Durch Drücken von Strg+Alt+F1 kehren Sie zum Anmeldebildschirm Ihrer grafischen Desktop-Sitzung zurück.
In älteren Linux-Distributionen öffneten die Tastenkombinationen Strg+Alt+F1 bis Strg+Alt+F6 die Vollbild-TTY-Konsolen, und Strg+Alt+F7 brachte Sie zurück zu Ihrer grafischen Desktop-Umgebung. Wenn Sie eine ältere Linux-Version verwenden, kann sich Ihr System möglicherweise so verhalten.
Auf aktuellen Versionen von Manjaro, Ubuntu und Fedora wurde das folgende Verhalten beobachtet:
Strg+Alt+F1: | Kehrt zum Anmeldebildschirm der grafischen Desktop-Umgebung zurück. |
Strg+Alt+F2: | Kehrt zur grafischen Desktop-Umgebung zurück. |
Strg+Alt+F3: | Öffnet TTY 3. |
Strg+Alt+F4: | Öffnet TTY 4. |
Strg+Alt+F5: | Öffnet TTY 5. |
Strg+Alt+F6: | Öffnet TTY 6. |
Der Zugriff auf diese Vollbildkonsolen ermöglicht es Benutzern von Linux-Installationen, die nur über die Befehlszeile bedient werden – und viele Linux-Server sind so konfiguriert –, mehrere Konsolen zur Verfügung zu haben.
Hatten Sie schon einmal den Fall, dass Ihre grafische Desktop-Umgebung unter Linux eingefroren ist? Jetzt haben Sie die Möglichkeit, zu einer der TTY-Konsolensitzungen zu wechseln, um das Problem zu beheben.
Sie können die Befehle „top“ und „ps“ verwenden, um die fehlerhafte Anwendung zu identifizieren und sie dann mit „kill“ zu beenden. Alternativ können Sie auch „shutdown“ verwenden, um den Computer so sanft wie möglich herunterzufahren.
Drei kleine Buchstaben mit großer Geschichte
Der Befehl „tty“ hat seinen Namen von einem Gerät aus dem späten 19. Jahrhundert, das 1971 in Unix eingeführt wurde und bis heute ein fester Bestandteil von Linux und anderen Unix-ähnlichen Betriebssystemen ist.
Dieser kleine Befehl hat eine bemerkenswerte Geschichte hinter sich.