Llevo años usando la consola Linux, pero actualmente comencé a pensar en cómo funciona realmente. Al escribir a command
como una cadena y presionar, Enter
se devuelve su salida en la misma ventana de terminal.
Al abrir una nueva ventana de terminal y ejecutar tty
se muestra el siguiente resultado:
$ tty
/dev/pts/10
Página de manual en ptydefine que:
Un proceso que espera estar conectado a una terminal puede abrir el extremo esclavo de una pseudoterminal y luego ser controlado por un programa que ha abierto el extremo maestro. Todo lo que se escribe en el extremo maestro se proporciona al proceso en el extremo esclavo como si se hubiera escrito en una terminal.[...]Por el contrario, cualquier cosa que se escriba en el extremo esclavo del pseudoterminal puede ser leída por el proceso que está conectado al extremo maestro.
Mi entendimiento:
La ventana de terminal real está conectada a un esclavo /dev/pts/10
y toda la entrada que escribo en la ventana de terminal se escribe en el extremo esclavo y luego se lee en el extremo maestro. Un proceso conectado al extremo maestro sabe qué hacer con todas las cadenas tipo usuario, las ejecuta y escribe los resultados de los comandos en el extremo maestro que luego se leen en el extremo esclavo y se muestran en la ventana del terminal.
La pregunta:
¿Cuál es el proceso conectado al extremo maestro que sabe cómo ejecutar comandos que los usuarios escriben como cadenas?