Según mi conocimiento, /dev/pts
los archivos se crean para sesiones ssh o telnet.
Respuesta aceptada:
No se almacena nada en /dev/pts
. Este sistema de archivos vive puramente en la memoria.
Entradas en /dev/pts
son pseudo-terminales (pty para abreviar). Los kernels de Unix tienen una noción genérica de terminales. Una terminal proporciona una forma para que las aplicaciones muestren la salida y reciban la entrada a través de un dispositivo de terminal. Un proceso puede tener un terminal de control — para una aplicación en modo texto, así es como interactúa con el usuario.
Los terminales pueden ser terminales de hardware ("tty", abreviatura de "teletipo") o pseudoterminales ("pty"). Los terminales de hardware están conectados a través de alguna interfaz, como un puerto serie (ttyS0
, …) o USB (ttyUSB0
, …) o a través de una pantalla y teclado de PC (tty1
, …). Los pseudoterminales los proporciona un emulador de terminal, que es una aplicación. Algunos tipos de pseudo-terminales son:
- Las aplicaciones GUI como xterm, gnome-terminal, konsole,... transforman los eventos del teclado y el mouse en entrada de texto y muestran la salida gráficamente en alguna fuente.
- Aplicaciones de multiplexor, como entrada y salida de relé de pantalla y tmux desde y hacia otro terminal, para desacoplar las aplicaciones de modo de texto del terminal real.
- Las aplicaciones de shell remoto como sshd, telnetd, rlogind,... transmiten entrada y salida entre un terminal remoto en el cliente y un pty en el servidor.
Si un programa abre una terminal para escribir, la salida de ese programa aparece en la terminal. Es común tener varios programas saliendo a una terminal al mismo tiempo, aunque esto puede ser confuso a veces ya que no hay forma de saber qué parte de la salida proviene de qué programa. Los procesos en segundo plano que intentan escribir en su terminal de control pueden suspenderse automáticamente mediante una señal SIGTTOU.
Si un programa abre una terminal para lectura, la entrada del usuario se pasa a ese programa. Si se están leyendo varios programas desde el mismo terminal, cada carácter se enruta de forma independiente a uno de los programas; esto no es recomendable. Normalmente, solo hay un único programa leyendo activamente desde el terminal en un momento dado; los programas que intentan leer desde su terminal de control mientras no están en primer plano se suspenden automáticamente mediante una señal SIGTTIN.
Para experimentar, ejecute tty
en una terminal para ver cuál es el dispositivo terminal. Digamos que es /dev/pts/42
. En un shell en otra terminal, ejecute echo hello >/dev/pts/42
:la cadena hello
se mostrará en el otro terminal. Ahora ejecuta cat /dev/pts/42
y escriba en la otra terminal. Para matar a ese cat
comando (lo que dificultará el uso del otro terminal), presione Ctrl +C .
Escribir en otro terminal en ocasiones es útil para mostrar una notificación; por ejemplo el write
comando hace eso. La lectura desde otro terminal normalmente no se realiza.