Hva er en TTY på Linux? (og hvordan du bruker tty-kommandoen)

Hva gjør ttykommandoen? Den skriver ut navnet på terminalen du bruker. TTY står for "teletypewriter." Hva er historien bak navnet på kommandoen? Det krever litt mer forklaring.

Teleprinters Fra 1800-tallet

På 1830- og 1840-tallet ble det utviklet maskiner kjent som teleprinters. Disse maskinene kunne sende maskinskrevne meldinger "nedover ledningen" til fjerne steder. Meldingene ble skrevet av avsenderen på et slags tastatur. De ble trykt på papir i mottakersiden. De var et evolusjonært skritt i telegrafi, som tidligere hadde stolt på Morse og lignende koder.

Meldinger ble kodet og overført, så mottatt, dekodet og skrevet ut. Det ble brukt flere teknikker for å kode og dekode meldingene. Den mest berømte, og en av de mest produktive, ble patentert i 1874 av Émile Baudot, for hvem baudrate er oppkalt. Hans tegnkodingsskjema daterte ASCII med 89 år.

Baudots koding ble til slutt det nærmeste til en standard innen teleskriver-koding, og den ble vedtatt av de fleste produsenter. Baudots originale maskinvaredesign hadde bare fem taster, i likhet med pianotaster. Operatøren ble pålagt å lære en bestemt tastekombinasjon for hver bokstav. Til slutt ble Baudot-kodingssystemet koblet til et tradisjonelt tastaturoppsett.

For å markere dette fremskrittet ble maskinene kalt skrivemaskiner. Dette ble forkortet til teletyper og til slutt til TTY. Så det er der vi får akronymet TTY fra, men hva har telegrafi å gjøre med databehandling?

ASCII og Telex

Da ASCII ankom i 1963 ble den adoptert av produsentene av teletypen. Til tross for oppfinnelsen og den utbredte bruken av telefonen gikk teletypene fremdeles sterkt.

Telex var et verdensomspennende nettverk av teletyper som tillot å sende skriftlige meldinger over hele verden. De var det viktigste middelet for å overføre skriftlige meldinger i perioden etter andre verdenskrig frem til faksmaskinens bom på 1980-tallet.

Datamaskiner utviklet seg også. De ble i stand til å samhandle med brukere i sanntid, og støtte flere brukere. Den gamle batchmetoden for arbeid ble utilstrekkelig. Folk ønsket ikke å vente 24 timer eller lenger på resultatene. Å lage stabler med stansede kort og vente over natten på resultater var ikke lenger akseptabelt.

Folk trengte en enhet som tillater dem å legge inn instruksjoner og få resultater sendt tilbake til dem. Folk ønsket effektivitet.

Teletypen repurposed

Teletypen var den perfekte kandidaten som inngangs- / utgangsenhet. Det var tross alt en enhet designet for å la meldinger bli skrevet, kodet, sendt, mottatt, dekodet og skrevet ut.

Hva brydde seg teletypen om enheten i den andre enden av forbindelsen ikke var en annen teletype? Så lenge det snakket det samme kodingsspråket og kunne motta meldinger og sende meldinger tilbake, var teletypen lykkelig.

Og selvfølgelig brukte den et mer eller mindre standardtastatur.

Maskinvareemulerte teletyper

Teletyper ble standard middel for å samhandle med de store mini- og mainframe-datamaskinene i den tiden.

De ble til slutt erstattet av enheter som emulerte de elektromekaniske maskinene ved hjelp av elektronikk. Disse hadde katodestrålerør (CRT) i stedet for papirruller. De ristet ikke når de leverte svar fra datamaskinen. De tillot hittil umulig funksjonalitet, for eksempel å flytte markøren rundt skjermen, tømme skjermen, fet skrift, og så videre.

DEC VT05 var et tidlig eksempel på en virtuell teletype, og en forfader til den berømte DEC VT100. Millioner av DEC VT100-er ble solgt.

Programvareemulerte teletyper

I skrivebordsmiljøet til Linux og andre Unix-lignende operativsystemer som macOS, er terminalvinduet og applikasjoner som x-term og Konsole eksempler på virtuelle teletyper. Men disse er emulert helt i programvare. De kalles pseudo-teletyper. Dette ble forkortet til PTS.

Og det er der det ttykommer inn.

Hva kan tty fortelle oss?

I Linux er det en pseudo-teletype multiplexor som håndterer tilkoblingene fra alle terminalvinduets pseudo-teletyper (PTS). Multiplexoren er mesteren, og PTS er slaver. Multiplexoren adresseres av kjernen gjennom enhetsfilen som ligger på / dev / ptmx.

Den ttykommandoen vil skrive ut navnet på enheten fila som pseudo-fjernskriver slave bruker til grensesnittet til master. Og det er faktisk nummeret på terminalvinduet.

La oss se hvilke ttyrapporter for terminalvinduet vårt:

tty

Svaret viser at vi er koblet til enhetsfilen på / dev / pts / 0.

Terminalvinduet vårt, som er en programvareemulering av en teletype (TTY), er grensesnittet til pseudo-teletype multiplexor som en pseudo-teletype (PTS). Og det er tilfeldigvis nummer null.

Det stille alternativet

Alternativet -s(lydløs) forårsaker ttyingen produksjon.

tty -s

Det er å produsere en utgangsverdi, men:

  • 0 : hvis standardinngang kommer fra en TTY-enhet, emulert eller fysisk.
  • 1 : hvis standardinngang ikke kommer fra en TTY-enhet.
  • 2 : Syntaksfeil, feil kommandolinjeparametere ble brukt.
  • 3 : Det har oppstått en skrivfeil.

Dette er sannsynligvis mest nyttig i Bash-skripting. Men selv på kommandolinjen kan vi demonstrere hvordan du bare får utført en kommando hvis du kjører i et terminalvindu (en TTY- eller en PTS-økt).

tty -s && echo "In a tty"

Fordi vi kjører i en TTY-økt, er utgangskoden vår 0, og den andre kommandoen utføres.

The Who Command

Andre kommandoer kan avsløre TTY-nummeret ditt. Den whokommandoen vil vise informasjon for alle innloggede brukere, inkludert deg selv.

Alec og Mary er eksternt koblet til Linux-datamaskinen. De er koblet til PTS en og to.

User dave vises som koblet til “: 0”.

Dette representerer skjermen og tastaturet som er fysisk koblet til datamaskinen. Selv om skjermen og tastaturet er maskinvareenheter, er de fremdeles koblet til multiplexoren gjennom en enhetsfil. ttyavslører at det er / dev / pts / 2.

WHO
tty

RELATERT: Hvordan bestemme den nåværende brukerkontoen i Linux

Få tilgang til en TTY

Du får tilgang til en TTY-økt på full skjerm ved å holde nede Ctrl + Alt-tastene og trykke på en av funksjonstastene.

Ctrl + Alt + F3 vil hente inn påloggingsprompten til tty3.

Hvis du logger på og utsteder ttykommandoen, ser du at du er koblet til / dev / tty3.

Dette er ikke en pseudo-teletype (emulert i programvare); det er en virtuell teletype (emulert i maskinvare). Det bruker skjermen og tastaturet som er koblet til datamaskinen din, for å etterligne en virtuell teletype som DEC VT100 pleide å gjøre.

Du kan bruke funksjonstastene Ctrl + Alt med funksjonstastene F3 til F6 og ha fire TTY-økter åpne hvis du velger. For eksempel kan du være logget inn på tty3 og trykke Ctrl + Alt + F6 for å gå til tty6.

For å komme tilbake til det grafiske skrivebordsmiljøet, trykk Ctrl + Alt + F2.

Ved å trykke Ctrl + Alt + F1 vil du gå tilbake til påloggingsprompten for den grafiske skrivebordsøkten.

På en gang vil Ctrl + Alt + F1 til Ctrl + Alt + F6 åpne TTY-konsollene i full skjerm, og Ctrl + Alt + F7 vil returnere deg til ditt grafiske skrivebordsmiljø. Hvis du kjører en eldre Linux-distribusjon, kan dette være hvordan systemet ditt oppfører seg.

Dette ble testet på nåværende utgivelser av Manjaro, Ubuntu og Fedora, og de oppførte seg slik:

  1. Ctrl + Alt + F1 : Går tilbake til det grafiske påloggingsskjermbildet for skrivebordsmiljøet.
  2. Ctrl + Alt + F2 : Returnerer deg til det grafiske skrivebordsmiljøet.
  3. Ctrl + Alt + F3 : Åpner TTY 3.
  4. Ctrl + Alt + F4 : Åpner TTY 4.
  5. Ctrl + Alt + F5 : Åpner TTY 5.
  6. Ctrl + Alt + F6 : Åpner TTY 6.

Å ha tilgang til disse fullskjermkonsollene gjør det mulig for folk som bruker kun kommandolinjeinstallasjoner av Linux - og mange Linux-servere er konfigurert på denne måten - å ha flere konsoller tilgjengelig.

Har du noen gang jobbet på en Linux-maskin med et grafisk skrivebordsmiljø, og hadde noe fått økten til å fryse? Nå kan du hoppe over til en av TTY-konsolløktene, slik at du kan prøve å rette opp situasjonen.

Du kan bruke topog psprøve å identifisere det mislykkede programmet, og deretter bruke killtil å avslutte det, eller bare bruke shutdowntil å prøve å lukke så grasiøst som datamaskinens tilstand tillater.

RELATERT: Hvordan drepe prosesser fra Linux-terminalen

Tre små bokstaver med mye historie

Den ttykommandoen har fått navnet sitt fra en enhet fra slutten av 1800-tallet, dukket opp i Unix i 1971, og er en del av Linux og Unix-lignende operativsystemer til denne dag.

Den lille karen har ganske mye historie bak seg.