GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usa Linux /dev/tty y /dev/tty0

/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 .


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿Cómo puedo cambiar la cantidad y el tamaño de los ramdisks de Linux (/dev/ram0 - /dev/ram15)?

  3. Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

  4. ¿Está mal vincular /dev/random a /dev/urandom en Linux?

  5. hacer eco o imprimir /dev/stdin /dev/stdout /dev/stderr

tty (/dev/tty) vs pts (/dev/pts) en Linux

¿Qué son los archivos /dev/zero y /dev/null en Linux?

¿Cómo codificar en base64 /dev/random o /dev/urandom?

¿Cómo se intercambia /dev/sda con /dev/sdb?

¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

kernel:deshabilitar /dev/kmem y /dev/mem