Suponga que tiene un emulador de terminal (T1) abierto con un PID de 6350.
Desde otra terminal, escribe este comando (C1):
echo "lsn" > /proc/6350/fd/0
Esto escribe ls
y la nueva línea en T1 pero no la ejecuta. ¿Por qué?
También intenté usar cat|bash
con echo "lsn" > /proc/catid/fd/0
pero aún no se ejecuta.
¿Cómo puedo repetir el comando en otro terminal y ejecutar el comando?
posible respuesta:
$ mkfifo toto;
$ bash < toto;
$ echo "ls" > toto;
En este caso, ya no puede escribir más directamente en la terminal (todo se muestra de la misma manera que el comando (C1) se muestra en esta terminal.
Respuesta aceptada:
Hay una utilidad de línea de comandos llamada ttyecho
que puede enviar un comando a otro terminal (tty/pts) y ejecutar el comando.
sudo ttyecho -n /dev/pts/5 ls
Ver:Utilidad para Enviar Comandos o Datos a Otros Terminales (tty/pts)
Ver también:ttyecho
código fuente en github.
Otro comando tty interesante es selector
, un comparador de patrones interactivo en tiempo real en la consola que actualiza el búfer de entrada de tty.
# selector examples
selector -v -x @ <(find . -maxdepth 2 -type d | awk '{print $0"@cd "$0}')
selector -v -x @ <(grep -E -o 'http[^ ]+' fileWithURLS)
Ver:selector – BÚSQUEDA DINÁMICA EN CONSOLA