Co robi polecenie tty? Wyświetla nazwę używanego terminala. TTY oznacza „teletypewriter”. Historia kryjąca się za nazwą polecenia wymaga nieco więcej wyjaśnień.
Tele-drukarki z XIX wieku
W XIX wieku opracowano maszyny znane jako tele-drukarki. Maszyny te mogły wysyłać wiadomości na maszynie do odległych miejsc, a wiadomości były wpisywane przez nadawcę na klawiaturze i drukowane na papierze na końcu odbiorczym. Były one krokiem ewolucyjnym telegrafii, która wcześniej opierała się na kodzie Morse’a i podobnych systemach.
Wiadomości były kodowane, przesyłane, a następnie odbierane, dekodowane i drukowane. Wykorzystywano kilka technik do kodowania i dekodowania wiadomości, a najbardziej znana z nich została opatentowana w 1874 roku przez Émile’a Baudota, na którego cześć nazwano szybkość transmisji. Jego schemat kodowania znaków był przestarzały w stosunku do ASCII o 89 lat.
Kodowanie Baudota ostatecznie stało się standardem 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, a system kodowania Baudota został później połączony z tradycyjnym układem klawiatury.
Aby zaznaczyć ten postęp, maszyny nazwano teletypewriterami, co zostało skrócone do teletypów i ostatecznie do TTY. Dlatego otrzymujemy akronim TTY, ale co telegrafia ma wspólnego z informatyką?
ASCII i Telex
Kiedy ASCII pojawiło się w 1963 roku, zostało przyjęte 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ła głównym środkiem przekazu wiadomości pisemnych od II wojny światowej do lat 80., kiedy to zaczęto szeroko stosować faks.
Komputery również ewoluowały, stając się zdolne do interakcji z użytkownikami w czasie rzeczywistym i obsługi wielu użytkowników. Stara metoda pracy wsadowej okazała się niewystarczająca, a ludzie nie chcieli czekać 24 godziny lub dłużej na wyniki. Pracowanie z przebitymi kartami i czekanie przez noc na wyniki przestało być akceptowalne. Potrzebowali urządzenia, które umożliwiłoby im wprowadzanie instrukcji i przesyłanie wyników, a efektywność stała się kluczowa.
Zmiana przeznaczenia teletype
Teletyp był idealnym kandydatem na urządzenie wejścia/wyjścia. Było to urządzenie zaprojektowane do pisania na maszynie, kodowania, wysyłania, odbierania, dekodowania i drukowania 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 mogło odbierać oraz przesyłać wiadomości, było zadowolone. Oczywiście używało 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ąc elektronikę. Te miały lampy katodowe (CRT) zamiast rolek papieru, co umożliwiało nową funkcjonalność, taką jak przesuwanie kursora po ekranie, czyszczenie ekranu, pogrubianie tekstu i inne.
Plik DEC VT05 był wczesnym przykładem wirtualnego teletype’u i przodkiem sławnego DEC VT100, który sprzedał się w milionach egzemplarzy.
Teletypy emulowane programowo
W środowisku pulpitu systemu Linux oraz innych systemach operacyjnych typu Unix, takich jak macOS, okna terminala oraz aplikacje, takie jak xterm i Konsole, są przykładami wirtualnych teletypów. Są one całkowicie emulowane w oprogramowaniu i nazywane pseudo-teletypami (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 jest master, a PTS to slave. Jest adresowany przez jądro poprzez plik urządzenia znajdujący się w /dev/ptmx.
Polecenie tty wydrukuje nazwę pliku urządzenia, z którego korzysta twój pseudo-teletyp (PTS) do połączenia się z masterem. To faktycznie jest numer twojego okna terminala.
Zobaczmy, jakie raporty tty dotyczą naszego okna terminala:
tty
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 pseudo-teletyp (PTS), a jego numer to zero.
Cicha opcja
Opcja -s (silent) powoduje, że tty nie generuje żadnego wyjścia.
tty -s
Generuje jednak wartość wyjściową:
- 0: jeśli standardowe wejście pochodzi z urządzenia TTY, emulowanego lub fizycznego.
- 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.
To prawdopodobnie najbardziej przydatne w skryptach Bash. Nawet w wierszu poleceń możemy zademonstrować, jak wykonać polecenie tylko wtedy, gdy pracujemy w oknie terminala (sesja TTY lub PTS).
tty -s && echo "In a tty"
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, korzystając z PTS 1 i 2. Użytkownik dave jest połączony z „:0”, co oznacza, że korzysta z urządzenia fizycznego. Mimo że ekran i klawiatura są sprzętowymi urządzeniami, są połączone z multiplekserem za pośrednictwem pliku urządzenia. Polecenie tty ujawnia, że jest to /dev/pts/2.
who
tty
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. Na przykład Ctrl + Alt + F3 spowoduje wyświetlenie monitu logowania 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), który 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, aby otworzyć cztery sesje TTY, jeśli chcesz. Na przykład możesz być zalogowany do tty3 i nacisnąć Ctrl + Alt + F6, aby przejść do 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 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ąć komputer tak płynnie, jak pozwala na to jego stan.
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 element ma za sobą niezłą historię.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.