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

Was macht der ttyBefehl? Es gibt den Namen des verwendeten Terminals aus. TTY steht für "Teletypewriter". Was ist die Geschichte hinter dem Namen des Befehls? Das braucht etwas mehr Erklärung.

Ferndrucker aus dem 19. Jahrhundert

In den 1830er und 1840er Jahren wurden Maschinen entwickelt, die als Ferndrucker bekannt sind. Diese Maschinen könnten getippte Nachrichten „über das Kabel“ an entfernte Orte senden. Die Nachrichten wurden vom Absender auf einer Art Tastatur eingegeben. Sie wurden am Empfangsende auf Papier gedruckt. Sie waren ein Evolutionsschritt in der Telegraphie, die sich zuvor auf Morse und ähnliche Codes gestützt hatte.

Nachrichten wurden codiert und gesendet, dann empfangen, decodiert und gedruckt. Es gab verschiedene Techniken, um die Nachrichten zu codieren und zu decodieren. Die berühmteste und eine der produktivsten wurde 1874 von Émile Baudot patentiert, nach der die Baudrate benannt ist. Sein Zeichenkodierungsschema war 89 Jahre älter als ASCII.

Die Codierung von Baudot kam schließlich einem Standard in der Teleprinter-Codierung am nächsten und wurde von den meisten Herstellern übernommen. Baudots ursprüngliches Hardware-Design hatte nur fünf Tasten, ähnlich wie bei Klaviertasten. Der Bediener 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 als Teletypewriter bezeichnet. Dies wurde zu Teletypen und schließlich zu TTYs verkürzt. Daher erhalten wir das Akronym TTY, aber was hat Telegraphie mit Computer zu tun?

ASCII und Telex

Als ASCII 1963 eintraf, wurde es von den Teletypherstellern übernommen. Trotz der Erfindung und der weit verbreiteten Verwendung des Telefons waren die Teletypen immer noch stark.

Telex war ein weltweites Netzwerk von Teletypen, mit denen schriftliche Nachrichten rund um den Globus gesendet werden konnten. Sie waren das Hauptmittel für die Übermittlung schriftlicher Nachrichten in der Zeit nach dem Zweiten Weltkrieg bis zum Boom der Faxgeräte in den 1980er Jahren.

Auch die 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. Es war nicht mehr akzeptabel, Stapel von Lochkarten herzustellen und über Nacht auf Ergebnisse zu warten.

Die Leute brauchten ein Gerät, mit dem sie Anweisungen eingeben und Ergebnisse an sie zurücksenden konnten. Die Leute wollten Effizienz.

Der Teletyp wurde neu verwendet

Der Teletyp war der perfekte Kandidat als Eingabe- / Ausgabegerät. Es war schließlich ein Gerät, mit dem Nachrichten getippt, codiert, gesendet, empfangen, decodiert und gedruckt werden konnten.

Was kümmerte der Teletyp, wenn das Gerät am anderen Ende der Verbindung kein anderer Teletyp war? Solange es dieselbe Codierungssprache sprach und Nachrichten empfangen und zurücksenden konnte, war der Teletyp glücklich.

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

Hardware emulierte Teletypen

Teletypen wurden zum Standardmittel für die Interaktion mit den großen Mini-Computern und Mainframe-Computern dieser Zeit.

Sie wurden schließlich durch Geräte ersetzt, die diese elektromechanischen Maschinen mithilfe von Elektronik emulierten . Diese hatten Kathodenstrahlröhren (CRTs) anstelle von Papierrollen. Sie zitterten nicht, als sie Antworten vom Computer übermittelten. Sie ermöglichten bisher unmögliche Funktionen wie das Bewegen des Cursors über den Bildschirm, das Löschen des Bildschirms, das Fettdrucken von Text usw.

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

Software emulierte Teletypen

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

Und hier ttykommt es ins Spiel.

Was kann uns tty sagen?

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

Der ttyBefehl gibt den Namen der Gerätedatei aus, die Ihr Pseudo-Teletyp-Slave für die Schnittstelle zum Master verwendet. Und das ist effektiv die Nummer Ihres Terminalfensters.

Mal sehen, welche ttyBerichte für unser Terminalfenster vorliegen:

tty

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

Unser Terminalfenster, bei dem es sich um eine Software-Emulation eines Teletyps (TTY) handelt, ist als Pseudo-Teletyp (PTS) mit dem Pseudo-Teletyp-Multiplexer verbunden. Und es ist zufällig die Nummer Null.

Die stille Option

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

tty -s

Es wird jedoch ein Exit-Wert erzeugt:

  • 0 : Wenn die Standardeingabe von einem emulierten oder physischen TTY-Gerät kommt.
  • 1 : Wenn der Standardeingang nicht von einem TTY-Gerät kommt.
  • 2 : Syntaxfehler, falsche Befehlszeilenparameter wurden verwendet.
  • 3 : Ein Schreibfehler ist aufgetreten.

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

tty -s && echo "In a tty"

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

Das Who-Kommando

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

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

Benutzer Dave wird als mit ": 0" verbunden 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 über eine Gerätedatei mit dem Multiplexer verbunden. ttyzeigt, dass es / dev / pts / 2 ist.

Wer
tty

VERBINDUNG: So ermitteln Sie das aktuelle Benutzerkonto unter Linux

Zugriff auf ein TTY

Sie können auf eine Vollbild-TTY-Sitzung zugreifen, indem Sie die Strg + Alt-Taste gedrückt halten und eine der Funktionstasten drücken.

Strg + Alt + F3 ruft die Anmeldeaufforderung von tty3 auf.

Wenn Sie sich anmelden und den ttyBefehl eingeben, sehen Sie, dass Sie mit / dev / tty3 verbunden sind.

Dies ist kein Pseudo-Teletyp (in Software emuliert). Es ist ein virtueller Teletyp (in Hardware emuliert). Es verwendet den Bildschirm und die Tastatur, die an Ihren Computer angeschlossen sind, um einen virtuellen Teletyp wie den DEC VT100 zu emulieren.

Sie können die Funktionstasten Strg + Alt mit den Funktionstasten F3 bis F6 verwenden und bei Bedarf vier TTY-Sitzungen öffnen. Sie könnten beispielsweise bei tty3 angemeldet sein und Strg + Alt + F6 drücken, um zu tty6 zu gelangen.

Drücken Sie Strg + Alt + F2, um zu Ihrer grafischen Desktop-Umgebung zurückzukehren.

Durch Drücken von Strg + Alt + F1 kehren Sie zur Anmeldeaufforderung Ihrer grafischen Desktopsitzung zurück.

Zu einer Zeit öffneten Strg + Alt + F1 bis Strg + Alt + F6 die Vollbild-TTY-Konsolen, und Strg + Alt + F7 kehrten zu Ihrer grafischen Desktop-Umgebung zurück. Wenn Sie eine ältere Linux-Distribution ausführen, verhält sich Ihr System möglicherweise so.

Dies wurde auf aktuellen Versionen von Manjaro, Ubuntu und Fedora getestet und alle haben sich so verhalten:

  1. Strg + Alt + F1 : Kehrt zum Anmeldebildschirm der grafischen Desktop-Umgebung zurück.
  2. Strg + Alt + F2 : Kehrt zur grafischen Desktop-Umgebung zurück.
  3. Strg + Alt + F3 : Öffnet TTY 3.
  4. Strg + Alt + F4 : Öffnet TTY 4.
  5. Strg + Alt + F5 : Öffnet TTY 5.
  6. Strg + Alt + F6 : Öffnet TTY 6.

Durch den Zugriff auf diese Vollbildkonsolen können Benutzer, die nur Befehlszeileninstallationen von Linux verwenden - und viele Linux-Server sind auf diese Weise konfiguriert - mehrere Konsolen zur Verfügung haben.

Haben Sie schon einmal auf einem Linux-Computer mit einer grafischen Desktop-Umgebung gearbeitet und Ihre Sitzung wurde durch etwas eingefroren? Jetzt können Sie zu einer der TTY-Konsolensitzungen wechseln, um zu versuchen, die Situation zu korrigieren.

Sie können die ausgefallene Anwendung verwenden topund psversuchen, sie zu identifizieren, sie dann killzu beenden oder einfach shutdownzu versuchen, sie so ordnungsgemäß zu schließen, wie es der Status des Computers zulässt.

VERBINDUNG: So beenden Sie Prozesse vom Linux-Terminal aus

Drei kleine Briefe mit viel Geschichte

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

Der kleine Kerl hat eine ziemliche Geschichte hinter sich.