Introduction
Si vous passez votre temps à jongler entre plusieurs terminaux, à perdre une commande en cours à cause d’une déconnexion ou à maudire la gestion des fenêtres de votre terminal, tmux est l’outil qu’il vous faut.
tmux (Terminal Multiplexer) permet de créer des sessions, de les diviser en fenêtres et en panneaux, et surtout de les conserver actives même si vous fermez votre terminal. C’est un peu comme avoir un bureau à plusieurs écrans, mais dans un terminal.
Pourquoi utiliser tmux ?
- Persistance : vos processus continuent de tourner même si vous fermez le terminal.
- Multitâche : plusieurs fenêtres et panneaux dans une seule session.
- Productivité : détacher/attacher une session, partager un terminal, automatiser son environnement.
- Stabilité : plus de crainte de perdre une commande en cours à cause d’une coupure réseau.
Installation
Debian / Ubuntu
sudo apt update
sudo apt install tmux
Fedora / RHEL
sudo dnf install tmux
Vérifier la version
tmux -V
La version 3.x est recommandée pour bénéficier de toutes les fonctionnalités modernes.
Concepts de base
tmux repose sur trois niveaux d’organisation :
- Session : un environnement de travail isolé. Chaque session contient ses propres fenêtres.
- Fenêtre : équivalent d’un onglet ou d’un bureau virtuel.
- Panneau : une division de la fenêtre en plusieurs zones, chacune avec son propre shell.
Commandes essentielles
Astuce : appuyer sur
Ctrl+bpuis?à tout moment affiche la liste complète des raccourcis tmux et leurs descriptions.
Gérer les sessions
# Créer une session nommée dev -s/--session-name définit le nom.
tmux new -s dev
# Lister les sessions en cours
tmux ls
# Attacher la session dev -t/--target spécifie la cible.
tmux attach -t dev
# Détacher la session en cours
tmux detach
# Supprimer la session dev -t/--target spécifie la cible.
tmux kill-session -t dev
| Raccourci | Action |
|---|---|
Ctrl+b puis s | Lister et changer de session interactivement |
Ctrl+b puis d | Détacher la session en cours |
Ctrl+b puis ( | Passer à la session précédente |
Ctrl+b puis ) | Passer à la session suivante |
Ctrl+b puis $ | Renommer la session courante |
Ctrl+b puis L | Revenir à la dernière session active |
Gérer les fenêtres
Par défaut, le préfixe tmux est Ctrl+b.
| Raccourci | Action |
|---|---|
Ctrl+b puis c | Créer une nouvelle fenêtre |
Ctrl+b puis n | Fenêtre suivante |
Ctrl+b puis p | Fenêtre précédente |
Ctrl+b puis w | Lister et choisir une fenêtre |
Ctrl+b puis , | Renommer la fenêtre courante |
Ctrl+b puis & | Fermer la fenêtre courante |
Ctrl+b puis 0-9 | Aller à la fenêtre numéro N |
Gérer les panneaux
| Raccourci | Action |
|---|---|
Ctrl+b puis " | Diviser horizontalement |
Ctrl+b puis % | Diviser verticalement |
Ctrl+b puis ↑ ↓ ← → | Naviguer entre les panneaux |
Ctrl+b puis o | Cycle entre les panneaux |
Ctrl+b puis x | Fermer le panneau courant |
Ctrl+b puis z | Zoomer/dézoomer le panneau courant |
Ctrl+b puis espace | Changer la disposition des panneaux |
Personnaliser tmux avec .tmux.conf
La configuration se fait dans le fichier ~/.tmux.conf. Voici une configuration de base moderne et confortable :
# Remplacer le préfixe Ctrl+b par Ctrl+a (plus accessible)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Activer la souris pour redimensionner et sélectionner les panneaux
set -g mouse on
# Numéroter les fenêtres et les panneaux à partir de 1
set -g base-index 1
setw -g pane-base-index 1
# Augmenter l'historique du buffer à 10 000 lignes
set -g history-limit 10000
# Réduire le délai d'interprétation de la touche Échap
set -sg escape-time 10
# Activer le support des couleurs 256 et truecolor
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*:Tc"
# Personnaliser la barre d'état
set -g status-style bg=black,fg=white
set -g status-left-length 40
set -g status-left "[#S] "
set -g status-right " %H:%M %d-%m-%Y"
set -g window-status-current-style bg=blue,fg=white
# Recharger la configuration avec Ctrl+b puis r
bind r source-file ~/.tmux.conf \; display "Config rechargée !"
Après modification :
tmux source-file ~/.tmux.conf
Plugins avec Tmux Plugin Manager (TPM)
TPM permet d’installer facilement des plugins tmux.
Installation de TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Ajouter à .tmux.conf
Ajoutez ces lignes en fin de fichier :
# Gestionnaire de plugins
set -g @plugin 'tmux-plugins/tpm'
# Plugins essentiels
set -g @plugin 'tmux-plugins/tmux-resurrect' # sauvegarde et restauration des sessions
set -g @plugin 'tmux-plugins/tmux-continuum' # sauvegarde automatique
set -g @plugin 'tmux-plugins/tmux-yank' # copie vers le presse-papiers
# Sauvegarder automatiquement toutes les 15 minutes
set -g @continuum-save-interval '15'
set -g @continuum-restore 'on'
# Initialiser TPM (à placer en fin de fichier)
run '~/.tmux/plugins/tpm/tpm'
Plugins recommandés
- tmux-resurrect : sauvegarde et restaure les sessions après un redémarrage.
- tmux-continuum : sauvegarde automatique et restauration continue.
- tmux-yank : copie dans le presse-papiers du système.
Pour installer les plugins, appuyez sur Ctrl+b puis I (i majuscule).
Cas d’usage concrets
Garder une commande longue en arrière-plan
# Créer une session nommée backup
tmux new -s backup
# Lancer la commande longue dans tmux
restic backup --tag prod /srv/data
# Puis détacher avec Ctrl+b puis d
Même en fermant son terminal, le backup continue.
Surveiller un serveur
# Créer la session
tmux new -s monitoring
# Diviser verticalement (-v) et lancer htop dans le panneau du bas
tmux split-window -v "htop"
# Diviser horizontalement (-h) et afficher le journal système
tmux split-window -h "journalctl -f"
Pair programming
Deux personnes peuvent se connecter au même serveur, attacher la même session tmux et collaborer dans le même terminal.
# Utilisateur 1 : créer la session
tmux new -s pair
# Utilisateur 2 : attacher la session existante
tmux attach -t pair
Pensez à bien gérer les permissions si deux utilisateurs distincts veulent partager la session.
Tableau récapitulatif des raccourcis
| Raccourci | Action |
|---|---|
Ctrl+b d | Détacher la session |
Ctrl+b c | Nouvelle fenêtre |
Ctrl+b n | Fenêtre suivante |
Ctrl+b p | Fenêtre précédente |
Ctrl+b w | Choisir une fenêtre |
Ctrl+b " | Panneau horizontal |
Ctrl+b % | Panneau vertical |
Ctrl+b ↑↓←→ | Changer de panneau |
Ctrl+b x | Fermer le panneau |
Ctrl+b z | Zoomer le panneau |
Ctrl+b t | Horloge (bonus) |
Conclusion
tmux est un allié redoutable pour qui vit dans un terminal. Entre persistance des sessions, organisation en fenêtres et panneaux, et personnalisation poussée, il transforme radicalement l’expérience du shell.
Après quelques heures d’usage, revenir à un terminal sans tmux ressemble à conduire sans rétroviseur : techniquement possible, mais franchement moins confortable.
