Führen Sie den Befehl in einer getrennten tmux-Sitzung aus

24

Das ist wahrscheinlich einfach, aber ich kann wirklich nicht herausfinden, wie Sie es tun. Ich habe die Manpages gelesen und ergebnislos gegoogelt.

Problem: Wie führe ich einen Befehl in einem getrennten tmux-Fenster aus?

Beispiel: Ich möchte, dass in meinem abgetrennten Fenster 'foo' 'ls' ausgeführt wird, aber ich möchte dies von einem anderen Terminal aus tun.

Ich habe Sachen wie 'tmux -t foo ls' ohne Ergebnisse ausprobiert.

Accatyyc
quelle

Antworten:

39

Der Befehl lautet send. sendist eine Tastenfolge, behandeln Sie sie dementsprechend (z. B. möchten Sie wahrscheinlich ENTER). Das Ziel wird mit angegeben -t. Sie können foo.0 oder foo.1 wünschen, abhängig von dem Bereich, den Sie schlagen möchten.

tmux send -t foo.0 ls ENTER

sendist eine Abkürzung für send-keys, die sich in den Manpages befindet, aber vielleicht ein bisschen schwierig in dieser Meile Text zu finden ist.

84104
quelle
Gute Antwort. Sehr informativ und wirkt charmant. Vielen Dank!
Accatyyc
Die majestätischste Lösung für dieses Problem! Massiver Dank!
3.
2
Beachten Sie, dass Sie ein bestimmtes Fenster in einer bestimmten Sitzung durch einen Doppelpunkt trennen müssen =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon
Wenn Sie Leerzeichen zwischen Wörtern senden möchten, müssen Sie den Befehl mit zwei Apostrophen umgeben. Der ENTER-Befehl sollte sich noch außerhalb befinden. Dies funktioniert für mich auf UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTER
TrollAxeThrower