/dev/tty
é o controle tty do atual processo , para qualquer processo que realmente abra este arquivo especial. Não é necessariamente um dispositivo de console virtual ( /dev/tty
n ), e pode ser um pty , uma porta serial, etc. Se o controle tty não for um console virtual, o processo não terá que interagir com os dispositivos do console, mesmo que seu pseudotty esteja realmente implementado no sistema console. Por exemplo. para um shell em um emulador de terminal sob o Xserver de execução local, os programas formam uma cadeia de interações como:
Unix shell
Co /dev/pts/2
(≡ /dev/tty
para seus processos)
driver do kernel pty
Co /dev/ptmx
emulador de terminal
⇕ Protocolo X Window
Servidor X
/dev/tty7
( /dev/tty
para o servidor)
console do sistema
z x c ↿⇂ [_̈░░]
usuário
O uso de /dev/tty
pelos programas da userland inclui:
- Escreva algo no terminal de controle, ignorando todos os redirecionamentos e canais;
- Faça um ioctl () - veja tty_ioctl (4);
- Por exemplo, desanexe do terminal (TIOCNOTTY).
/dev/tty0
é o atualmente ativo (isto é, visível no monitor) console virtual do sistema operacional . Este arquivo especial improvável é usado significativamente pelo software do sistema, mas /dev/console
é virtualmente um “alias ”Para tty0
e /dev/console
tem muito uso por 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
em seguida, 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
.