Os ttys não são apenas dispositivos de entrada / saída. Eles também fazem um trabalho especial de atuar como o terminal de controle de uma sessão, como o envio de sinais (Ctrl + C). / dev / ttyNN são consoles virtuais, que são exibidos em tela cheia no monitor.
Os terminais começam em / dev / tty1. Você pode alternar para esses consoles, geralmente, pressionando as teclas Ctrl + Alt + Fn.
por exemplo, Ctrl + Alt + F1 leva você ao primeiro terminal virtual. Atualmente, a maioria das distribuições Linux roda o servidor X a partir do tty1. Portanto, pressionar Ctrl + Alt + F1 pode não ter efeito.
$ 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 o levará ao segundo terminal. Geralmente, as distribuições executam um programa de login (agetty) no terminal virtual.
$ ps ax | grep tty2 | grep -v grep
31865 tty2 Ss+ 0:00 /sbin/agetty tty2 38400
Os programas de login fornecem um prompt de login e permitem que você faça login com nome de usuário / senha. Os scripts init decidem onde todo o programa de login será executado. Portanto, dependendo disso, você pode ou não ver um prompt de login, digamos tty9. Para voltar à sua interface GUI, pressione Ctrl + Alt + F1 (como no exemplo da saída acima).
/ dev / tty0 é um dispositivo especial, que aponta para o terminal atual. Portanto, independentemente de onde você o execute (qualquer console virtual), qualquer coisa lida / gravada em tty0 vai para o seu terminal atual.
A segunda coluna em 'ps ax' também fornece o terminal de controle do programa. Para alguns programas, como daemons, você pode ver que a coluna é '?', O que significa que eles não estão vinculados a um terminal.
/ dev / pts / 0 etc são dispositivos psuedo-terminal, que não estão conectados à tela do sistema. por exemplo, o terminal obtido quando você abre um terminal gnome ou qualquer outro terminal da GUI. Essas são abordagens baseadas em cliente-servidor, onde o lado do cliente será exportado para programas, como o bash. Os dados enviados pelo programa para o pseudo terminal são enviados para o lado do 'servidor' (que geralmente é monitorado por outro programa, como o gnome-terminal). O processo de controle (lado do servidor) determina o que precisa ser enviado ao terminal, o que é eventualmente visto pelo cliente. Esses dispositivos ajudam você a abrir vários 'terminais da GUI' sem nenhum limite no sistema, ainda fornecendo o mesmo terminal antigo como controles (ioctl (), configuração de cores, envio de sinais [Ctrl + C] etc.).