/dev/tty
é o controle tty do processo atual , para qualquer processo que realmente abra esse arquivo especial. Não é necessariamente um dispositivo de console virtual ( /dev/tty
n ) e pode ser umpty, uma porta serial etc. Se o controle tty não for um console virtual, o processo não precisará interagir com os dispositivos do console, mesmo que seu pseudotty seja realmente implementado no console do sistema. Por exemplo. para um shell em um emulador de terminal no servidor X em execução local, os programas formam uma cadeia de interações como:
Unix shell
⇕ /dev/pts/2
(≡ /dev/tty
para seus processos)
driver de kernel Pty
⇕ /dev/ptmx
emulador de terminal
⇕ X Window protocolo
servidor X
⇕ /dev/tty7
(≡ /dev/tty
para o servidor)
console do sistema
zxc↿⇂ [_̈░░]
usuário
O uso de /dev/tty
programas por parte do usuário inclui:
- Escreva algo no terminal de controle, ignorando todos os redirecionamentos e pipes;
- Faça um ioctl () - veja tty_ioctl (4);
- Por exemplo, desconecte-se do terminal (TIOCNOTTY).
/dev/tty0
é o console virtual atualmente ativo (ou seja, visível no monitor) do sistema operacional . Esse arquivo especial é improvável usado significativamente pelo software do sistema, mas /dev/console
é praticamente um “alias” paratty0
e /dev/console
tem muito uso pelos daemons do syslog e, às vezes, pelo próprio kernel.
Experimente mostrar a diferença: execute um root
shell em tty3
( Ctrl+ Alt+ F3) ou em um emulador de terminal. Agora
# sleep 2; echo test >/dev/tty
então rapidamente Ctrl+ Alt+ F2, aguarde dois segundos e Ctrl+ Alt+ o que quer que seja. Onde você vê a saída?
E agora o mesmo teste para /dev/tty0
.