Wat is een TTY op Linux? (en hoe u het tty-commando gebruikt)

Schrijfmachine voor teletype
Juni Marie Sobrito / Shutterstock.com

Wat doet de tty commando doen? Het drukt de naam af van de terminal die u gebruikt. TTY staat voor “teletypewriter”. Wat is het verhaal achter de naam van de opdracht? Dat vergt wat meer uitleg.

Teleprinters uit de 19e eeuw

In de jaren 1830 en 1840 werden machines ontwikkeld die bekend staan ​​als teleprinters. Deze machines konden getypte berichten “down the wire” naar verre locaties sturen. De berichten zijn door de afzender op een soort toetsenbord getypt. Ze werden aan de ontvangende kant op papier gedrukt. Ze waren een evolutionaire stap in de telegrafie, die voorheen op morse en soortgelijke codes vertrouwde.

Berichten werden gecodeerd en verzonden, vervolgens ontvangen, gedecodeerd en afgedrukt. Er werden verschillende technieken gebruikt om de berichten te coderen en decoderen. De beroemdste en een van de meest productieve, werd in 1874 gepatenteerd door Émile Baudot, naar wie de baudrate is genoemd. Zijn karaktercoderingsschema dateert van 89 jaar ouder dan ASCII.

De codering van Baudot kwam uiteindelijk het dichtst in de buurt van een standaard in teleprintercodering, en werd door de meeste fabrikanten overgenomen. Het oorspronkelijke hardware-ontwerp van Baudot had slechts vijf toetsen, vergelijkbaar met pianotoetsen. De operator moest voor elke letter een bepaalde toetsencombinatie leren. Uiteindelijk werd het Baudot-coderingssysteem gekoppeld aan een traditionele toetsenbordindeling.

Om die vooruitgang te markeren, werden de machines teletypewriters genoemd. Dit werd ingekort tot teletypes en uiteindelijk tot TTY’s. Dus daar halen we het acroniem TTY vandaan, maar wat heeft telegrafie met computers te maken?

ASCII en Telex

Toen ASCII in 1963 arriveerde, werd het overgenomen door de teletypefabrikanten. Ondanks de uitvinding en het wijdverbreide gebruik van de telefoon, waren de teletypes nog steeds goed.

Telex was een wereldwijd netwerk van teletypes waarmee geschreven berichten over de hele wereld konden worden verzonden. Ze waren het belangrijkste middel voor het verzenden van geschreven berichten in de periode na de Tweede Wereldoorlog tot aan de opkomst van faxapparaten in de jaren tachtig.

Computers evolueerden ook. Ze werden in staat om in realtime met gebruikers te communiceren en om meerdere gebruikers te ondersteunen. De oude batchwerkwijze werd onvoldoende. Mensen wilden niet 24 uur of langer wachten op hun resultaten. Stapels ponskaarten maken en ’s nachts wachten op resultaten was niet langer acceptabel.

Mensen hadden een apparaat nodig waarmee ze instructies konden invoeren en de resultaten naar hen teruggestuurd konden krijgen. Mensen wilden efficiëntie.

De Teletype hergebruikt

Het teletype was de perfecte kandidaat als invoer- / uitvoerapparaat. Het was tenslotte een apparaat waarmee berichten konden worden getypt, gecodeerd, verzonden, ontvangen, gedecodeerd en afgedrukt.

Wat kon het telefoontype schelen als het apparaat aan de andere kant van de verbinding geen ander telefoontype was? Zolang het dezelfde coderingstaal sprak en berichten kon ontvangen en terugsturen, was het teletype tevreden.

En natuurlijk gebruikte het een min of meer standaard toetsenbord.

Door hardware geëmuleerde teletypes

Teletypes werden het standaardmiddel voor interactie met de grote mini- en mainframecomputers van die tijd.

Ze werden uiteindelijk vervangen door apparaten die geëmuleerd die elektromechanische machines die elektronica gebruiken. Deze hadden kathodestraalbuizen (CRT’s) in plaats van papierrollen. Ze beefden niet bij het afleveren van reacties vanaf de computer. Ze maakten tot nu toe onmogelijke functies mogelijk, zoals het verplaatsen van de cursor over het scherm, het leegmaken van het scherm, vetgedrukte tekst, enzovoort.

De DEC VT05 was een vroeg voorbeeld van een virtueel teletype en een voorouder van de beroemde DEC VT100. Miljoenen DEC VT100’s werden verkocht.

Software-geëmuleerde teletypes

In de desktopomgeving van Linux en andere Unix-achtige besturingssystemen zoals macOS, zijn het terminalvenster en applicaties zoals x-term en Konsole voorbeelden van virtuele teletypes. Maar deze worden volledig in software geëmuleerd. Ze worden pseudo-teletypes genoemd. Dit werd afgekort tot PTS.

En dat is waar tty komt binnen.

Wat kan tty ons vertellen?

In Linux is er een pseudo-teletype multiplexor die de verbindingen afhandelt van alle pseudo-teletypes (PTS) van het terminalvenster. De multiplexer is de meester en de PTS zijn de slaven. De multiplexor wordt door de kernel aangesproken via het apparaatbestand op / dev / ptmx.

De tty commando zal de naam afdrukken van het apparaatbestand dat uw pseudo-teletype-slaaf gebruikt om te communiceren met de master. En dat is in feite het nummer van uw terminalvenster.

Eens kijken wat tty rapporten voor ons terminalvenster:

tty

tty in een terminalvenster

Het antwoord laat zien dat we verbonden zijn met het apparaatbestand op / dev / pts / 0.

Ons terminalvenster, dat een software-emulatie is van een teletype (TTY), is als een pseudo-teletype (PTS) gekoppeld aan de pseudo-teletype-multiplexer. En het is toevallig nummer nul.

De stille optie

De -s (stille) optie oorzaken tty om geen output te genereren.

tty -s

tty -s in een terminalvenster

Het produceert echter wel een exitwaarde:

  • 0: als standaardinvoer afkomstig is van een TTY-apparaat, geëmuleerd of fysiek.
  • 1: als de standaardinvoer niet afkomstig is van een TTY-apparaat.
  • 2: Syntaxisfout, onjuiste opdrachtregelparameters zijn gebruikt.
  • 3: Er is een schrijffout opgetreden.

Dit is waarschijnlijk het handigst bij het gebruik van Bash-scripts. Maar zelfs op de opdrachtregel kunnen we demonstreren hoe u een opdracht alleen kunt laten uitvoeren als u in een terminalvenster draait (een TTY- of een PTS-sessie).

tty -s && echo "In a tty"

tty -s && echo "In a tty" in een terminalvenster

Omdat we in een TTY-sessie draaien, is onze exitcode 0 en wordt het tweede commando uitgevoerd.

"In a tty" in een terminalvenster

The who Command

Andere opdrachten kunnen uw TTY-nummer onthullen. De who commando geeft informatie weer voor alle ingelogde gebruikers, inclusief jezelf.

Alec en Mary zijn op afstand verbonden met de Linux-computer. Ze zijn verbonden met PTS één en twee.

Gebruiker dave wordt weergegeven als verbonden met “: 0”.

Dit vertegenwoordigt het scherm en toetsenbord dat fysiek op de computer is aangesloten. Hoewel het scherm en toetsenbord hardwareapparaten zijn, zijn ze nog steeds via een apparaatbestand met de multiplexor verbonden. tty onthult dat het / dev / pts / 2 is.

who
tty

who en tty in een terminalvenster

VERWANT: Hoe u het huidige gebruikersaccount in Linux kunt bepalen

Toegang krijgen tot een TTY

U kunt een TTY-sessie op volledig scherm openen door de Ctrl + Alt-toetsen ingedrukt te houden en op een van de functietoetsen te drukken.

Ctrl + Alt + F3 zal de aanmeldingsprompt van tty3 oproepen.

tty3-console

Als u zich aanmeldt en het tty commando, je zult zien dat je verbonden bent met / dev / tty3.

Dit is geen pseudo-teletype (geëmuleerd in software); het is een virtueel teletype (geëmuleerd in hardware). Het gebruikt het scherm en het toetsenbord dat op uw computer is aangesloten om een ​​virtueel teletype te emuleren zoals de DEC VT100 vroeger deed.

U kunt de functietoetsen Ctrl + Alt gebruiken met de functietoetsen F3 t / m F6 en u hebt desgewenst vier TTY-sessies open. U kunt bijvoorbeeld zijn aangemeld bij tty3 en op Ctrl + Alt + F6 drukken om naar tty6 te gaan.

tty6-console

Druk op Ctrl + Alt + F2 om terug te gaan naar uw grafische bureaubladomgeving.

Door op Ctrl + Alt + F1 te drukken, keert u terug naar de aanmeldingsprompt van uw grafische desktopsessie.

Eens zouden Ctrl + Alt + F1 tot en met Ctrl + Alt + F6 de TTY-consoles op volledig scherm openen en Ctrl + Alt + F7 zou u terugbrengen naar uw grafische desktopomgeving. Als u een oudere Linux-distributie gebruikt, kan dit zijn hoe uw systeem zich gedraagt.

Dit is getest actueel releases van Manjaro, Ubuntu en Fedora en ze gedroegen zich allemaal als volgt:

  1. Ctrl + Alt + F1: Brengt u terug naar het inlogscherm van de grafische desktopomgeving.
  2. Ctrl + Alt + F2: Brengt u terug naar de grafische desktopomgeving.
  3. Ctrl + Alt + F3: Opent TTY 3.
  4. Ctrl + Alt + F4: Opent TTY 4.
  5. Ctrl + Alt + F5: Opent TTY 5.
  6. Ctrl + Alt + F6: Opent TTY 6.

Door toegang te hebben tot deze consoles op volledig scherm, kunnen mensen die alleen Linux-installaties op de opdrachtregel gebruiken – en veel Linux-servers zijn op deze manier geconfigureerd – meerdere consoles beschikbaar hebben.

Heeft u ooit op een Linux-machine met een grafische desktopomgeving gewerkt en heeft iets ervoor gezorgd dat uw sessie vastloopt? Nu kunt u naar een van de TTY-consolesessies gaan, zodat u kunt proberen de situatie recht te zetten.

Je kunt gebruiken top en ps om te proberen de mislukte toepassing te identificeren en gebruik dan kill om het te beëindigen, of gebruik gewoon shutdown om te proberen zo gracieus af te sluiten als de staat van de computer toestaat.

VERWANT: Hoe processen vanaf de Linux-terminal te beëindigen

Drie kleine letters met veel geschiedenis

De tty commando dankt zijn naam aan een apparaat uit de late jaren 1800, verscheen in Unix in 1971 en maakt tot op de dag van vandaag deel uit van Linux en Unix-achtige besturingssystemen.

De kleine kerel heeft nogal een verhaal achter zich.

Nieuwste artikelen

Gerelateerde artikelen