Hva gjør kommandoen «tty»? Den gir deg navnet på terminalen du for øyeblikket benytter. Forkortelsen TTY står for «teletypewriter». Men hvor kommer dette navnet fra? Det krever litt mer bakgrunnsinformasjon.
Teleprintere fra 1800-tallet
På 1830- og 1840-tallet ble det utviklet maskiner kjent som fjernskrivere. Disse enhetene var i stand til å sende maskinskrevne meldinger over lange avstander via ledninger. Avsender skrev meldingen på et tastatur, og den ble deretter trykket på papir hos mottakeren. Dette var et stort fremskritt innenfor telegrafiens verden, som tidligere hadde vært avhengig av morsekode og lignende systemer.
Meldingene ble kodet før sending, deretter mottatt, dekodet og skrevet ut. Det eksisterte flere teknikker for koding og dekoding. En av de mest kjente og utbredte ble patentert i 1874 av Émile Baudot, som har gitt navn til baud-raten. Hans tegnkodingssystem ble imidlertid erstattet av ASCII hele 89 år senere.
Baudots kodesystem ble etter hvert nærmest standarden innen fjernskriverteknologi og ble tatt i bruk av de fleste produsenter. Baudots opprinnelige maskindesign hadde kun fem taster, lik pianotangenter. Operatøren måtte lære seg en bestemt tastekombinasjon for hver bokstav. Med tiden ble Baudot-kodingen koblet til et mer tradisjonelt tastaturoppsett.
For å markere dette teknologiske fremskrittet, fikk disse maskinene navnet «fjernskrivere». Dette ble forkortet til «teletyper» og til slutt til «TTY-er». Så der har vi opphavet til akronymet TTY, men hva har telegrafi med datateknologi å gjøre?
ASCII og Telex
Da ASCII ble introdusert i 1963, ble det raskt tatt i bruk av teletype-produsentene. Til tross for oppfinnelsen og den omfattende bruken av telefonen, forble teletypene viktige.
Telex var et verdensomspennende nettverk av teletyper som gjorde det mulig å sende skriftlige meldinger globalt. Det var den viktigste måten å formidle skriftlige meldinger på i perioden etter andre verdenskrig og frem til faksmaskinens fremvekst på 1980-tallet.
Samtidig var datamaskiner under utvikling. De ble etter hvert i stand til å samhandle med brukere i sanntid og støtte flere brukere samtidig. Den gamle batch-metoden ble utilstrekkelig. Folk ønsket ikke å vente 24 timer eller mer på resultater. Å lage bunker med hullkort og vente natten over på svar var ikke lenger akseptabelt.
Det var behov for en enhet som tillot brukerne å legge inn instruksjoner og motta resultatene umiddelbart. Folk ønsket effektivitet.
Teletypen gjenoppstår
Teletypen var den perfekte kandidaten som input/output-enhet. Den var tross alt utviklet for å skrive, kode, sende, motta, dekode og skrive ut meldinger.
Det spilte ingen rolle for teletypen om enheten i andre enden av forbindelsen ikke var en annen teletype. Så lenge den snakket samme kodespråk og var i stand til å motta og sende meldinger, var teletypen fornøyd.
Og selvsagt hadde den et mer eller mindre standard tastatur.
Maskinvare-emulerte teletyper
Teletypene ble standardmetoden for å kommunisere med de store mini- og stormaskinene på den tiden.
De ble senere erstattet av enheter som emulerte de elektromekaniske maskinene ved hjelp av elektronikk. Disse hadde katodestrålerør (CRT) istedenfor papirruller. De vibrerte ikke like kraftig når de leverte svar fra datamaskinen. De muliggjorde funksjoner som tidligere var umulige, som å flytte markøren på skjermen, tømme skjermen, fet skrift og så videre.
DEC VT05 var et tidlig eksempel på en virtuell teletype, og en forgjenger til den berømte DEC VT100. Millioner av DEC VT100-er ble solgt.
Programvare-emulerte teletyper
I skrivebordsmiljøer som Linux og andre Unix-lignende operativsystemer, slik som macOS, er terminalvinduet og applikasjoner som xterm og Konsole eksempler på virtuelle teletyper. Men disse er fullt emulert i programvare. De kalles pseudo-teletyper, forkortet til PTS.
Og det er her tty kommer inn i bildet.
Hva forteller kommandoen oss?
I Linux er det en pseudo-teletype-multiplekser som håndterer forbindelsene fra alle terminalvinduenes pseudo-teletyper (PTS). Multiplekseren er «masteren», og PTS-ene er «slavene». Multiplekseren adresseres av kjernen gjennom enhetsfilen som ligger i /dev/ptmx.
Kommandoen «tty» vil vise navnet på enhetsfilen som din pseudo-teletype-slave benytter for å koble seg til masteren. Dette er i praksis nummeret på terminalvinduet ditt.
La oss se hva tty rapporterer for terminalvinduet vårt:
tty
Resultatet viser at vi er koblet til enhetsfilen /dev/pts/0.
Terminalvinduet vårt, som er en programvare-emulering av en teletype (TTY), er koblet til pseudo-teletype-multiplekseren som en pseudo-teletype (PTS). Og i dette tilfellet har den nummer null.
Det stille alternativet
Alternativet -s (stille) gjør at tty ikke gir noen utskrift.
tty -s
Det produserer imidlertid en returkode:
0: hvis standardinndata kommer fra en TTY-enhet, enten emulert eller fysisk.
1: hvis standardinndata ikke kommer fra en TTY-enhet.
2: Syntaksfeil, feil kommandolinjeparametere er brukt.
3: En skrivefeil har oppstått.
Dette er mest sannsynlig nyttig i Bash-skript. Men selv på kommandolinjen kan vi demonstrere hvordan en kommando utføres kun hvis du kjører i et terminalvindu (en TTY- eller PTS-sesjon).
tty -s && echo "In a tty"
Siden vi kjører i en TTY-sesjon, er returkoden 0, og den andre kommandoen blir utført.
Hvem styrer?
Andre kommandoer kan avsløre ditt TTY-nummer. Kommandoen «who» vil vise informasjon for alle påloggede brukere, inkludert deg selv.
Alec og Mary er koblet til Linux-maskinen eksternt. De er koblet til PTS en og to.
Brukeren «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 fortsatt koblet til multiplekseren via en enhetsfil. «tty» avslører at den er /dev/pts/2.
who
tty
Tilgang til en TTY
Du kan få tilgang til en fullskjerm TTY-sesjon ved å holde nede Ctrl+Alt-tastene og trykke på en av funksjonstastene.
Ctrl+Alt+F3 åpner påloggingsforespørselen til tty3.
Hvis du logger deg på og kjører kommandoen «tty», vil du se at du er koblet til /dev/tty3.
Dette er ikke en pseudo-teletype (emulert i programvare). Det er en virtuell teletype (emulert i maskinvare). Den benytter skjermen og tastaturet som er koblet til datamaskinen din for å emulere en virtuell teletype slik DEC VT100 pleide å gjøre.
Du kan bruke funksjonstastene Ctrl+Alt sammen med funksjonstastene F3 til F6 og ha fire TTY-sesjoner åpne samtidig. Du kan for eksempel være logget inn på tty3 og trykke Ctrl+Alt+F6 for å gå til tty6.
For å gå tilbake til det grafiske skrivebordsmiljøet, trykk Ctrl+Alt+F2.
Ved å trykke Ctrl+Alt+F1 går du tilbake til påloggingsmeldingen for den grafiske skrivebordsøkten.
Tidligere ville Ctrl+Alt+F1 til Ctrl+Alt+F6 åpne TTY-konsollene i fullskjerm, og Ctrl+Alt+F7 ville ta deg tilbake til det grafiske skrivebordsmiljøet. Hvis du bruker en eldre Linux-distribusjon, kan det være slik systemet ditt fungerer.
Dette ble testet på de nyeste versjonene av Manjaro, Ubuntu og Fedora, og de oppførte seg alle på denne måten:
Ctrl+Alt+F1: Går tilbake til den grafiske påloggingsskjermen for skrivebordsmiljøet.
Ctrl+Alt+F2: Returnerer deg til det grafiske skrivebordsmiljøet.
Ctrl+Alt+F3: Åpner TTY 3.
Ctrl+Alt+F4: Åpner TTY 4.
Ctrl+Alt+F5: Åpner TTY 5.
Ctrl+Alt+F6: Åpner TTY 6.
Tilgang til disse fullskjermskonsollene gjør at de som bruker kommandolinjeinstallasjoner av Linux – og mange Linux-servere er konfigurert på denne måten – kan ha flere konsoller tilgjengelig.
Har du noen gang opplevd at skrivebordsmiljøet fryser mens du har jobbet på en Linux-maskin? Nå kan du bytte til en av TTY-konsolløktene for å prøve å løse situasjonen.
Du kan bruke kommandoene «top» og «ps» for å prøve å identifisere det programmet som forårsaket problemet, og deretter bruke «kill» for å avslutte det, eller bruke «shutdown» for å forsøke en så elegant avslutning av systemet som datamaskinens tilstand tillater.
Tre små bokstaver med lang historie
Kommandoen «tty» har sitt navn fra en enhet fra slutten av 1800-tallet. Den dukket opp i Unix i 1971, og er en del av Linux og Unix-lignende operativsystemer den dag i dag.
Denne lille kommandoen har en lang og interessant historie bak seg.