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 enviar sinais (Ctrl + C). / dev / ttyNN são consoles virtuais, que são telas em tela cheia no monitor.
Os terminais começam em / dev / tty1. Você pode alternar para esses consoles, normalmente, pressionando as teclas Ctrl + Alt + Fn.
por exemplo, Ctrl + Alt + F1 leva você ao primeiro terminal virtual. Atualmente, a maioria das distribuições Linux executa o servidor X a partir do tty1. Então, 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 irá levá-lo ao segundo terminal. Normalmente, 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 o login com nome de usuário / senha. Os scripts init decidem, onde todo o programa de login será executado. Então, dependendo de que você pode ou não ver um prompt de login, digamos tty9. Para voltar à sua interface GUI, pressione Ctrl + Alt + F1 (como na saída de exemplo acima).
/ dev / tty0 é um dispositivo especial, que aponta para o terminal atual. Portanto, independente de onde você o executa (qualquer console virtual), qualquer coisa lida de / escrita para 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 de terminal da psuedo, que não estão conectados à exibição do sistema. por exemplo, o terminal que você recebe quando abre um terminal gnome ou qualquer outro terminal GUI. Essas são abordagens baseadas em cliente-servidor, nas quais 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 'servidor' (que normalmente é monitorado por outro programa, como o gnome-terminal). O processo de controle (lado do servidor) determina o que precisa ser enviado para o terminal, que eventualmente é visto pelo cliente. Esses dispositivos ajudam você a abrir vários 'terminais GUI' sem qualquer limite em seu sistema, ainda fornecendo o mesmo terminal antigo como controles (ioctl (), configuração de cor, envio de sinais [Ctrl + C] etc.).