Ejecutar comando en sesión tmux separada

24

Esto es probablemente simple, pero realmente no puedo descubrir cómo lo haces. He leído las páginas del manual y busqué en Google sin resultados.

Problema: ¿Cómo ejecuto un comando en una ventana tmux separada?

Ejemplo: quiero que mi ventana separada 'foo' ejecute 'ls', pero quiero hacerlo desde otra terminal.

He intentado cosas como: 'tmux -t foo ls' sin resultados.

Actytyc
fuente

Respuestas:

39

El comando es send. sendes una secuencia clave, así que trátela en consecuencia (por ejemplo, probablemente querrá ENTER) El objetivo se especifica con -t. Es posible que desee foo.0 o foo.1 dependiendo del panel que desea golpear.

tmux send -t foo.0 ls ENTER

sendes la abreviatura de send-keys, que se encuentra en las páginas de manual, pero quizás un poco difícil de encontrar en esa milla de texto.

84104
fuente
Gran respuesta. Muy informativo y funciona a las mil maravillas. ¡Gracias!
Accatyyc
¡La solución más majestuosa para este problema! ¡Muchas gracias!
3bdalla
2
Tenga en cuenta que para apuntar a una ventana específica en una sesión específica, los separa con dos puntos =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon
Si desea enviar espacios entre palabras, debe rodear el comando con dos apóstrofes. El comando ENTER aún debe estar afuera. Esto funciona para mí en UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTER
TrollAxeThrower