
Simplemente estoy jugando con mi terminal (terminal Gnome). Me preguntaba si hay alguna manera de enviar la salida de un terminal a otro sin tener que crear un nuevo archivo o canalización.
por ejemplo: en la primera terminal ejecuto ls
y quiero que su salida se muestre en la segunda terminal (con o sin usar ningún comando en la segunda)
Respuesta1
Si ambos terminales pertenecen al mismo usuario, puede enviar su salida al dispositivo virtual que se utiliza como tty del terminal en particular.
Por lo tanto, puede utilizar la salida de w
, que incluye la información TTY, y escribir directamente en ese dispositivo.
ls > /dev/pts/7
(Si el dispositivo mencionado por w
era pts/7)
Otra opción es utilizar el número de un proceso que esté conectado a ese dispositivo. Envíe su salida a /proc/<process number>/fd/1
.
ls > /proc/5555/fd/1
Suponiendo que el número de proceso que encontró y que se ejecuta en esa terminal es 5555.
Tenga en cuenta que esta escritura directa sólo se permite siel usuario que intenta escribir es el mismo usuario propietario del otro terminal.
Respuesta2
Puedes usar write
el comando.
Como comentó @MelBurslan, si el permiso de escritura está desactivado, primero ejecute:
$ mesg y
Deman mesg
OPCIONES
y Permitir acceso de escritura a su terminal.
Uso de escritura:
$ write username tty
por ejemplo, enviar ls
salida a otro terminal.
$ w
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user :0 :0 08:15 ?xdm? 7:37 0.25s init --user
user pts/0 :0 08:19 1.00s 0.09s 0.01s w
user pts/12 :0 08:50 54.00s 0.03s 0.03s bash
$ ls | write username pts/12
Respuesta3
Encontré un método similar.
En la primera terminal:
$ tty
/dev/pts/0
$ <no need to run any command here, just see the output>
En la segunda terminal:
$ ls > /dev/pts/0
Ahora obtienes la salida en el primer terminal.
Respuesta4
puedes escribir al TTY del terminal; Por ejemplo:
en la terminal 1:
$ tty
ttys000
en la terminal 2:
$ tty
ttys029
$ exec &> >(tee >(cat >&/dev/ttys000))
ls
La salida se mostrará en ambas terminales en tiempo real incluso mientras escribe.
Funciona en Linux y macOS. La ruta TTY de macOS es /dev/{number}
mientras que en Linux es/dev/pts/{number}