/dev/tty
es el tty de control del proceso actual , para cualquier proceso que realmente abra este archivo especial. No es necesariamente un dispositivo de consola virtual (/dev/tty
n ), y puede ser un pty, un puerto serie, etc. Si el tty de control no es una consola virtual, entonces el proceso no tiene que interactuar con los dispositivos de la consola, incluso si su pseudotty está realmente implementado en la consola del sistema. P.ej. para un shell en un emulador de terminal bajo Xserver que se ejecuta localmente, dichos programas forman una cadena de interacciones como:
cáscara de Unix
⇕ /dev/pts/2
(≡ /dev/tty
para sus procesos)
controlador pty del núcleo
⇕ /dev/ptmx
emulador de terminal
⇕ Protocolo de ventana X
servidor X
⇕ /dev/tty7
(≡ /dev/tty
para el servidor)
consola del sistema
z x c ↿⇂[_̈░░]
usuario
Uso de /dev/tty
por programas de la tierra del usuario incluye:
- Escribir algo en el terminal de control, ignorando todas las redirecciones y conductos;
- Hacer un ioctl() – ver tty_ioctl(4);
- Por ejemplo, sepárelo del terminal (TIOCNOTTY).
/dev/tty0
es la consola virtual actualmente activa (es decir, visible en el monitor) del sistema operativo . Es poco probable que el software del sistema utilice este archivo especial de forma significativa, pero /dev/console
es virtualmente un "alias" para tty0
y /dev/console
es muy útil para los demonios syslog y, a veces, para el mismo núcleo.
Experimente para mostrar la diferencia:ejecute un root
shell en tty3
(Ctrl +Alt +F3 ) o en un emulador de terminal. Ahora
# sleep 2; echo test >/dev/tty
luego rápidamente Ctrl +Alt +F2 , espere dos segundos y Ctrl +Alt + lo que sea de vuelta. ¿Dónde ves la salida?
Y ahora la misma prueba para /dev/tty0
.
/dev/tty es el tty de control para cualquier proceso. Este puede ser tu caparazón.
Si su proceso no tiene un tty de control, /dev/tty no está disponible, p. es cierto para los demonios.
Si su proceso tiene un tty de control, entonces /dev/tty es un alias de controlador para el controlador de tty real que su proceso está usando para stdin, stdout o stderr.
Ver man -s7d tty
para más información. Tenga en cuenta que la sección en la que se encuentra este manual puede diferir entre diferentes sistemas operativos y no debe confundirse con la página del manual en la sección 1. Por lo tanto, verifique, p. man -k tty
.