Si j'utilise
tmux attach
Je peux m'attacher à une session en cours, mais s'il n'y a pas de session en cours, je ne reçois que l'erreur.
no sessions
Comment puis-je démarrer automatiquement une nouvelle session s'il n'y en a aucune? quelque chose comme
tmux attach-or-create-new-session
Réponses:
La réponse est beaucoup plus simple. Il suffit de mettre ceci dans votre
~/.tmux.conf
dossier:Si vous exécutez
tmux attach
et qu'il y a une session, il sera attaché à cette session (qu'elle soit déjà attachée ou non). S'il n'y a pas déjà une session, elle en créera une pour vous.la source
tmux
est appelé sans arguments, il va créer une nouvelle session, puis créer une deuxième session dès qu'il atteint cette ligne dans votre~/.tmux.conf
. Vous pouvez voir ce problème en exécutanttmux ls
après la création de la première session. En pratique, après avoir mis cela dans votre dossier, vous ne pouvez plus appelertmux
sans argumentsalias tmux="tmux attach"
pour éviter ce problèmetmux
.Si nommer votre session est correct, il est facile à faire avec la
new-session
commande:où
main
est le nom de la session qui sera attachée ou créée si nécessaire.De
man tmux
:Veuillez également noter que l'
-A
option est introduite dans la version1.8
de tmux à partir du 26 mars 2013 , pour les versions antérieurestmux attach || tmux
.la source
alias "tmux-attach-or-create-main-session=tmux new-session -A -s main"
. Merci pour le conseil! Page du manuel: openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/tmux.1tmux: unknown option -- A
Cela ne semble être disponible que dans les versions récentes.[ -z "$TMUX" ] && exec tmux new -As .
c'est ce que j'utilise dans mes.bashrc
.Cela va démarrer une nouvelle session si attach donne une erreur:
Donc, un alias fera le travail:
la source
tmux attach
detmux a
Envisagez d’ajouter ce qui suit à votre
.bashrc
Vous pouvez voir mon utilisation de ceci dans mon fichier de ressources ZSH sur mon dépôt github
la source
Pour développer la réponse de Wesley Baugh (qui était des sessions de double imbrication pour moi lorsqu’elle est utilisée dans .bashrc lors de la connexion) et pour ajouter un peu de flexibilité car j’utilise souvent
sudo -s
sur des serveurs (ce qui chargerait consciencieusement mon nouveau .bashrc et double imbriquée), voici ce que j'ai dans mon .bashrc:Ceci vérifie la présence d’une session tmux et vérifie que vous n’êtes pas superutilisateur avant de créer une nouvelle session ou d’attacher celle qui existe déjà
main
.la source
Drew Frank a répondu à ceci ici: https://superuser.com/questions/487363/tmux-equivalent-of-screen-r
Voici le script que j'utilise maintenant pour cela (bien que je sois revenu à l'écran en raison d'un autre problème avec tmux)
/somewhere/on/your/path/ttmux
ou en tant que fonction shell:Les
-2
options permettent à tmux de prendre en charge les terminaux en 256 couleurs; il est donc possible que ceux-ci ne conviennent pas à votre situation.la source
Si vous utilisez ceci dans un fichier .shrc ou similaire avec celui que
exec
je recommanderaisla source
J'ai amélioré @SuperMagic répondre un peu. Je mets ce bloc en haut de ma
.zshrc
la source