Mi az a TTY Linuxon? (és a tty parancs használata)

Mit csinál a tty parancs? Kiírja a használt terminál nevét. A TTY a „teletypewriter” rövidítése. Mi a történet a parancs neve mögött? Ez egy kicsit több magyarázatot igényel.

Teleprinterek az 1800-as évektől

Az 1830-as és 1840-es években az ún telenyomtatók fejlesztették ki. Ezek a gépek gépelt üzeneteket küldhetnek „lefelé” távoli helyekre. Az üzeneteket a feladó valamilyen billentyűzeten írta be. A fogadó oldalon papírra nyomtatták. Evolúciós lépést jelentettek távirat, amelyre korábban támaszkodott Morse és hasonló kódok.

Az üzeneteket kódolták és továbbították, majd fogadták, dekódolták és kinyomtatták. Számos technikát alkalmaztak az üzenetek kódolására és dekódolására. A leghíresebb és az egyik legtermékenyebbet 1874-ben szabadalmaztatta Émile Baudot, akinek a átviteli sebesség meg van nevezve. Karakterkódolási sémája korábban készült ASCII 89 évre.

A Baudot-kódolás végül a távnyomtatós kódolás szabványához legközelebb álló dolog lett, és a legtöbb gyártó átvette. Baudot eredeti hardverterveiben csak öt billentyű volt, hasonlóan a zongorabillentyűkhöz. A kezelőnek minden betűhöz meg kellett tanulnia egy adott billentyűkombinációt. Végül a Baudot kódolási rendszert a hagyományos billentyűzetkiosztáshoz kapcsolták.

Ennek az előrelépésnek a jegyében a gépeket telegépíróknak nevezték el. Ezt lerövidítették teletípusokra és végül TTY-kre. Tehát innen kapjuk a betűszó TTY-től, de mi köze a távírásnak a számítástechnikához?

ASCII és Telex

Amikor 1963-ban megérkezett az ASCII, a teletype-gyártók átvették. A telefon feltalálása és széles körben elterjedt használata ellenére a teletípusok még mindig erősek voltak.

Telex teletípusok világméretű hálózata volt, amely lehetővé tette írásos üzenetek küldését a világ minden tájára. Ezek voltak az írásos üzenetek továbbításának fő eszközei a második világháborút követő időszakban egészen a faxgép boom az 1980-as évekből.

  Megéri az okosotthonok a befektetést?

A számítógépek is fejlődtek. Képessé váltak a felhasználókkal való valós idejű interakcióra, és több felhasználó támogatására. A régi szakaszos munkamódszer elégtelenné vált. Az emberek nem akartak 24 órát vagy tovább várni az eredményekre. A lyukkártyák halmozása és az eredményre való éjszakai várakozás már nem volt elfogadható.

Az embereknek szükségük volt egy olyan eszközre, amely lehetővé teszi számukra az utasítások beírását, és az eredmények visszaküldését. Az emberek hatékonyságot akartak.

A Teletype Repurposed

A teletype tökéletes jelölt volt bemeneti/kimeneti eszközként. Végül is ez egy olyan eszköz volt, amely lehetővé tette az üzenetek gépelését, kódolását, küldését, fogadását, dekódolását és nyomtatását.

Mit érdekelt a teletípus, ha a kapcsolat másik végén lévő eszköz nem egy másik teletípus? Amíg ugyanazt a kódolási nyelvet beszélte, és képes volt üzeneteket fogadni és visszaküldeni, a teletípus boldog volt.

És természetesen többé-kevésbé szabványos billentyűzetet használt.

Hardveremulált teletípusok

A teletípusok a korszak nagy mini- és nagyszámítógépeivel való kommunikáció alapértelmezett eszközeivé váltak.

Ezeket végül olyan eszközök váltották fel, amelyek emulálták ezeket az elektronikát használó elektromechanikus gépeket. Ezeknek volt Katódsugárcsövek (CRT) papírtekercsek helyett. Nem remegtek, amikor válaszokat adtak a számítógépről. Engedélyezték az eddig lehetetlen funkciókat, például a kurzor mozgatását a képernyőn, a képernyő törlését, a szöveg vastagítását stb.

A DEC VT05 a virtuális teletípus korai példája volt, és a híres őse DEC VT100. Több millió DEC VT100-ast adtak el.

Szoftveremulált teletípusok

A Linux és más Unix-szerű operációs rendszerek, például a macOS asztali környezetében a terminálablak és az olyan alkalmazások, mint pl. x-term és Konsole példák a virtuális teletípusokra. De ezeket teljes mértékben szoftveresen emulálják. Pszeudo-teletípusoknak hívják őket. Ezt PTS-re rövidítették.

  A sudo hozzáférés vezérlése Linuxon

És itt jön be a tty.

Mit tud mondani nekünk?

A Linuxban létezik egy pszeudo-teletípus multiplexor, amely kezeli az összes terminálablak pszeudo-teletípus (PTS) csatlakozását. A multiplexor a master, a PTS pedig a slave. A multiplexort a kernel a /dev/ptmx címen található eszközfájlon keresztül címzi.

A tty parancs kiírja annak az eszközfájlnak a nevét, amelyet a pszeudo-teletype slave használ a masterhez való csatoláshoz. És ez gyakorlatilag a terminálablak száma.

Lássuk, mit jelent a tty a terminál ablakunkhoz:

tty

A válasz azt mutatja, hogy a /dev/pts/0 címen lévő eszközfájlhoz kapcsolódtunk.

A terminálablakunk, amely egy teletípus (TTY) szoftveres emulációja, pszeudo-teletípusként (PTS) csatlakozik a pszeudo-teletípus multiplexorhoz. És történetesen a nulladik szám.

A csendes opció

A -s (silent) opció hatására a tty nem generál kimenetet.

tty -s

Ez azonban kilépési értéket ad:

0: ha a szabványos bemenet TTY-eszközről érkezik, emulált vagy fizikai.
1: ha a szabványos bemenet nem TTY-eszközről érkezik.
2: Szintaktikai hiba, helytelen parancssori paramétereket használtak.
3: Írási hiba történt.

Valószínűleg ez a leghasznosabb a Bash szkripteknél. De még a parancssorban is bemutathatjuk, hogyan lehet parancsot végrehajtani, ha terminálablakban fut (TTY vagy PTS munkamenet).

tty -s && echo "In a tty"

tty -s && echo

Mivel TTY munkamenetben futunk, a kilépési kódunk 0, és a második parancs végrehajtásra kerül.

A ki Parancs

Más parancsok felfedhetik a TTY-számot. A who parancs listázza az összes bejelentkezett felhasználó adatait, beleértve Önt is.

Alec és Mary távolról csatlakoznak a Linux számítógéphez. Az egyes és kettes PTS-hez kapcsolódnak.

Dave felhasználó a „:0”-hoz csatlakozik.

Ez a számítógéphez fizikailag csatlakoztatott képernyőt és billentyűzetet jelöli. Annak ellenére, hogy a képernyő és a billentyűzet hardvereszközök, továbbra is csatlakoztatva vannak a multiplexorhoz egy eszközfájlon keresztül. A tty felfedi, hogy ez a /dev/pts/2.

who
tty

Hozzáférés a TTY-hez

A teljes képernyős TTY-munkamenetet úgy érheti el, hogy lenyomva tartja a Ctrl+Alt billentyűket, és megnyomja az egyik funkcióbillentyűt.

  Az átnevezési parancs használata Linuxon

A Ctrl+Alt+F3 a tty3 bejelentkezési promptját jeleníti meg.

Ha bejelentkezik és kiadja a tty parancsot, látni fogja, hogy csatlakozik a /dev/tty3 fájlhoz.

Ez nem pszeudo-teletípus (szoftverben emulálva); ez egy virtuális teletípus (hardveresen emulálva). A számítógéphez csatlakoztatott képernyőt és billentyűzetet használja, hogy emuláljon egy virtuális teletípust, mint a DEC VT100.

Használhatja a Ctrl+Alt funkcióbillentyűket az F3-F6 funkcióbillentyűkkel, és négy TTY-munkamenetet nyithat meg, ha úgy dönt. Például be lehet jelentkezni a tty3-ba, és megnyomja a Ctrl+Alt+F6 billentyűket a tty6 eléréséhez.

A grafikus asztali környezethez való visszatéréshez nyomja le a Ctrl+Alt+F2 billentyűkombinációt.

A Ctrl+Alt+F1 billentyűkombináció megnyomásával visszatérhet a grafikus asztali munkamenet bejelentkezési promptjához.

Egyszerre a Ctrl+Alt+F1-től Ctrl+Alt+F6-ig megnyílik a teljes képernyős TTY-konzolok, a Ctrl+Alt+F7 pedig visszaküldi a grafikus asztali környezetbe. Ha régebbi Linux disztribúciót futtat, akkor a rendszere így viselkedhet.

Ezt a Manjaro, az Ubuntu és a Fedora jelenlegi kiadásain tesztelték, és mindegyik így viselkedett:

Ctrl+Alt+F1: Visszatér a grafikus asztali környezet bejelentkezési képernyőjére.
Ctrl+Alt+F2: Visszatér a grafikus asztali környezethez.
Ctrl+Alt+F3: Megnyitja a TTY 3-at.
Ctrl+Alt+F4: Megnyitja a TTY 4-et.
Ctrl+Alt+F5: Megnyitja a TTY 5-öt.
Ctrl+Alt+F6: Megnyitja a TTY 6-ot.

A teljes képernyős konzolokhoz való hozzáférés lehetővé teszi a csak parancssori Linux-telepítéseket használó felhasználók számára – és sok Linux-szerver is így van konfigurálva –, hogy több konzol álljon rendelkezésre.

Dolgozott valaha grafikus asztali környezettel rendelkező Linuxos gépen, és valami miatt lefagyott a munkamenet? Most átugorhat az egyik TTY konzol munkamenetre, hogy megpróbálja orvosolni a helyzetet.

A top és a ps segítségével megpróbálhatja azonosítani a hibás alkalmazást, majd a kill paranccsal leállíthatja azt, vagy egyszerűen a shutdown segítségével próbálhatja meg olyan kecsesen bezárni, ahogy a számítógép állapota megengedi.

Három kis levél sok történelemmel

A tty parancs egy 1800-as évek végi eszközről kapta a nevét, amely 1971-ben jelent meg Unixban, és a mai napig a Linux és Unix-szerű operációs rendszerek része.

A kis fickónak elég mese van a háta mögött.