Was ist ein TTY unter Linux? (und wie man den tty-Befehl verwendet)

Was macht der tty-Befehl? Es gibt den Namen des Terminals aus, das Sie verwenden. TTY steht für „Fernschreiber“. Was ist die Geschichte hinter dem Namen des Befehls? Das braucht etwas mehr Erklärung.

Fernschreiber aus dem 19. Jahrhundert

In den 1830er und 1840er Jahren wurden Maschinen bekannt als Fernschreiber wurden entwickelt. Diese Maschinen könnten getippte Nachrichten „über den Draht“ an entfernte Orte senden. Die Nachrichten wurden vom Absender auf einer Art Tastatur eingegeben. Sie wurden auf der Empfangsseite auf Papier gedruckt. Sie waren ein evolutionärer Schritt in Telegrafie, auf die sich zuvor verlassen hatte Morse und ähnliche Codes.

Nachrichten wurden verschlüsselt und übertragen, dann empfangen, entschlüsselt und gedruckt. Es gab mehrere Techniken, die verwendet wurden, um die Nachrichten zu verschlüsseln und zu decodieren. Das berühmteste und eines der produktivsten wurde 1874 von patentiert mile Baudot, für wen die Baudrate benannt. Sein Zeichencodierungsschema vordatiert ASCII um 89 Jahre.

Baudots Codierung wurde schließlich einem Standard in der Fernschreibercodierung am nächsten und wurde von den meisten Herstellern übernommen. Baudots ursprüngliches Hardware-Design hatte nur fünf Tasten, ähnlich wie bei Klaviertasten. Die Bedienungsperson musste für jeden Buchstaben eine bestimmte Tastenkombination lernen. Schließlich wurde das Baudot-Codierungssystem an ein traditionelles Tastaturlayout gekoppelt.

Um diesen Fortschritt zu markieren, wurden die Maschinen Fernschreiber genannt. Dies wurde zu Fernschreibern und schließlich zu TTYs verkürzt. Hier bekommen wir die Akronym TTY von, aber was hat Telegrafie mit Computern zu tun?

ASCII und Telex

Als ASCII 1963 ankam, wurde es von den Fernschreiberherstellern übernommen. Trotz der Erfindung und der weit verbreiteten Verwendung des Telefons waren Fernschreiber immer noch stark.

Telex war ein weltweites Netz von Fernschreibern, das es ermöglichte, schriftliche Nachrichten rund um den Globus zu versenden. Sie waren in der Zeit nach dem Zweiten Weltkrieg bis zum 19. Faxgerät Boom der 1980er Jahre.

Auch Computer entwickelten sich weiter. Sie wurden in der Lage, in Echtzeit mit Benutzern zu interagieren und mehrere Benutzer zu unterstützen. Die alte Batch-Arbeitsweise wurde unzureichend. Die Leute wollten nicht 24 Stunden oder länger auf ihre Ergebnisse warten. Stapel von Lochkarten zu machen und über Nacht auf Ergebnisse zu warten, war nicht mehr akzeptabel.

  So planen Sie Systembefehle mit Cron unter Linux

Die Leute brauchten ein Gerät, mit dem sie Anweisungen eingeben und die Ergebnisse zurücksenden können. Die Leute wollten Effizienz.

Der umfunktionierte Fernschreiber

Der Fernschreiber war der perfekte Kandidat als Ein-/Ausgabegerät. Es war schließlich ein Gerät, das es ermöglichte, Nachrichten zu tippen, zu verschlüsseln, zu senden, zu empfangen, zu entschlüsseln und zu drucken.

Was kümmerte den Fernschreiber, wenn das Gerät am anderen Ende der Verbindung kein anderer Fernschreiber war? Solange er dieselbe Verschlüsselungssprache sprach und Nachrichten empfangen und zurücksenden konnte, war der Fernschreiber glücklich.

Und natürlich wurde eine mehr oder weniger Standardtastatur verwendet.

Hardware-emulierte Fernschreiber

Fernschreiber wurden zum Standardmittel für die Interaktion mit den großen Mini- und Großrechnern dieser Zeit.

Sie wurden schließlich durch Geräte ersetzt, die diese elektromechanischen Maschinen mit Elektronik emulierten. Diese hatten Kathodenstrahlröhren (CRTs) statt Papierrollen. Sie zitterten nicht, wenn sie Antworten vom Computer lieferten. Sie ermöglichten bisher unmögliche Funktionen, wie das Bewegen des Cursors auf dem Bildschirm, das Löschen des Bildschirms, Fettdruck und so weiter.

Der DEZ VT05 war ein frühes Beispiel für einen virtuellen Fernschreiber und ein Vorfahre des berühmten DEZ VT100. Millionen von DEC VT100 wurden verkauft.

Software-emulierte Fernschreiber

In der Desktop-Umgebung von Linux und anderen Unix-ähnlichen Betriebssystemen wie macOS, dem Terminalfenster und Anwendungen wie x-Term und Konsole sind Beispiele für virtuelle Fernschreiber. Diese werden jedoch vollständig in Software emuliert. Sie werden Pseudo-Teletypen genannt. Dies wurde zu PTS verkürzt.

Und hier kommt tty ins Spiel.

Was können Sie uns sagen?

Unter Linux gibt es einen Pseudo-Teletyp-Multiplexer, der die Verbindungen von allen Pseudo-Teletypen (PTS) des Terminalfensters verarbeitet. Der Multiplexer ist der Master und die PTS sind die Slaves. Der Multiplexer wird vom Kernel über die Gerätedatei unter /dev/ptmx angesprochen.

Der tty-Befehl gibt den Namen der Gerätedatei aus, die Ihr Pseudo-Fernschreiber-Slave verwendet, um eine Schnittstelle zum Master herzustellen. Und das ist effektiv die Nummer Ihres Terminalfensters.

  So installieren Sie das Captiva Icon-Design unter Linux

Mal sehen, was tty für unser Terminalfenster meldet:

tty

Die Antwort zeigt, dass wir mit der Gerätedatei unter /dev/pts/0 verbunden sind.

Unser Terminalfenster, das eine Softwareemulation eines Fernschreibers (TTY) ist, ist als Pseudo-Fernschreiber (PTS) mit dem Pseudo-Fernschreiber-Multiplexer verbunden. Und es ist zufällig die Nummer Null.

Die stille Option

Die Option -s (silent) bewirkt, dass tty keine Ausgabe generiert.

tty -s

Es erzeugt jedoch einen Exit-Wert:

0: wenn die Standardeingabe von einem TTY-Gerät kommt, emuliert oder physisch.
1: wenn die Standardeingabe nicht von einem TTY-Gerät kommt.
2: Syntaxfehler, falsche Kommandozeilenparameter wurden verwendet.
3: Ein Schreibfehler ist aufgetreten.

Dies ist wahrscheinlich bei der Bash-Skripterstellung am nützlichsten. Aber selbst auf der Befehlszeile können wir demonstrieren, wie ein Befehl nur ausgeführt wird, wenn Sie in einem Terminalfenster (einer TTY- oder PTS-Sitzung) ausgeführt werden.

tty -s && echo "In a tty"

tty -s && echo

Da wir in einer TTY-Sitzung laufen, ist unser Exit-Code 0 und der zweite Befehl wird ausgeführt.

Das wer-Kommando

Andere Befehle können Ihre TTY-Nummer anzeigen. Der Befehl who listet Informationen für alle angemeldeten Benutzer auf, einschließlich Ihrer Person.

Alec und Mary sind per Fernzugriff mit dem Linux-Computer verbunden. Sie sind mit PTS eins und zwei verbunden.

Benutzer dave wird als verbunden mit „:0“ angezeigt.

Dies stellt den Bildschirm und die Tastatur dar, die physisch mit dem Computer verbunden sind. Obwohl Bildschirm und Tastatur Hardwaregeräte sind, sind sie dennoch über eine Gerätedatei mit dem Multiplexer verbunden. tty gibt an, dass es /dev/pts/2 ist.

who
tty

Auf ein TTY zugreifen

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). Es verwendet den Bildschirm und die Tastatur, die mit Ihrem Computer verbunden sind, um einen virtuellen Fernschreiber zu emulieren, wie es der DEC VT100 früher tat.

  So verwenden Sie den man-Befehl von Linux: Versteckte Geheimnisse und Grundlagen

Sie können die Funktionstasten Strg+Alt mit den Funktionstasten F3 bis F6 verwenden und haben vier TTY-Sitzungen geöffnet, wenn Sie möchten. Sie könnten beispielsweise bei tty3 angemeldet sein 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 zur Anmeldeaufforderung Ihrer grafischen Desktop-Sitzung zurück.

Auf einmal würden Strg+Alt+F1 bis Strg+Alt+F6 die Vollbild-TTY-Konsolen öffnen, und Strg+Alt+F7 bringt Sie zu Ihrer grafischen Desktop-Umgebung zurück. Wenn Sie eine ältere Linux-Distribution verwenden, verhält sich Ihr System möglicherweise so.

Dies wurde auf aktuellen Versionen von Manjaro, Ubuntu und Fedora getestet und sie verhielten sich alle wie folgt:

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 Vollbild-Konsolen ermöglicht Benutzern, die Linux-Installationen nur über die Befehlszeile verwenden – und viele Linux-Server sind auf diese Weise konfiguriert –, mehrere Konsolen zur Verfügung zu haben.

Haben Sie schon einmal an einem Linux-Rechner mit einer grafischen Desktop-Umgebung gearbeitet und hatte etwas dazu geführt, dass Ihre Sitzung einfror? Jetzt können Sie zu einer der TTY-Konsolensitzungen wechseln, um zu versuchen, die Situation zu beheben.

Sie können top und ps verwenden, um die fehlgeschlagene Anwendung zu identifizieren, dann kill verwenden, um sie zu beenden, oder einfach Shutdown verwenden, um zu versuchen, so reibungslos wie es der Zustand des Computers zulässt, zu schließen.

Drei kleine Briefe mit viel Geschichte

Der tty-Befehl hat seinen Namen von einem Gerät aus dem späten 19. Jahrhundert, das 1971 in Unix erschien und bis heute Teil von Linux und Unix-ähnlichen Betriebssystemen ist.

Der kleine Kerl hat eine ganze Geschichte hinter sich.

x