Tty to nie tylko urządzenia wejścia / wyjścia. Wykonują także specjalne zadanie, działając jako terminal kontrolny dla sesji, na przykład wysyłając sygnały (Ctrl + C). / dev / ttyNN to wirtualne konsole, które są pełnoekranowymi wyświetlaczami na monitorze.
Terminale zaczynają się od / dev / tty1. Możesz przełączyć się na te konsole, zwykle naciskając klawisze Ctrl + Alt + Fn.
np. Ctrl + Alt + F1 przeniesie Cię do pierwszego wirtualnego terminala. Obecnie większość dystrybucji Linuksa obsługuje serwer X z tty1. Tak więc naciśnięcie Ctrl + Alt + F1 może nie przynieść efektu.
$ ps ax | grep Xorg | grep -v grep
1504 tty1 Ss+ 44:57 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-rfsWyA/database -nolisten tcp vt1
Ctrl + Alt + F2 przeniesie Cię do drugiego terminala. Zwykle dystrybucje uruchamiają program logowania (agetty) na terminalu wirtualnym.
$ ps ax | grep tty2 | grep -v grep
31865 tty2 Ss+ 0:00 /sbin/agetty tty2 38400
Programy do logowania wyświetlają monit o zalogowanie i umożliwiają logowanie przy użyciu nazwy użytkownika / hasła. Skrypty inicjujące decydują, gdzie zostanie uruchomiony cały program logowania. Więc w zależności od tego możesz zobaczyć monit o zalogowanie się, powiedz tty9. Aby powrócić do interfejsu GUI, naciśnij Ctrl + Alt + F1 (jak w przykładzie wyjściowym powyżej).
/ dev / tty0 to specjalne urządzenie, które wskazuje aktualny terminal. Niezależnie od tego, skąd go uruchamiasz (dowolna konsola wirtualna), wszystko, co jest czytane / zapisywane do tty0, trafia do twojego bieżącego terminala.
Druga kolumna w „ps ax” podaje również terminal sterujący programu. W przypadku niektórych programów, takich jak demony, może się okazać, że kolumna to „?”, Co oznacza, że nie są powiązane z terminalem.
/ dev / pts / 0 itp. to urządzenia psuedo-terminal, które nie są podłączone do wyświetlacza systemu. na przykład terminal otrzymujesz po otwarciu terminalu gnome lub dowolnego innego interfejsu GUI. Są to podejście klient-serwer, w którym strona klienta zostanie wyeksportowana do programów, takich jak bash. Dane wysyłane przez program do pseudo terminala są wysyłane po stronie „serwera” (która jest zwykle monitorowana przez inny program, na przykład gnome-terminal). Proces kontrolny (po stronie serwera) określa, co należy wysłać do terminala, co ostatecznie widzi klient. Urządzenia te pomagają otwierać wiele „terminali GUI” bez żadnych ograniczeń w systemie, nadal zapewniając ten sam stary terminal, jak elementy sterujące (ioctl (), ustawienia kolorów, wysyłanie sygnałów [Ctrl + C] itp.).