Ce guide vous apprend à utiliser tmux pour ne plus jamais perdre votre travail en cas de déconnexion SSH. Vous saurez créer des sessions persistantes, organiser votre terminal en panneaux et onglets, et personnaliser tmux selon vos besoins. Prérequis : accès à un terminal Linux, macOS ou WSL.
Pourquoi utiliser tmux ?
Section intitulée « Pourquoi utiliser tmux ? »Le problème que tmux résout
Section intitulée « Le problème que tmux résout »Imaginez cette situation : vous êtes connecté en SSH à un serveur de production. Vous lancez une migration de base de données qui prend 2 heures. Au bout d’une heure, votre connexion Wi-Fi coupe pendant 30 secondes.
Ce qui se passe sans tmux :
- Votre connexion SSH est interrompue
- Le terminal distant reçoit un signal “raccrocher” (SIGHUP)
- Tous les processus lancés depuis ce terminal sont tués
- Votre migration s’arrête à mi-chemin
- Vous avez une base de données dans un état incohérent
C’est un vrai problème qui arrive régulièrement aux DevOps, sysadmins, et développeurs qui travaillent sur des serveurs distants.
Comment tmux résout ce problème
Section intitulée « Comment tmux résout ce problème »Pour comprendre tmux, faisons une analogie avec un bureau physique.
Sans tmux : vous travaillez sur un bureau qui disparaît dès que vous quittez la pièce. Tous vos documents, outils et travail en cours disparaissent avec.
Avec tmux : vous travaillez dans un bureau qui reste intact même quand vous partez. Quand vous revenez, tout est exactement comme vous l’avez laissé : les documents ouverts, les programmes en cours d’exécution, l’organisation de votre espace.
Ce que tmux apporte concrètement
Section intitulée « Ce que tmux apporte concrètement »| Situation | Sans tmux | Avec tmux |
|---|---|---|
| Déconnexion accidentelle | Tout est perdu | On reprend où on en était |
| Tâche longue (compilation, backup) | Doit garder le terminal ouvert | Lance et reviens plus tard |
| Travailler sur plusieurs choses | Plusieurs terminaux à gérer | Un seul terminal, plusieurs espaces |
| Montrer son écran à un collègue | Partage d’écran Zoom/Teams | Session partagée en temps réel |
| Revenir le lendemain | Tout refaire depuis zéro | Session sauvegardée |
Qu’est-ce qu’un multiplexeur de terminal ?
Section intitulée « Qu’est-ce qu’un multiplexeur de terminal ? »Le nom “tmux” vient de Terminal MUltipleXer. Décomposons ce terme :
- Terminal : l’interface texte où vous tapez des commandes
- Multiplexer : combiner plusieurs signaux en un seul (terme d’électronique)
Un multiplexeur de terminal permet donc de combiner plusieurs terminaux virtuels dans une seule fenêtre de terminal physique.
Ce que “multiplexer” signifie concrètement
Section intitulée « Ce que “multiplexer” signifie concrètement »Imaginez que vous ayez un seul écran d’ordinateur, mais que vous puissiez y afficher 4 bureaux différents, tous actifs en même temps, et passer de l’un à l’autre instantanément. C’est exactement ce que fait tmux avec les terminaux.
Les trois concepts fondamentaux de tmux
Section intitulée « Les trois concepts fondamentaux de tmux »Avant de pratiquer, comprenons les trois niveaux d’organisation de tmux. C’est essentiel pour ne pas se perdre.
1. La session : votre espace de travail
Section intitulée « 1. La session : votre espace de travail »Une session est un espace de travail complet et indépendant. Pensez-y comme à un projet ou un contexte de travail.
Exemple concret : vous pouvez avoir :
- Une session “api-backend” pour le développement de l’API
- Une session “monitoring” pour surveiller les serveurs
- Une session “database” pour les opérations de BDD
Chaque session est isolée des autres et persiste même quand vous êtes déconnecté.
2. La window : un onglet
Section intitulée « 2. La window : un onglet »Une window (fenêtre) est un onglet à l’intérieur d’une session. Comme les onglets dans votre navigateur web.
Exemple concret : dans votre session “api-backend”, vous pouvez avoir :
- Window 1 : “editeur” - où vous codez
- Window 2 : “serveur” - où tourne votre serveur de dev
- Window 3 : “tests” - où vous lancez les tests
- Window 4 : “git” - pour vos commits
Vous ne voyez qu’une seule window à la fois (comme un onglet), mais vous passez de l’une à l’autre instantanément.
3. Le pane : une subdivision d’écran
Section intitulée « 3. Le pane : une subdivision d’écran »Un pane (panneau) est une division d’une window. Vous pouvez couper votre écran en 2, 4, 6… parties, chacune avec son propre terminal.
Exemple concret : dans votre window “debug”, vous pouvez avoir :
- Pane gauche : les logs du serveur
- Pane droite : vos commandes de test
Ainsi, vous voyez les logs en temps réel pendant que vous testez.
Schéma récapitulatif
Section intitulée « Schéma récapitulatif »Installation
Section intitulée « Installation »Version actuelle : 3.4 (2024)
tmux est disponible dans les dépôts de toutes les distributions Linux. L’installation prend quelques secondes.
sudo apt update && sudo apt install -y tmuxVérification :
tmux -VVous devez voir tmux 3.4 (ou une version proche).
sudo dnf install -y tmuxtmux -Vsudo pacman -S tmuxtmux -VSur macOS, utilisez Homebrew :
brew install tmuxtmux -Vmise permet de gérer les versions de vos outils :
mise install tmux@latestmise use -g tmux@latesttmux -VAvantage : vous pouvez avoir plusieurs versions de tmux et les mettre à jour facilement.
Votre première session tmux
Section intitulée « Votre première session tmux »Apprenons par la pratique. Nous allons créer une session, lancer une commande, nous détacher, et nous rattacher.
Comprendre le préfixe (très important)
Section intitulée « Comprendre le préfixe (très important) »Avant de commencer, une notion essentielle : le préfixe.
Quand vous êtes dans tmux, comment distinguer une commande pour tmux d’une commande normale ? Par exemple, si vous appuyez sur “d”, tmux doit comprendre :
- Est-ce que vous voulez taper la lettre “d” dans votre terminal ?
- Ou est-ce que vous voulez vous détacher de tmux ?
La solution : le préfixe. Par défaut, c’est Ctrl+B.
Comment ça marche :
- Vous appuyez sur
CtrletBen même temps - Vous relâchez
- Vous appuyez sur la touche de commande (par exemple
dpour détacher)
Étape par étape : votre première session
Section intitulée « Étape par étape : votre première session »-
Ouvrez un terminal
Sur votre machine locale ou en SSH vers un serveur.
-
Créez une session nommée
Fenêtre de terminal tmux new -s apprentissageQue se passe-t-il :
- tmux démarre un serveur en arrière-plan (s’il n’existe pas déjà)
- Il crée une session nommée “apprentissage”
- Il vous connecte automatiquement à cette session
Comment savoir que vous êtes dans tmux ?
Regardez en bas de votre terminal : une barre verte (par défaut) est apparue. Elle affiche le nom de la session et la liste des windows.
-
Lancez une commande (simulation d’une tâche longue)
Fenêtre de terminal # Cette commande affiche un compteur toutes les secondesfor i in $(seq 1 1000); do echo "Compteur: $i"; sleep 1; doneVous voyez le compteur s’incrémenter. Laissez-le tourner.
-
Détachez-vous de la session
Appuyez sur :
Ctrl+B(relâchez), puisdQue se passe-t-il :
- Vous revenez à votre terminal normal (sans la barre verte)
- Le message
[detached (from session apprentissage)]s’affiche - Mais le compteur continue de tourner en arrière-plan !
-
Vérifiez que la session existe encore
Fenêtre de terminal tmux lsRésultat attendu :
apprentissage: 1 windows (created Thu Feb 6 10:30:00 2026)La session existe toujours, avec 1 window.
-
Rattachez-vous à la session
Fenêtre de terminal tmux attach -t apprentissageQue se passe-t-il :
- Vous retournez dans tmux
- Le compteur a continué pendant votre absence !
- Si vous étiez à “Compteur: 10” quand vous êtes parti et que 30 secondes ont passé, vous êtes maintenant à “Compteur: 40”
-
Arrêtez le compteur et quittez
Ctrl+Cpour arrêter le compteurexitpour fermer la window (et donc la session, puisqu’il n’y en a qu’une)
Les commandes à connaître absolument
Section intitulée « Les commandes à connaître absolument »Les 5 commandes shell (hors tmux)
Section intitulée « Les 5 commandes shell (hors tmux) »Ces commandes se tapent dans un terminal normal, avant d’entrer dans tmux :
| Commande | Ce qu’elle fait | Quand l’utiliser |
|---|---|---|
tmux new -s NOM | Crée une session nommée NOM | Démarrer un nouveau travail |
tmux ls | Liste les sessions existantes | Voir ce qui tourne |
tmux attach -t NOM | Se connecte à la session NOM | Reprendre un travail |
tmux attach | Se connecte à la dernière session | Raccourci si une seule session |
tmux kill-session -t NOM | Supprime la session NOM | Nettoyer (attention, tue les processus !) |
Les 10 raccourcis tmux (dans tmux)
Section intitulée « Les 10 raccourcis tmux (dans tmux) »Ces raccourcis s’utilisent depuis l’intérieur de tmux. Rappel : C-b signifie Ctrl+B (le préfixe).
Pour les sessions
Section intitulée « Pour les sessions »| Raccourci | Ce qu’il fait | Mnémotechnique |
|---|---|---|
C-b d | Détache de la session | detach |
C-b $ | Renomme la session | $ = nom de variable, donc nom |
C-b s | Liste les sessions (pour naviguer) | sessions |
Pour les windows (onglets)
Section intitulée « Pour les windows (onglets) »| Raccourci | Ce qu’il fait | Mnémotechnique |
|---|---|---|
C-b c | Crée une nouvelle window | create |
C-b n | Passe à la window suivante | next |
C-b p | Passe à la window précédente | previous |
C-b , | Renomme la window actuelle | virgule = pause pour réfléchir au nom |
C-b w | Liste les windows (pour naviguer) | windows |
Pour les panes (divisions)
Section intitulée « Pour les panes (divisions) »| Raccourci | Ce qu’il fait | Mnémotechnique |
|---|---|---|
C-b " | Divise horizontalement (haut/bas) | ” ressemble à deux traits horizontaux |
C-b % | Divise verticalement (gauche/droite) | % ressemble à une division |
C-b flèches | Navigue entre les panes | intuitif |
C-b x | Ferme le pane actuel | x = croix = fermer |
C-b z | Zoom/dézoom le pane (plein écran) | zoom |
Scénario pratique : maintenance d’un serveur
Section intitulée « Scénario pratique : maintenance d’un serveur »Voyons tmux en action dans une situation réelle de DevOps.
Le contexte
Section intitulée « Le contexte »Vous devez :
- Mettre à jour un serveur (ça peut prendre 20-30 minutes)
- Surveiller les logs pendant la mise à jour
- Être prêt à intervenir si problème
Sans tmux, vous garderiez 3 fenêtres de terminal ouvertes. Si votre connexion coupe, tout est perdu.
La solution avec tmux
Section intitulée « La solution avec tmux »-
Connexion au serveur et création de session
Fenêtre de terminal ssh admin@serveur-prodtmux new -s maintenanceVous êtes dans tmux. Donnez à votre window un nom explicite :
C-b ,puis tapezupdateet Entrée. -
Créer un layout à 2 panneaux
Nous voulons voir la mise à jour en haut et les logs en bas.
Divisez horizontalement :
C-b "Votre écran est maintenant coupé en deux.
-
Dans le panneau du haut : préparer la mise à jour
Vous devriez être dans le panneau du haut. Sinon :
C-b flèche hautFenêtre de terminal # Vérifier d'abord ce qui va être mis à joursudo apt updateapt list --upgradable -
Dans le panneau du bas : suivre les logs
Passez au panneau du bas :
C-b flèche basFenêtre de terminal # Suivre les logs système en temps réelsudo journalctl -f -u apt-daily* -u unattended-upgrades -
Retour en haut pour lancer la mise à jour
C-b flèche hautFenêtre de terminal sudo apt upgrade -yLa mise à jour commence. Dans le panneau du bas, vous voyez les logs en temps réel.
-
Vous pouvez partir tranquillement
C-b dpour détacher.Vous pouvez fermer votre terminal, aller déjeuner, éteindre votre PC. La mise à jour continue.
-
Revenir vérifier plus tard
Fenêtre de terminal ssh admin@serveur-prodtmux attach -t maintenanceTout est là : la mise à jour est terminée (ou en cours), les logs ont tout enregistré.
Configuration de tmux
Section intitulée « Configuration de tmux »tmux est configurable via un fichier ~/.tmux.conf. Ce fichier n’existe pas par défaut ; vous devez le créer.
Pourquoi configurer tmux ?
Section intitulée « Pourquoi configurer tmux ? »Quelques irritants du comportement par défaut :
- Le préfixe
C-bdemande de tordre les doigts (C-a est plus naturel) - La souris ne fonctionne pas (pas de clic pour changer de pane)
- Les numéros de windows commencent à 0 (peu intuitif)
- L’historique de scroll est limité
Configuration de départ recommandée
Section intitulée « Configuration de départ recommandée »Créez le fichier ~/.tmux.conf avec ce contenu :
# ============================================# Configuration tmux pour débutants# ============================================
# -------------------------------------------# PRÉFIXE : Changer C-b pour C-a (plus accessible)# -------------------------------------------# C-a est plus facile à taper que C-b# C-a C-a envoie C-a au programme (utile pour Bash)unbind C-bset -g prefix C-abind C-a send-prefix
# -------------------------------------------# SOURIS : Activer le support souris# -------------------------------------------# Permet de :# - Cliquer pour changer de pane# - Scroller pour voir l'historique# - Redimensionner les panes en glissant les borduresset -g mouse on
# -------------------------------------------# NUMÉROTATION : Commencer à 1 (pas 0)# -------------------------------------------# Plus logique : window 1, 2, 3... pane 1, 2, 3...set -g base-index 1setw -g pane-base-index 1
# -------------------------------------------# HISTORIQUE : Plus de lignes de scroll# -------------------------------------------# Par défaut : 2000. On augmente à 50000.set -g history-limit 50000
# -------------------------------------------# COULEURS : Support 256 couleurs# -------------------------------------------set -g default-terminal "screen-256color"
# -------------------------------------------# RACCOURCIS : Division plus intuitive# -------------------------------------------# | pour diviser verticalement (comme un mur vertical)# - pour diviser horizontalement (comme un trait horizontal)# -c "#{pane_current_path}" garde le répertoire courantbind | split-window -h -c "#{pane_current_path}"bind - split-window -v -c "#{pane_current_path}"
# -------------------------------------------# NAVIGATION : Alt+flèches sans préfixe# -------------------------------------------# Plus rapide que C-a flèchesbind -n M-Left select-pane -Lbind -n M-Right select-pane -Rbind -n M-Up select-pane -Ubind -n M-Down select-pane -D
# -------------------------------------------# RECHARGEMENT : C-a r recharge la config# -------------------------------------------bind r source-file ~/.tmux.conf \; display "Config rechargée!"Pour appliquer cette configuration :
# Si tmux n'est pas lancé, il suffit de le lancertmux new -s test
# Si vous êtes déjà dans tmux, rechargez :# Soit avec la commandetmux source-file ~/.tmux.conf
# Soit avec le raccourci (si configuré)# C-a rAprès configuration : les nouveaux raccourcis
Section intitulée « Après configuration : les nouveaux raccourcis »Si vous utilisez la configuration ci-dessus, vos raccourcis changent :
| Avant (défaut) | Après (configuré) |
|---|---|
C-b (préfixe) | C-a (préfixe) |
C-b " (diviser horiz.) | C-a - (plus intuitif) |
C-b % (diviser vert.) | `C-a |
C-b flèches (navigation) | Alt+flèches (sans préfixe !) |
Dépannage : problèmes courants
Section intitulée « Dépannage : problèmes courants »”tmux: command not found”
Section intitulée « ”tmux: command not found” »Cause : tmux n’est pas installé.
Solution : installez-le (voir section Installation).
Je suis perdu, je ne sais pas si je suis dans tmux
Section intitulée « Je suis perdu, je ne sais pas si je suis dans tmux »Solution : regardez en bas de votre écran. S’il y a une barre de statut (généralement verte), vous êtes dans tmux. Sinon, vous n’y êtes pas.
Autre méthode :
echo $TMUXSi la commande affiche un chemin (ex: /tmp/tmux-1000/default), vous êtes dans tmux. Si c’est vide, vous n’y êtes pas.
Comment voir mes sessions existantes ?
Section intitulée « Comment voir mes sessions existantes ? »tmux lsSi vous avez des sessions :
api: 3 windows (created Thu Feb 6 09:00:00 2026)monitoring: 1 windows (created Thu Feb 6 10:00:00 2026)Si vous n’avez pas de sessions :
no server running on /tmp/tmux-1000/defaultJ’ai fermé mon terminal par erreur, j’ai tout perdu ?
Section intitulée « J’ai fermé mon terminal par erreur, j’ai tout perdu ? »*Non -l /home/bob/Projets/test-astro-5/src/content/docs/docs/outils/systeme/tmux.mdx C’est justement le point de tmux. Reconnectez-vous (SSH si c’était distant) et tapez :
tmux attachVous retrouverez votre session.
Mes couleurs sont bizarres / l’affichage est cassé
Section intitulée « Mes couleurs sont bizarres / l’affichage est cassé »Cause : problème de compatibilité terminal.
Solution : ajoutez dans ~/.tmux.conf :
set -g default-terminal "screen-256color"Puis rechargez : tmux source-file ~/.tmux.conf
La souris ne fonctionne pas
Section intitulée « La souris ne fonctionne pas »Solution : ajoutez dans ~/.tmux.conf :
set -g mouse onJe n’arrive pas à scroller pour voir l’historique
Section intitulée « Je n’arrive pas à scroller pour voir l’historique »Solution : entrez en “mode copie” avec C-b [ (ou C-a [ si reconfiguré). Vous pouvez alors scroller avec les flèches ou la molette. Appuyez sur q pour quitter ce mode.
À retenir
Section intitulée « À retenir »Récapitulons les points essentiels de ce guide :
-
tmux découple terminal et connexion : vos processus survivent aux déconnexions SSH, coupures réseau, fermeture de terminal
-
Trois niveaux d’organisation : Session (projet) → Window (onglet) → Pane (division d’écran)
-
Le préfixe est la clé : par défaut
Ctrl+B, toutes les commandes tmux commencent par là -
Les 4 commandes indispensables :
tmux new -s nom— créer une sessionC-b d— se détacher (la session continue)tmux ls— lister les sessionstmux attach -t nom— se rattacher
-
Configuration dans
~/.tmux.conf: personnalisez le préfixe, activez la souris, ajoutez vos raccourcis -
tmux est déjà partout : sur la plupart des serveurs Linux, il est déjà installé