Co to jest TTY w systemie Linux? (i jak używać polecenia tty)

Co robi polecenie tty? Wyświetla nazwę używanego terminala. TTY oznacza „teletypewriter”. Jaka historia kryje się za nazwą polecenia? To wymaga trochę więcej wyjaśnień.

Tele-drukarki z XIX wieku

XIX wieku maszyny znane jako tele-drukarki opracowano. Maszyny te mogły wysyłać wiadomości na maszynie do odległych miejsc. Wiadomości zostały wpisane przez nadawcę na klawiaturze. Zostały wydrukowane na papierze na końcu odbiorczym. Byli krokiem ewolucyjnym telegrafia, na którym wcześniej polegałem Morse i podobne kody.

Wiadomości były kodowane i przesyłane, a następnie odbierane, dekodowane i drukowane. Było kilka technik wykorzystywanych do kodowania i dekodowania wiadomości. Najbardziej znany i jeden z najbardziej płodnych został opatentowany w 1874 roku przez Émile Baudot, dla kogo szybkość transmisji jest nazwany. Jego schemat kodowania znaków był przestarzały ASCII o 89 lat.

Kodowanie Baudota ostatecznie stało się najbardziej zbliżone do standardu kodowania w teleprinterach i zostało przyjęte przez większość producentów. Oryginalny projekt sprzętu Baudota miał tylko pięć klawiszy, podobnie jak klawisze fortepianu. Operator musiał nauczyć się określonej kombinacji klawiszy dla każdej litery. Ostatecznie system kodowania Baudot został połączony z tradycyjnym układem klawiatury.

Aby zaznaczyć ten postęp, maszyny nazwano teletypewriterami. Zostało to skrócone do teletypów i ostatecznie do TTY. Dlatego właśnie otrzymujemy plik akronim TTY od, ale co telegrafia ma wspólnego z informatyką?

ASCII i Telex

Kiedy ASCII przybył w 1963 roku, został przyjęty przez producentów teletype. Pomimo wynalezienia i powszechnego wykorzystania telefonu, teletypy wciąż się rozwijały.

Teleks była ogólnoświatową siecią teletypów, która umożliwiała wysyłanie pisemnych wiadomości na cały świat. Były głównym środkiem przekazu przekazów pisemnych w okresie od II wojny światowej do wysięgnik faksu lat 80.

Komputery też ewoluowały. Stawali się zdolni do interakcji z użytkownikami w czasie rzeczywistym i obsługi wielu użytkowników. Stara metoda pracy wsadowej okazała się niewystarczająca. Ludzie nie chcieli czekać 24 godziny lub dłużej na ich wyniki. Robienie stosów przebitych kart i czekanie przez noc na wyniki nie było już akceptowane.

Ludzie potrzebowali urządzenia, które umożliwiłoby im wprowadzanie instrukcji i przesyłanie wyników. Ludzie chcieli wydajności.

Zmiana przeznaczenia teletype

Teletyp był idealnym kandydatem na urządzenie wejścia / wyjścia. W końcu było to urządzenie zaprojektowane, aby umożliwić pisanie na maszynie, kodowanie, wysyłanie, odbieranie, dekodowanie i drukowanie wiadomości.

Co obchodziło teletype, jeśli urządzenie na drugim końcu połączenia nie było innym teletypem? Tak długo, jak mówił tym samym językiem kodowania i mógł odbierać i odsyłać wiadomości, był szczęśliwy.

I oczywiście używał mniej więcej standardowej klawiatury.

Sprzętowe emulowane teletypy

Teletypy stały się domyślnym sposobem interakcji z dużymi mini komputerami i komputerami typu mainframe tamtej epoki.

Ostatecznie zostały one zastąpione urządzeniami, które naśladowały te elektromechaniczne maszyny wykorzystujące elektronikę. Te miały Lampy katodowe (CRT) zamiast rolek papieru. Nie trzęsły się podczas dostarczania odpowiedzi z komputera. Pozwalały na niemożliwą dotąd funkcjonalność, taką jak przesuwanie kursora po ekranie, czyszczenie ekranu, pogrubienie tekstu i tak dalej.

Plik DEC VT05 był wczesnym przykładem wirtualnego teletapu i przodkiem sławnego DEC VT100. Sprzedano miliony DEC VT100.

Teletypy emulowane programowo

W środowisku pulpitu systemu Linux i innych systemów operacyjnych typu Unix, takich jak macOS, okno terminala i aplikacje, takie jak termin x i Konsole są przykładami wirtualnych teletypów. Ale są one całkowicie emulowane w oprogramowaniu. Nazywa się je pseudo-teletypami. Zostało to skrócone do PTS.

I tu właśnie wkracza tty.

Co tty może nam powiedzieć?

W Linuksie istnieje multipleksor pseudotekstu, który obsługuje połączenia ze wszystkich pseudo-teletypów (PTS) okna terminala. Multipleksor to master, a PTS to slave. Multipleksor jest adresowany przez jądro poprzez plik urządzenia znajdujący się w / dev / ptmx.

Polecenie tty wydrukuje nazwę pliku urządzenia, którego używa twój pseudotype slave do połączenia się z masterem. I to faktycznie jest numer twojego okna terminala.

Zobaczmy, jakie raporty tty dotyczą naszego okna terminala:

tty

tty w oknie terminala

Odpowiedź pokazuje, że jesteśmy połączeni z plikiem urządzenia w / dev / pts / 0.

Nasze okno terminala, które jest programową emulacją telegazety (TTY), jest połączone z multiplekserem pseudotekstu jako pseudotype (PTS). I tak się składa, że ​​jest to liczba zero.

Cicha opcja

Opcja -s (silent) powoduje, że tty nie generuje żadnego wyjścia.

tty -s

tty -s w oknie terminala

Generuje jednak wartość wyjściową:

0: jeśli standardowe wejście pochodzi z urządzenia TTY, emulowane lub fizyczne.
1: jeśli standardowe wejście nie pochodzi z urządzenia TTY.
2: Błąd składni, zastosowano nieprawidłowe parametry wiersza poleceń.
3: Wystąpił błąd zapisu.

Jest to prawdopodobnie najbardziej przydatne w skryptach Bash. Ale nawet w wierszu poleceń możemy zademonstrować, jak wykonać polecenie tylko wtedy, gdy pracujesz w oknie terminala (sesja TTY lub PTS).

tty -s && echo "In a tty"

tty -s && echo

Ponieważ pracujemy w sesji TTY, nasz kod zakończenia to 0, a drugie polecenie jest wykonywane.

Kto dowodzi

Inne polecenia mogą ujawnić Twój numer TTY. Polecenie who wyświetli informacje dla wszystkich zalogowanych użytkowników, w tym Ciebie.

Alec i Mary są zdalnie podłączeni do komputera z systemem Linux. Są podłączone do PTS 1 i 2.

Wyświetlany jest użytkownik dave połączony z „: 0”.

Przedstawia ekran i klawiaturę fizycznie podłączone do komputera. Mimo że ekran i klawiatura są urządzeniami sprzętowymi, są one nadal połączone z multiplekserem za pośrednictwem pliku urządzenia. tty ujawnia, że ​​jest to / dev / pts / 2.

who
tty

who i tty w oknie terminala

Dostęp do TTY

Dostęp do pełnoekranowej sesji TTY można uzyskać, przytrzymując klawisze Ctrl + Alt i naciskając jeden z klawiszy funkcyjnych.

Ctrl + Alt + F3 spowoduje wyświetlenie monitu logowania tty3.

konsola tty3

Jeśli zalogujesz się i wydasz polecenie tty, zobaczysz, że jesteś połączony z / dev / tty3.

To nie jest pseudotype (emulowany w oprogramowaniu); jest to wirtualny teletyp (emulowany sprzętowo). Wykorzystuje ekran i klawiaturę podłączoną do twojego komputera, aby emulować wirtualny telegazetę, taką jak DEC VT100.

Możesz używać klawiszy funkcyjnych Ctrl + Alt z klawiszami funkcyjnymi od F3 do F6 i mieć otwarte cztery sesje TTY, jeśli chcesz. Na przykład możesz być zalogowany do tty3 i nacisnąć Ctrl + Alt + F6, aby przejść do tty6.

konsola tty6

Aby wrócić do graficznego środowiska pulpitu, naciśnij Ctrl + Alt + F2.

Naciśnięcie Ctrl + Alt + F1 spowoduje powrót do monitu logowania w sesji pulpitu graficznego.

W pewnym momencie Ctrl + Alt + F1 aż do Ctrl + Alt + F6 otworzyłoby pełnoekranowe konsole TTY, a Ctrl + Alt + F7 przywróciłoby cię do graficznego środowiska pulpitu. Jeśli używasz starszej dystrybucji Linuksa, może to być sposób, w jaki zachowuje się Twój system.

Zostało to przetestowane na obecnych wydaniach Manjaro, Ubuntu i Fedora i wszystkie zachowywały się w następujący sposób:

Ctrl + Alt + F1: Powrót do ekranu logowania do graficznego środowiska pulpitu.
Ctrl + Alt + F2: Powrót do graficznego środowiska pulpitu.
Ctrl + Alt + F3: Otwiera TTY 3.
Ctrl + Alt + F4: Otwiera TTY 4.
Ctrl + Alt + F5: Otwiera TTY 5.
Ctrl + Alt + F6: Otwiera TTY 6.

Dostęp do tych pełnoekranowych konsol pozwala użytkownikom korzystającym z instalacji Linuksa wyłącznie z wiersza poleceń – a wiele serwerów Linux jest skonfigurowanych w ten sposób – mieć dostępnych wiele konsol.

Pracowałeś kiedyś na komputerze z systemem Linux z graficznym środowiskiem graficznym i coś spowodowało zawieszenie sesji? Teraz możesz przejść do jednej z sesji konsoli TTY, aby spróbować naprawić sytuację.

Możesz użyć top i ps, aby spróbować zidentyfikować uszkodzoną aplikację, a następnie użyć kill, aby ją zakończyć, lub po prostu użyj shutdown, aby spróbować zamknąć tak płynnie, jak pozwala na to stan komputera.

Trzy małe litery z dużą ilością historii

Polecenie tty wzięło swoją nazwę od urządzenia z końca XIX wieku, pojawiło się w systemie Unix w 1971 roku i do dziś jest częścią systemów operacyjnych Linux i Unix-podobnych.

Ten mały facet ma za sobą niezłą opowieść.