Wenn ich benutze
tmux attach
Ich kann eine laufende Sitzung verbinden, aber wenn keine Sitzung ausgeführt wird, wird nur der Fehler angezeigt
no sessions
Wie kann ich automatisch eine neue Sitzung starten, wenn keine ausgeführt wird? so etwas wie
tmux attach-or-create-new-session
Antworten:
Die Antwort ist viel einfacher. Fügen Sie dies einfach in Ihre
~/.tmux.conf
Datei ein:Wenn Sie ausführen
tmux attach
und eine Sitzung vorhanden ist, wird sie an diese Sitzung angehängt (unabhängig davon, ob sie bereits angehängt ist oder nicht). Wenn noch keine Sitzung vorhanden ist , wird eine Sitzung für Sie erstellt.quelle
tmux
ohne Argumente aufgerufen wird, wird eine neue Sitzung erstellt und dann eine zweite Sitzung, sobald er diese Zeile in Ihrem erreicht~/.tmux.conf
. Sie können dieses Problem feststellen, indem Sietmux ls
nach dem Erstellen der ersten Sitzung ausführen . In der Praxis können Sie, nachdem Sie dies in Ihre Datei aufgenommen haben,tmux
keine Argumente mehr aufrufenalias tmux="tmux attach"
, um dieses Problem zu vermeidentmux
.Wenn die Benennung Ihrer Sitzung in Ordnung ist, können Sie den folgenden
new-session
Befehl verwenden:Wo
main
ist der Sitzungsname, der bei Bedarf angehängt oder erstellt wird?Von
man tmux
:Bitte beachten Sie auch, dass die
-A
Option in der tmux-Version1.8
ab dem 26. März 2013 eingeführt wird , für frühere Versionen verwendentmux attach || tmux
.quelle
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. Danke für den Tipp! Handbuchseite: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1tmux: unknown option -- A
Dies scheint nur in neueren Versionen verfügbar zu sein.[ -z "$TMUX" ] && exec tmux new -As .
das verwende ich in meinem.bashrc
.Dies startet eine neue Sitzung, wenn beim Anhängen ein Fehler auftritt:
Ein Alias erledigt also die Aufgabe:
quelle
tmux attach
fürtmux a
Erwägen Sie, das Folgende zu Ihrem hinzuzufügen
.bashrc
Sie können meine Verwendung in meiner ZSH-Ressourcendatei in meinem Github-Repo sehen
quelle
Um die Antwort von Wesley Baugh (die für mich bei der Verwendung von .bashrc für Anmeldungen eine doppelte Verschachtelung war) zu erweitern und ein wenig Flexibilität hinzuzufügen, da ich sie häufig
sudo -s
auf Servern verwende (die meine .bashrc-Datei pflichtgemäß erneut laden und doppelt verschachteln würden), siehe unten was ich in meiner .bashrc habe:Dadurch wird nach einer tmux-Sitzung gesucht und sichergestellt, dass Sie kein Superuser sind, bevor Sie eine neue Sitzung erstellen oder eine Verbindung zu der vorhandenen Sitzung mit dem Namen herstellen
main
.quelle
Drew Frank hat dies hier beantwortet: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
Hier ist das Skript, das ich jetzt benutze (obwohl ich wegen eines anderen Problems mit tmux wieder zum Bildschirm zurückgeschaltet habe)
/somewhere/on/your/path/ttmux
oder als Shell-Funktion:Die
-2
Optionen veranlassen tmux, Unterstützung für 256-Farben-Terminals anzunehmen, sodass diese möglicherweise nicht für Ihre Situation geeignet sind.quelle
Wenn Sie dies in einer .shrc-Datei oder ähnlichem verwenden,
exec
würde ich empfehlenquelle
Ich habe die @ SuperMagic-Antwort ein wenig verbessert. Ich setze diesen Block oben auf meinen
.zshrc
quelle