Hvad er en TTY på Linux? (og hvordan man bruger tty-kommandoen)

Hvad gør ttykommandoen? Det udskriver navnet på den terminal, du bruger. TTY står for "teletypewriter". Hvad er historien bag navnet på kommandoen? Det tager lidt mere forklaring.

Teleprinters Fra 1800-tallet

I 1830'erne og 1840'erne blev der udviklet maskiner kendt som teleprintere. Disse maskiner kunne sende maskinskrevne meddelelser "ned ad ledningen" til fjerne steder. Beskederne blev skrevet af afsenderen på et slags tastatur. De blev trykt på papir i den modtagende ende. De var et evolutionært skridt i telegrafi, som tidligere havde påberåbt sig Morse og lignende koder.

Beskeder blev kodet og transmitteret, derefter modtaget, afkodet og udskrevet. Der blev anvendt flere teknikker til at kode og afkode beskederne. Den mest berømte og en af ​​de mest produktive blev patenteret i 1874 af Émile Baudot, for hvem baudrate er opkaldt. Hans tegnkodningsplan foruddaterede ASCII med 89 år.

Baudots kodning blev til sidst den nærmeste ting til en standard i teleprinter-kodning, og den blev vedtaget af de fleste producenter. Baudots originale hardware-design havde kun fem taster, der lignede klavernøgler. Operatøren var forpligtet til at lære en bestemt tastekombination for hvert bogstav. Til sidst blev Baudot-kodningssystemet koblet til et traditionelt tastaturlayout.

For at markere dette fremskridt blev maskinerne navngivet teletypemaskiner. Dette blev forkortet til teletyper og til sidst til TTY'er. Så det er her, vi får akronymet TTY fra, men hvad har telegrafi at gøre med computing?

ASCII og Telex

Da ASCII ankom i 1963, blev den vedtaget af producenterne af teletype. På trods af opfindelsen og den udbredte brug af telefonen gik teletyper stadig stærkt.

Telex var et verdensomspændende netværk af teletyper, der gjorde det muligt at sende skriftlige beskeder over hele kloden. De var det vigtigste middel til at transmittere skriftlige meddelelser i perioden efter Anden Verdenskrig op til faxmaskinens boom i 1980'erne.

Computere udviklede sig også. De var i stand til at interagere med brugerne i realtid og støtte flere brugere. Den gamle batch-arbejdsmetode blev utilstrækkelig. Folk ønskede ikke at vente 24 timer eller længere på deres resultater. At lave stakke med stansede kort og vente natten over på resultater var ikke længere acceptabelt.

Folk havde brug for en enhed, der gjorde det muligt for dem at indtaste instruktioner og få resultater sendt tilbage til dem. Folk ønskede effektivitet.

Teletypen genopbygget

Teletypen var den perfekte kandidat som input / output-enhed. Det var trods alt en enhed designet til at tillade, at meddelelser blev skrevet, kodet, sendt, modtaget, afkodet og udskrevet.

Hvad plejede teletypen sig, hvis enheden i den anden ende af forbindelsen ikke var en anden teletype? Så længe det talte det samme kodningssprog og kunne modtage beskeder og sende beskeder tilbage, var teletypen glad.

Og selvfølgelig brugte det et mere eller mindre standardtastatur.

Hardwareemulerede teletyper

Teletyper blev standardmetoden til at interagere med de store mini- og mainframe-computere i den æra.

De blev til sidst erstattet af enheder, der efterlignede disse elektromekaniske maskiner ved hjælp af elektronik. Disse havde katodestrålerør (CRT'er) i stedet for papirruller. De ryste ikke, da de leverede svar fra computeren. De tillod hidtil umulig funktionalitet, såsom at flytte markøren rundt på skærmen, rydde skærmen, fed skrift osv.

DEC VT05 var et tidligt eksempel på en virtuel teletype og en forfader til den berømte DEC VT100. Millioner af DEC VT100 blev solgt.

Softwareemulerede teletyper

I desktopmiljøet i Linux og andre Unix-lignende operativsystemer som macOS er terminalvinduet og applikationer som x-term og Konsole eksempler på virtuelle teletyper. Men disse er efterlignet i software. De kaldes pseudo-teletyper. Dette blev forkortet til PTS.

Og det er her, der ttykommer ind.

Hvad kan tty fortælle os?

I Linux er der en pseudo-teletype multiplexor, der håndterer forbindelserne fra alle terminalvinduets pseudo-teletyper (PTS). Multiplexoren er mesteren, og PTS er slaverne. Multiplexoren adresseres af kernen gennem enhedsfilen placeret på / dev / ptmx.

Den ttykommando vil udskrive navnet på den enhed fil, din pseudo-fjernskriver slave bruger til at interface til master. Og det er faktisk nummeret på dit terminalvindue.

Lad os se, hvilke ttyrapporter for vores terminalvindue:

tty

Svaret viser, at vi er tilsluttet enhedsfilen på / dev / pts / 0.

Vores terminalvindue, som er en softwareemulering af en teletype (TTY), er grænseflade til pseudo-teletype-multiplexoren som en pseudo-teletype (PTS). Og det tilfældigvis er nummer nul.

Den tavse mulighed

Indstillingen -s(lydløs) medfører, ttyat der ikke genereres noget output.

tty -s

Det gør er at producere en exitværdi, dog:

  • 0 : hvis standardindgang kommer fra en TTY-enhed, emuleret eller fysisk.
  • 1 : hvis standardindgangen ikke kommer fra en TTY-enhed.
  • 2 : Syntaksfejl, forkerte kommandolinjeparametre blev brugt.
  • 3 : Der er opstået en skrivefejl.

Dette er sandsynligvis mest nyttigt i Bash-scripting. Men selv på kommandolinjen kan vi kun demonstrere, hvordan man kun udfører en kommando, hvis du kører i et terminalvindue (en TTY- eller en PTS-session).

tty -s && echo "In a tty"

Fordi vi kører i en TTY-session, er vores exit-kode 0, og den anden kommando udføres.

Hvem kommandoen

Andre kommandoer kan afsløre dit TTY-nummer. Den whokommando vil liste oplysninger for alle logget ind brugere, inklusive dig selv.

Alec og Mary er eksternt forbundet til Linux-computeren. De er forbundet til PTS en og to.

Brugerdave vises som forbundet til “: 0”.

Dette repræsenterer skærmen og tastaturet, der er fysisk forbundet til computeren. Selvom skærmen og tastaturet er hardwareenheder, er de stadig forbundet til multiplexoren gennem en enhedsfil. ttyafslører, at det er / dev / pts / 2.

WHO
tty

RELATERET: Sådan bestemmes den aktuelle brugerkonto i Linux

Adgang til en TTY

Du kan få adgang til en TTY-session på fuld skærm ved at holde Ctrl + Alt-tasterne nede og trykke på en af ​​funktionstasterne.

Ctrl + Alt + F3 åbner loginprompten for tty3.

Hvis du logger ind og udsteder ttykommandoen, ser du, at du har forbindelse til / dev / tty3.

Dette er ikke en pseudo-teletype (emuleret i software); det er en virtuel teletype (emuleret i hardware). Det bruger skærmen og tastaturet, der er tilsluttet din computer, til at efterligne en virtuel teletype som DEC VT100 plejede at gøre.

Du kan bruge funktionstasterne Ctrl + Alt med funktionstasterne F3 til F6 og have fire TTY-sessioner åbne, hvis du vælger. For eksempel kan du være logget ind på tty3 og trykke på Ctrl + Alt + F6 for at gå til tty6.

For at komme tilbage til dit grafiske skrivebordsmiljø skal du trykke på Ctrl + Alt + F2.

Ved at trykke på Ctrl + Alt + F1 vender du tilbage til loginprompten til din grafiske skrivebordsession.

På et tidspunkt ville Ctrl + Alt + F1 til Ctrl + Alt + F6 åbne TTY-konsollerne i fuld skærm, og Ctrl + Alt + F7 ville returnere dig til dit grafiske skrivebordsmiljø. Hvis du kører en ældre Linux-distribution, kan det være sådan, dit system opfører sig.

Dette blev testet på aktuelle udgivelser af Manjaro, Ubuntu og Fedora, og de opførte sig alle sådan:

  1. Ctrl + Alt + F1 : Vender dig tilbage til det grafiske skrivebordsmiljø log-in skærmbillede.
  2. Ctrl + Alt + F2 : Vender tilbage til det grafiske skrivebordsmiljø.
  3. Ctrl + Alt + F3 : Åbner TTY 3.
  4. Ctrl + Alt + F4 : Åbner TTY 4.
  5. Ctrl + Alt + F5 : Åbner TTY 5.
  6. Ctrl + Alt + F6 : Åbner TTY 6.

At have adgang til disse fuldskærmskonsoller tillader, at folk, der kun bruger kommandolinjinstallationer af Linux - og mange Linux-servere er konfigureret på denne måde - har flere konsoller til rådighed.

Har du nogensinde arbejdet på en Linux-maskine med et grafisk skrivebordsmiljø og havde noget fået din session til at fryse? Nu kan du hoppe over til en af ​​TTY-konsolesessionerne, så du kan prøve at rette op på situationen.

Du kan bruge topog psprøve at identificere den mislykkede applikation og derefter bruge killtil at afslutte den eller bare bruge shutdowntil at prøve at lukke så yndefuldt som computerens tilstand tillader.

RELATERET: Sådan dræbes processer fra Linux-terminalen

Tre små bogstaver med en masse historie

Den ttykommando får sit navn fra en enhed fra slutningen af 1800'erne, dukkede op i Unix i 1971, og er en del af Linux og Unix-lignende operativsystemer til denne dag.

Den lille fyr har en ganske fortælling bag sig.