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

Hvad gør kommandoen tty? Den udskriver navnet på den terminal, du bruger. TTY står for “teletypewriter”. Hvad er historien bag navnet på kommandoen? Det kræver lidt mere forklaring.

Teleprintere fra 1800-tallet

I 1830’erne og 1840’erne blev maskiner kendt som fjernskrivere blev udviklet. Disse maskiner kunne sende maskinskrevne beskeder “down the wire” til fjerne steder. Beskederne blev skrevet af afsenderen på en slags tastatur. De blev trykt på papir i den modtagende ende. De var et evolutionært skridt ind telegrafi, som tidligere havde påberåbt sig Morse og lignende koder.

Beskeder blev kodet og transmitteret, derefter modtaget, afkodet og udskrevet. Der var flere teknikker brugt til at kode og afkode beskederne. Den mest berømte og en af ​​de mest produktive blev patenteret i 1874 af Emil Baudot, for hvem baudrate er navngivet. Hans karakterkodningsskema var foruddateret ASCII med 89 år.

Baudots kodning blev til sidst det, der var tættest på en standard inden for fjernprinterkodning, og den blev overtaget af de fleste producenter. Baudots originale hardwaredesign havde kun fem tangenter, svarende til klavertangenter. Operatøren skulle lære en bestemt tastekombination for hvert bogstav. Til sidst blev Baudot-kodningssystemet koblet til et traditionelt tastaturlayout.

For at markere det fremskridt blev maskinerne navngivet fjernskrivere. Dette blev forkortet til teletyper og til sidst til TTY’er. Så det er der, vi får det akronym TTY fra, men hvad har telegrafi med computing at gøre?

ASCII og telex

Da ASCII ankom i 1963, blev den adopteret af teletypeproducenterne. På trods af opfindelsen og den udbredte brug af telefonen var teletyperne stadig stærke.

Telex var et verdensomspændende netværk af teletyper, der gjorde det muligt at sende skriftlige beskeder rundt om i verden. De var det vigtigste middel til at transmittere skriftlige meddelelser i perioden efter Anden Verdenskrig frem til kl faxmaskine bom af 1980’erne.

  De 6 bedste skærmbilledeværktøjer til Linux

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

Folk havde brug for en enhed, der ville give dem mulighed for at indtaste instruktioner og få resultater sendt tilbage til dem. Folk ønskede effektivitet.

Teletypen genbrugt

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

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

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

Hardware-emulerede teletyper

Teletyper blev standardmetoden til at interagere med den tids store mini- og mainframe-computere.

De blev til sidst erstattet af enheder, der emulerede de elektromekaniske maskiner ved hjælp af elektronik. Disse havde Katodestrålerør (CRT’er) i stedet for papirruller. De rystede ikke, da de leverede svar fra computeren. De tillod hidtil umulige funktioner, såsom at flytte markøren rundt på skærmen, rydde skærmen, fed tekst og så videre.

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

Software-emulerede teletyper

I skrivebordsmiljøet i Linux og andre Unix-lignende operativsystemer såsom macOS, terminalvinduet og applikationer som f.eks. x-sigtet og Konsole er eksempler på virtuelle teletyper. Men disse emuleres udelukkende i software. De kaldes pseudo-teletyper. Dette blev forkortet til PTS.

Og det er her, tty kommer ind.

Hvad kan du fortælle os?

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

  Sådan installeres Linux 5.0-opdateringen på Ubuntu 18.04 LTS

tty-kommandoen udskriver navnet på enhedsfilen, som din pseudo-teletype-slave bruger til at oprette forbindelse til masteren. Og det er faktisk nummeret på dit terminalvindue.

Lad os se, hvad tty rapporterer for vores terminalvindue:

tty

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

Vores terminalvindue, som er en softwareemulering af en teletype (TTY), er forbundet med pseudo-teletype-multiplekseren som en pseudo-teletype (PTS). Og det er tilfældigvis nummer nul.

Den lydløse mulighed

Indstillingen -s (lydløs) får tty til ikke at generere noget output.

tty -s

Det producerer dog en exitværdi:

0: hvis standardinput 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 vil sandsynligvis være mest nyttigt i Bash-scripting. Men selv på kommandolinjen kan vi demonstrere, hvordan man kun får en kommando udført, hvis du kører i et terminalvindue (en TTY- eller en PTS-session).

tty -s && echo "In a tty"

tty -s && ekko

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

Hvem befaler

Andre kommandoer kan afsløre dit TTY-nummer. Who-kommandoen vil vise oplysninger for alle loggede brugere, inklusive dig selv.

Alec og Mary er fjernforbundet til Linux-computeren. De er tilsluttet PTS en og to.

Bruger dave 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 via en enhedsfil. tty afslører, at det er /dev/pts/2.

who
tty

Adgang til en TTY

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

Ctrl+Alt+F3 viser login-prompten for tty3.

Hvis du logger ind og udsteder tty-kommandoen, vil du se, at du har forbindelse til /dev/tty3.

  Sådan bruger du Unified Remote til at styre en Linux-pc

Dette er ikke en pseudo-teletype (emuleret i software); det er en virtuel teletype (emuleret i hardware). Den 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 det. For eksempel kan du være logget på tty3 og trykke på Ctrl+Alt+F6 for at gå til tty6.

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

Ved at trykke på Ctrl+Alt+F1 vender du tilbage til login-prompten for din grafiske skrivebordssession.

På én gang 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, hvordan dit system opfører sig.

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

Ctrl+Alt+F1: Vender dig tilbage til den grafiske login-skærm på skrivebordet.
Ctrl+Alt+F2: Vender dig tilbage til det grafiske skrivebordsmiljø.
Ctrl+Alt+F3: Åbner TTY 3.
Ctrl+Alt+F4: Åbner TTY 4.
Ctrl+Alt+F5: Åbner TTY 5.
Ctrl+Alt+F6: Åbner TTY 6.

At have adgang til disse fuldskærmskonsoller giver folk, der kun bruger kommandolinjeinstallationer af Linux – og mange Linux-servere er konfigureret på denne måde – at have flere konsoller tilgængelige.

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

Du kan bruge top og ps til at forsøge at identificere det mislykkede program, og derefter bruge kill for at afslutte det, eller bare bruge shutdown for at prøve at lukke ned så yndefuldt som computerens tilstand tillader.

Tre små bogstaver med en masse historie

tty-kommandoen har fået sit navn fra en enhed fra slutningen af ​​1800-tallet, dukkede op i Unix i 1971 og er en del af Linux og Unix-lignende operativsystemer den dag i dag.

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