Pressionando Ctrl + Alt + F n (ou apenas Alt + F n quando não está em X11 , a GUI) muda para o n th console virtual ( ttyn
).
Geralmente falamos de um console virtual como um console de texto utilizável . Por isso, costumamos dizer que existem seis consoles virtuais, acessíveis com Alt + F1 através de Alt + F6 (mantendo pressionado Ctrl também se você estiver na GUI quando quiser mudar. E muitas vezes dizemos que então , separadamente, é a GUI, que pode ser comutada (de volta) para com Alt + F7 . >
Mas, na verdade, tty7
, onde a GUI normalmente é executada, também é um console virtual. Não é utilizável como um console de texto, porque ele não tem getty
correndo para ele. getty
é executado para tty1
a tty6
(por padrão). getty
define um console virtual para ser usado como um terminal e executa login
para solicitar um nome de usuário e senha.
Você pode ver os comandos getty
que estão sendo executados por filtragem a saída de ps
:
ek@Kip:~$ ps ax | grep -v grep | grep getty
1127 tty4 Ss+ 0:00 /sbin/getty -8 38400 tty4
1150 tty5 Ss+ 0:00 /sbin/getty -8 38400 tty5
1171 tty2 Ss+ 0:00 /sbin/getty -8 38400 tty2
1172 tty3 Ss+ 0:00 /sbin/getty -8 38400 tty3
1175 tty6 Ss+ 0:00 /sbin/getty -8 38400 tty6
11231 tty1 Ss+ 0:00 /sbin/getty -8 38400 tty1
Como tty7
é o primeiro console virtual que não é configurado para se comportar como um terminal (ou seja, nenhum getty
está sendo executado), o único X11 (que fornece a GUI) usa.
Consoles virtuais superior que tty7
existem também. É só que, ordinariamente, eles nenhum têm getty
correndo para eles, nem eles têm o X11 usando-os. Os primeiros 12 consoles virtuais são acessíveis com as combinações de teclas descritas acima usando as teclas de função (porque um teclado normalmente possui apenas 12 teclas de função numeradas). Eles são acessíveis mesmo que nada esteja acontecendo com eles.
Assim, quando você pressiona Ctrl + Alt + F12 , você obtém uma tela em branco porque agora está no tty12
, que não tem nada em execução.
Como um exercício interessante, você pode tentar executar:
sudo /sbin/getty -8 38400 tty12
Em seguida, pressione Alt + F12 (ou Ctrl + Alt + F12 se você estiver na GUI em vez de um dos primeiros 6 consoles virtuais).
Isso levará você ao tty12
, que agora tem uma tela de login e pode ser usado como um terminal.
(Se você quiser permanentemente criar consoles usáveis baseados em texto em consoles virtuais de números mais altos, então você deve configure init
para executar getty
automaticamente. Quando getty
for executado manualmente como acima, ou mesmo se você adicionar essa linha a um script de inicialização, não conseguirá fazer o login novamente depois de fazer logout no console virtual, porque getty
não será executado automaticamente de novo.Além disso, existem alguns outros problemas executando getty
dessa forma para uso em produção - por exemplo, bash
controle de trabalho pode não estar disponível em seu escudo de login , depois de efetuar o login. Se você quiser usar mais consoles virtuais como emuladores de terminal baseados em texto, recomendo fazer uma pergunta separada sobre isso.