Sessions
| Tâche | Commande ou raccourci |
|---|---|
Se rattacher à work, ou la créer | tmux new -A -s work |
| Nouvelle session en arrière-plan | tmux new -d -s work |
| Lister les sessions | tmux ls |
| Se rattacher | tmux attach -t work |
| Se détacher en la laissant tourner | Ctrl+b d |
| Renommer la session | Ctrl+b $ |
| Choisir une session dans une liste | Ctrl+b s |
| Terminer une session | tmux kill-session -t work |
| Terminer toutes les sessions | tmux kill-server |
| Vérifier si une session existe, pour les scripts | tmux has-session -t work |
Fenêtres
| Tâche | Raccourci |
|---|---|
| Nouvelle fenêtre | Ctrl+b c |
| Suivante, précédente | Ctrl+b n, Ctrl+b p |
| Aller à la fenêtre 0 | Ctrl+b 0 |
| Dernière fenêtre utilisée | Ctrl+b l |
| Renommer | Ctrl+b , |
| Choisir dans l'arbre de toutes les fenêtres | Ctrl+b w, et q pour quitter |
Fermer, après confirmation avec y | Ctrl+b & |
Panneaux
| Tâche | Raccourci ou commande |
|---|---|
| Diviser côte à côte | Ctrl+b % |
| Diviser haut et bas | Ctrl+b " |
| Passer d'un panneau à l'autre | Ctrl+b et une touche fléchée |
| Panneau suivant | Ctrl+b o |
| Agrandir et réduire | Ctrl+b z |
| Afficher les numéros de panneaux | Ctrl+b q |
| Transformer un panneau en fenêtre à part | Ctrl+b ! |
Fermer, après confirmation avec y | Ctrl+b x |
| Redimensionner de 5 cellules vers la gauche | tmux resize-pane -L 5 |
| Échanger avec le panneau suivant | tmux swap-pane -D |
| Colonnes égales | tmux select-layout even-horizontal |
Défilement et copie
| Tâche | Raccourci ou commande |
|---|---|
| Entrer en mode copie pour faire défiler | Ctrl+b [ |
| Quitter le mode copie | q |
| Enregistrer les 3000 dernières lignes dans un fichier | tmux capture-pane -p -S -3000 > out.txt |
Autres raccourcis utiles
| Tâche | Raccourci |
|---|---|
| Lister tous les raccourcis | Ctrl+b ? |
| Saisir une commande tmux | Ctrl+b : |
| Afficher une horloge | Ctrl+b t |
Piloter depuis l'extérieur
Chaque raccourci correspond à une commande, vous pouvez donc piloter tmux depuis un script ou via SSH :
tmux new -d -s work
tmux new-window -t work -n logs
tmux split-window -h -t work
tmux send-keys -t work 'echo hello' Enter
tmux capture-pane -p -t work
tmux kill-window -t work:logs
Depuis votre propre machine, ssh -t user@server tmux new -A -s work entre directement dans une session. Le -t est nécessaire car tmux veut un terminal.
Configuration
Les réglages vont dans ~/.tmux.conf. Ces deux-là sont courants :
set -g mouse on
set -g history-limit 50000
Chargez le fichier sans redémarrer :
tmux source-file ~/.tmux.conf
Les options définies pendant que tmux tourne durent jusqu'à la fin du serveur tmux. history-limit s'applique aux nouveaux panneaux, pas aux existants.
Messages que vous pouvez voir
| Message | Signification |
|---|---|
no server running on /tmp/tmux-1000/default | Aucune session n'existe, par exemple après un redémarrage |
can't find session: work | Ce nom n'existe pas. Vérifiez avec tmux ls |
Pour comprendre pourquoi les sessions survivent à une connexion coupée et ce à quoi elles ne survivent pas, lisez comment garder les sessions SSH actives avec tmux.
Si vous hésitez encore entre les deux outils, lisez tmux ou screen.
Questions
Comment remonter dans l'historique de tmux ?
Appuyez sur Ctrl+b [ pour passer en mode copie, puis utilisez les flèches ou Page précédente. Appuyez sur q pour en sortir. Avec set -g mouse on dans ~/.tmux.conf, la molette fait aussi défiler.
Comment se détacher de tmux sans fermer la session ?
Appuyez sur Ctrl+b d. La session et ses programmes continuent de tourner, et tmux attach -t work la rouvre.
Comment fermer une session tmux ?
Lancez tmux kill-session -t work, ou tapez exit dans son dernier shell. tmux kill-server ferme toutes les sessions.
Comment remplacer le préfixe tmux par Ctrl+a ?
Ajoutez set -g prefix C-a, unbind C-b et bind C-a send-prefix à ~/.tmux.conf, puis lancez tmux source-file ~/.tmux.conf. Appuyez deux fois sur Ctrl+a quand un programme a besoin de Ctrl+a lui-même.