Co je TTY v Linuxu? (a jak používat příkaz tty)

Co dělá příkaz tty? Vypíše název terminálu, který používáte. TTY je zkratka pro „dálnopis“. Jaký příběh se skrývá za názvem příkazu? To chce trochu víc vysvětlování.

Dálnopisy Od roku 1800

Ve 30. a 40. letech 19. století se stroje známé jako dálnopisy byly vyvinuty. Tyto stroje mohly posílat psané zprávy „po drátě“ do vzdálených míst. Zprávy byly zadávány odesílatelem na jakési klávesnici. Byly vytištěny na papíře na přijímací straně. Byly evolučním krokem telegrafie, která se dříve opírala Morse a podobné kódy.

Zprávy byly zakódovány a odeslány, poté přijaty, dekódovány a vytištěny. Ke kódování a dekódování zpráv bylo použito několik technik. Nejslavnější a jeden z nejplodnějších byl patentován v roce 1874 Émile Baudot, pro koho přenosová rychlost se jmenuje. Jeho schéma kódování postav bylo staré ASCII do 89 let.

Baudotovo kódování se nakonec stalo nejblíže standardu v kódování dálnopisu a bylo přijato většinou výrobců. Baudotův původní návrh hardwaru měl pouze pět kláves, podobně jako klávesy klavíru. Operátor se musel naučit konkrétní kombinaci kláves pro každé písmeno. Nakonec byl kódovací systém Baudot spojen s tradičním rozložením klávesnice.

K označení tohoto pokroku byly stroje pojmenovány dálnopisy. Toto bylo zkráceno na dálnopisy a nakonec na TTY. Takže to je místo, kde se dostáváme akronym TTY od, ale co má telegrafie společného s počítačem?

ASCII a Telex

Když ASCII přišel v roce 1963, byl přijat výrobci dálnopisů. Navzdory vynálezu a rozšířenému používání telefonu byly dálnopisy stále silné.

  Jak udělat vaši hloupou okenní klimatizaci chytrou

Telex byla celosvětová síť dálnopisů, která umožňovala zasílání písemných zpráv po celém světě. Byly hlavním prostředkem pro přenos písemných zpráv v období po druhé světové válce až do r rozmach faxových přístrojů osmdesátých let.

Počítače se také vyvíjely. Začínaly být schopné komunikovat s uživateli v reálném čase a podporovat více uživatelů. Starý dávkový způsob zpracování se stal nedostatečným. Lidé nechtěli na své výsledky čekat 24 hodin nebo déle. Dělat hromádky děrných štítků a čekat přes noc na výsledky už nebylo přijatelné.

Lidé potřebovali zařízení, které by jim umožnilo zadávat pokyny a dostávat výsledky zpět. Lidé chtěli efektivitu.

The Teletype Repurposed

Dalekopis byl perfektním kandidátem jako vstupní/výstupní zařízení. Bylo to koneckonců zařízení navržené tak, aby umožňovalo psát, kódovat, odesílat, přijímat, dekódovat a tisknout zprávy.

Co dálnopisu záleželo, když zařízení na druhém konci spojení nebyl jiný dálnopis? Dokud mluvil stejným kódovacím jazykem a mohl přijímat zprávy a odesílat zprávy zpět, byl dálnopis šťastný.

A samozřejmě používal víceméně standardní klávesnici.

Hardwarově emulované dálnopisy

Dálnopisy se staly výchozím prostředkem interakce s velkými mini a sálovými počítači té doby.

Nakonec byly nahrazeny zařízeními, která emulovaly tyto elektromechanické stroje využívající elektroniku. Tyto měly Katodové trubice (CRT) místo papírových rolí. Při doručování odpovědí z počítače se netřásly. Umožňovaly dosud nemožné funkce, jako je pohyb kurzoru po obrazovce, smazání obrazovky, tučné písmo a tak dále.

The DEC VT05 byl raným příkladem virtuálního dálnopisu a předchůdcem slavných DEC VT100. Prodaly se miliony DEC VT100.

Softwarově emulované dálnopisy

V desktopovém prostředí Linuxu a dalších unixových operačních systémech, jako je macOS, je terminálové okno a aplikace jako např x-termín a Konsole jsou příklady virtuálních dálnopisů. Ty jsou však softwarově zcela emulovány. Říká se jim pseudoteletypy. Toto bylo zkráceno na PTS.

A tady přichází na řadu tty.

  Jaký je rozsah typické WiFi sítě

Co nám může tty říct?

V Linuxu existuje pseudoteletypový multiplexor, který zpracovává spojení ze všech pseudoteletypů terminálového okna (PTS). Multiplexor je hlavní a PTS jsou podřízené. Multiplexor je adresován jádrem prostřednictvím souboru zařízení umístěného na /dev/ptmx.

Příkaz tty vytiskne název souboru zařízení, který váš pseudodálnopisný slave používá pro připojení k hlavnímu zařízení. A to je ve skutečnosti číslo okna vašeho terminálu.

Podívejme se, co tty hlásí pro naše okno terminálu:

tty

Odpověď ukazuje, že jsme připojeni k souboru zařízení na /dev/pts/0.

Naše terminálové okno, které je softwarovou emulací dálnopisu (TTY), je propojeno s pseudodálnopisným multiplexorem jako pseudodálnopis (PTS). A náhodou je to číslo nula.

Tichá možnost

Volba -s (tichá) způsobí, že tty nevygeneruje žádný výstup.

tty -s

Vytváří výstupní hodnotu, nicméně:

0: pokud standardní vstup přichází ze zařízení TTY, emulovaného nebo fyzického.
1: pokud standardní vstup nepřichází ze zařízení TTY.
2: Chyba syntaxe, byly použity nesprávné parametry příkazového řádku.
3: Došlo k chybě zápisu.

To bude pravděpodobně nejužitečnější při skriptování v Bash. Ale i na příkazovém řádku můžeme předvést, jak nechat provést příkaz pouze v případě, že běžíte v okně terminálu (relace TTY nebo PTS).

tty -s && echo "In a tty"

tty -s && echo

Protože běžíme v relaci TTY, náš výstupní kód je 0 a provede se druhý příkaz.

Kdo velí

Další příkazy mohou odhalit vaše TTY číslo. Příkaz who vypíše informace o všech přihlášených uživatelích, včetně vás.

Alec a Mary jsou vzdáleně připojeni k počítači se systémem Linux. Jsou připojeny k PTS jedna a dvě.

Uživatel dave je zobrazen jako připojený k „:0“.

To představuje obrazovku a klávesnici fyzicky připojené k počítači. I když jsou obrazovka a klávesnice hardwarová zařízení, jsou stále připojeny k multiplexoru prostřednictvím souboru zařízení. tty ukazuje, že jde o /dev/pts/2.

who
tty

Přístup k TTY

K relaci TTY na celou obrazovku se dostanete podržením kláves Ctrl+Alt a stisknutím jedné z funkčních kláves.

  Jak přesunout stažené hry Nintendo Switch na kartu microSD

Ctrl+Alt+F3 vyvolá výzvu k přihlášení tty3.

Pokud se přihlásíte a zadáte příkaz tty, uvidíte, že jste připojeni k /dev/tty3.

Toto není pseudo-dálnopis (emulovaný v softwaru); je to virtuální dálnopis (emulovaný v hardwaru). Používá obrazovku a klávesnici připojenou k vašemu počítači k emulaci virtuálního dálnopisu, jako to dělal DEC VT100.

Můžete použít funkční klávesy Ctrl+Alt s funkčními klávesami F3 až F6 a mít otevřené čtyři relace TTY, pokud chcete. Můžete být například přihlášeni do tty3 a stisknutím Ctrl+Alt+F6 přejít na tty6.

Pro návrat do grafického desktopového prostředí stiskněte Ctrl+Alt+F2.

Stisknutím Ctrl+Alt+F1 se vrátíte na výzvu k přihlášení vaší relace grafické plochy.

Najednou by Ctrl+Alt+F1 až Ctrl+Alt+F6 otevřelo konzoly TTY na celou obrazovku a Ctrl+Alt+F7 by vás vrátilo do grafického desktopového prostředí. Pokud používáte starší distribuci Linuxu, může se váš systém chovat takto.

To bylo testováno na aktuálních vydáních Manjaro, Ubuntu a Fedora a všechny se chovaly takto:

Ctrl+Alt+F1: Vrátí vás na přihlašovací obrazovku grafického prostředí.
Ctrl+Alt+F2: Vrátí vás do grafického prostředí pracovní plochy.
Ctrl+Alt+F3: Otevře TTY 3.
Ctrl+Alt+F4: Otevře TTY 4.
Ctrl+Alt+F5: Otevře TTY 5.
Ctrl+Alt+F6: Otevře TTY 6.

Přístup k těmto celoobrazovkovým konzolím umožňuje lidem, kteří používají instalace Linuxu pouze z příkazového řádku – a mnoho serverů Linux je nakonfigurováno tímto způsobem – mít k dispozici více konzol.

Pracovali jste někdy na linuxovém stroji s grafickým desktopovým prostředím a něco způsobilo, že vaše relace zamrzla? Nyní můžete přejít na jednu z relací konzoly TTY, abyste se mohli pokusit situaci napravit.

Můžete použít top a ps, abyste se pokusili identifikovat neúspěšnou aplikaci, pak použijte kill k jejímu ukončení, nebo prostě použijte shutdown a pokuste se ukončit tak elegantně, jak to stav počítače dovolí.

Tři malá písmena se spoustou historie

Příkaz tty získal svůj název podle zařízení z konce 19. století, které se objevilo v Unixu v roce 1971 a dodnes je součástí Linuxu a operačních systémů podobných Unixu.

Malý chlap má za sebou pěkný příběh.