Ich versuche herauszufinden, wie ich tmux session
eine Verbindung zu einer Sitzung herstellen kann, wenn eine benannte tmux-Sitzung vorhanden ist. Wenn nicht, möchte ich eine neue mit dem angegebenen Namen erstellen.
Derzeit sind mir einige tmux
Befehle bekannt, mit denen teilweise erreicht werden kann, wonach ich suche, aber es ist nicht klar, wie sie miteinander kombiniert werden sollen, um das zu erhalten, wonach ich suche:
tmux attach
Wird an eine automatisch vorhandene Sitzung angehängt. Fehler treten jedoch auf, wenn keine Sitzung vorhanden isttmux new
erstellt eine neue Sitzung - dies geschieht jedoch jedes Mal, sodass ich sie nicht in meiner belassen kann.tmux.conf
tmux has-session
testet, ob eine Sitzung existiert - aber ich weiß nicht, wie ich sie mit den anderen Befehlen zusammenfügen soll
Daher möchte ich ein tmux-Skript erstellen, damit dies automatisch geschieht, anstatt es jedes Mal manuell erstellen zu müssen, wenn ich mich bei einer Sitzung anmelden muss.
Wie kann ich ein automatisches Skript schreiben, um eine neue tmux-Sitzung zu erstellen (falls ein bestimmter Sitzungsname nicht vorhanden ist) oder an einen Sitzungsnamen anzuhängen (falls vorhanden)?
man tmux
sagt mein : "Das -A-Flag bewirkt, dass sich eine neue Sitzung wie eine Anhangssitzung verhält, wenn der Sitzungsname bereits vorhanden ist"Antworten:
Alternativ können Sie hinzufügen
zu Ihrem
.tmux.conf
- das erstellt eine Standardsitzung beim Serverstart.Anschließend
tmux attach
wird entweder eine Verbindung zur aktuellen Sitzung hergestellt (dh Server ausgeführt) oder eine neue Sitzung erstellt (Server starten, Konfigurationsdatei lesen,new-session
Befehl ausgeben ) und eine Verbindung zu dieser Sitzung hergestellt .quelle
new-session
zerstört wird, scheint es ein echtes Problem zu sein.source-file ~/.tmux.conf
)-A
Option verwenden, umnew-session
Ihre Sitzung zu benennen.new-session -A -s mysession
wird gut mit dem Neuladen der Konfiguration spielen.Ich fand es heraus ( und ließ mich darauf hinweisen ).
quelle
tmux attach-session -t my-session || tmux new-session -s my-session
. Das einzige Problem ist, dass dies nicht atomar ist. tmux sollte wirklich einen Befehl zum Erstellen oder Anhängen haben.alias tm='tmux attach || tmux new'
tmux attach -t some_name || tmux new -s some_name
. Ändern Sie some_name in $ 1, fügen Sie einen Shebang hinzu und speichern Sie.new
vs wundernnew-session
: Sie sind Synonyme, und so sindattach
undattach-session
.tmux new-session -ds default \; split-window -dv 2>/dev/null; tmux attach -t default
funktioniert weitaus besser und öffnet keinen zweiten tmux, falls Sie/bin/kill
den ersten haben. Der einzige Nachteil ist, dass Sie die Sitzungen dafür benennen müssen.Wie in den Kommentaren von Petr Viktorin , jkoelker und pjincz ausgeführt , können Sie den folgenden Befehl verwenden, um
mySession
ihn anzuhängen, falls vorhanden, und um ihn zu erstellen, wenn er nicht vorhanden ist:Von
man tmux
:new-session
hat-A
seit tmux-1.8 unterstützt .quelle
gnome-terminal
Befehl verwenden möchten, würde ich vorschlagen, den-s
und den spezifischen Sitzungsnamen wegzulassen, damit nicht JEDE neuegnome-terminal
Sitzung an dieselbe Sitzung angehängt wird. Sie können jederzeit eine vorhandene Sitzung mit auswählen,prefix + s
nachdem Sie ein neues Terminal geöffnet haben.Obwohl ich finde, dass die Antwort von rampion für die Verwendung einer Sitzung ausreicht, können Sie mit diesem Skript mehrere Sitzungen einrichten:
HINWEIS:
quelle
Als ich Alex 'Vorschlag anpasste, die projektbasierte Konfiguration beim Start einzubeziehen, begann ich Folgendes zu verwenden:
Wo
tmux-myproject.conf
ist meine Startserie von tmux-Befehlen zum Erstellen meiner Fenster und Fenster sowie zum Starten meiner Editoren?quelle
Ich verwende einen Alias, um bei Bedarf eine neue Sitzung zu erstellen und an meine Standardsitzung anzuhängen, falls diese bereits vorhanden ist:
Ich habe dies zu meinem .login auf meinem Server hinzugefügt.
Der Grund, warum ich das so mache, ist, dass ich nicht an dieselbe tatsächliche Sitzung anhängen möchte, sondern eine neue Sitzung, die dieselbe Gruppe von Fenstern verwendet.
Dies ähnelt auch dem Laufen
screen -xRR
.quelle
tmux list-sessions
.tmux new -A -s default
Starten einer neuen Sitzung, wenn diese nicht vorhanden ist, oder automatisches Anhängen. Ich denke, es ist viel besser als die Konfigurationsdatei zu bearbeiten.Für diejenigen, die das Gleiche tun möchten in
fish
:quelle