Frage Führe den Befehl in der getrennten tmux-Sitzung aus


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

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

Beispiel: Ich möchte, dass mein getrenntes Fenster 'foo' 'ls' ausführt, aber ich möchte es von einem anderen Terminal aus tun.

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


19
2017-12-09 13:46


Ursprung




Antworten:


Der Befehl ist send. send ist eine Tastenfolge, also behandeln Sie sie entsprechend (z. B. werden Sie wahrscheinlich wollen ENTER). Das Ziel wird mit angegeben -t. Sie können foo.0 oder foo.1 wählen, abhängig von dem Bereich, den Sie treffen möchten.

tmux send -t foo.0 ls ENTER

send ist die Abkürzung für send-keys, die sich in den man-Seiten befindet, aber in dieser Textmeile vielleicht etwas schwer zu finden ist.


35
2017-12-09 16:32



Gute Antwort. Sehr informativ und wirkt charmant. Vielen Dank! - Accatyyc
Die majestätischste Lösung für dieses Problem! Massiver Dank! - 3bdalla
Beachten Sie, dass Sie ein spezifisches Fenster in einer bestimmten Sitzung mit einem Doppelpunkt => trennen tmux send-keys -t foosession:foo.0 ls ENTER - nickspoon
Wenn Sie Leerzeichen zwischen Wörtern senden möchten, sollten Sie den Befehl mit zwei Apostrophen umgeben. Der ENTER-Befehl sollte immer noch außerhalb sein. Das funktioniert bei mir am UBUNTU 16.04: tmux send -t session_name 'echo durp' EINGEBEN - TrollAxeThrower