TMUX — MULTIPLEXEUR DE TERMINAL Client SSH Machine locale ssh user@srv tmux attach SSH serveur tmux (persistant sur hote distant) Session : travail vim panneau 0 logs shell Session : deploy deploy script Session : monitor htop Deconnecte SSH coupe ? Sessions actives Se rattacher Les sessions persistent independamment des connexions SSH

Si vous avez deja perdu du travail a cause d’une connexion SSH interrompue, ou si vous vous etes retrouve a jongler avec plusieurs fenetres de terminal pour administrer un serveur distant, tmux est l’outil qui resout ces deux problemes. Tmux (abreviation de “terminal multiplexer”) vous permet de creer des sessions de terminal persistantes qui survivent aux deconnexions, de diviser un terminal en plusieurs panneaux et de basculer entre des espaces de travail completement separes — le tout depuis une seule connexion SSH. Une fois que vous maitriserez tmux, vous vous demanderez comment vous avez pu vous en passer.

Ce guide couvre tout ce dont vous avez besoin pour devenir productif avec tmux : installation, concepts fondamentaux, gestion des sessions et des panneaux, configuration personnalisee, mode copie et workflows de programmation en binome.


Prerequis

Avant de commencer, vous avez besoin de :

  • Un systeme Linux (Ubuntu, Debian, Fedora, CentOS, Arch ou similaire)
  • Un acces au terminal (local ou via SSH)
  • Des connaissances de base en ligne de commande
  • Un compte utilisateur avec des privileges sudo pour l’installation

Qu’est-ce que Tmux ?

Tmux est un multiplexeur de terminal — un programme qui vous permet d’executer plusieurs sessions de terminal dans une seule fenetre. Il fonctionne selon un modele client-serveur : le serveur tmux s’execute en arriere-plan et gere toutes les sessions, tandis que le client tmux (votre terminal) s’y connecte pour les visualiser et interagir avec elles.

Les avantages principaux de tmux sont :

  • Sessions persistantes — Votre travail survit aux deconnexions SSH, aux coupures reseau et aux fermetures de terminal.
  • Fenetres multiples — Basculez entre des espaces de travail separes (comme des onglets de navigateur pour votre terminal).
  • Panneaux divises — Visualisez et interagissez avec plusieurs programmes cote a cote dans une meme fenetre.
  • Scriptable — Automatisez des dispositions et des workflows complexes via des scripts shell.
  • Collaboration a distance — Plusieurs utilisateurs peuvent se connecter a la meme session simultanement.

Tmux vs GNU Screen

Si vous avez deja utilise GNU Screen, voici comment tmux se compare :

FonctionnaliteTmuxGNU Screen
Divisions verticalesIntegreNecessite un patch ou une version recente
ConfigurationSyntaxe propre et modernePlus complexe
ScriptabiliteExcellenteLimitee
Barre d’etatHautement personnalisableBasique
Developpement actifOuiMinimal
Par defaut sur les systemesMoins courantPlus courant sur les anciens systemes
LicenceISC (permissive)GPL

Les deux outils accomplissent la meme tache fondamentale : des sessions de terminal persistantes et multiplexees. Tmux est generalement le meilleur choix pour les nouveaux utilisateurs grace a sa conception plus propre et sa communaute active.


Installation de Tmux

Tmux est disponible dans les depots par defaut de toutes les distributions Linux majeures.

Ubuntu/Debian :

sudo apt update
sudo apt install -y tmux

Fedora/RHEL/CentOS :

sudo dnf install -y tmux

Arch Linux :

sudo pacman -S tmux

macOS (via Homebrew) :

brew install tmux

Verifiez l’installation :

tmux -V

Vous devriez voir une sortie comme tmux 3.4 ou similaire. Toute version 3.0 ou ulterieure inclut toutes les fonctionnalites abordees dans ce guide.


Concepts Fondamentaux : Sessions, Fenetres et Panneaux

Comprendre la hierarchie de tmux est essentiel avant de l’utiliser efficacement. Il y a trois niveaux :

Session — Le conteneur de niveau superieur. Une session est un espace de travail independant pouvant contenir plusieurs fenetres. Vous pouvez avoir plusieurs sessions en cours d’execution simultanement (par exemple, une pour le developpement, une pour le deploiement, une pour la surveillance).

Fenetre — Une fenetre vit a l’interieur d’une session et occupe tout l’ecran (comme un onglet dans un navigateur). Chaque session peut avoir plusieurs fenetres, et vous pouvez basculer entre elles.

Panneau — Un panneau est une subdivision d’une fenetre. Vous pouvez diviser une fenetre horizontalement ou verticalement pour creer plusieurs panneaux, chacun executant son propre shell ou commande.

serveur tmux
  |
  +-- Session : "travail"
  |     +-- Fenetre 0 : "editeur"
  |     |     +-- Panneau 0 : vim
  |     |     +-- Panneau 1 : terminal
  |     +-- Fenetre 1 : "logs"
  |           +-- Panneau 0 : tail -f /var/log/syslog
  |
  +-- Session : "deploy"
        +-- Fenetre 0 : "principal"
              +-- Panneau 0 : ssh serveur-production

La touche prefixe est la facon d’indiquer a tmux que vous etes sur le point de lancer une commande plutot que de taper du texte. Le prefixe par defaut est Ctrl+b. Vous appuyez sur Ctrl+b, relacher les deux touches, puis appuyez sur la touche de commande. Par exemple, Ctrl+b c signifie : appuyez sur Ctrl+b, relachez, puis appuyez sur c pour creer une nouvelle fenetre.


Gestion des Sessions

Les sessions sont le fondement de tmux. Voici les commandes essentielles de session :

Creer des Sessions

# Demarrer une nouvelle session avec un nom auto-genere
tmux

# Demarrer une nouvelle session nommee (recommande)
tmux new -s travail

# Demarrer une nouvelle session et executer une commande specifique
tmux new -s logs "tail -f /var/log/syslog"

Nommez toujours vos sessions. Lorsque vous avez plusieurs sessions en cours, les noms facilitent leur identification et le basculement entre elles.

Se Detacher d’une Session

Appuyez sur Ctrl+b d pour vous detacher de la session en cours. La session continue de fonctionner en arriere-plan avec tous les processus intacts.

# Vous pouvez egalement vous detacher depuis la ligne de commande dans tmux
tmux detach

Lister les Sessions

# Lister toutes les sessions en cours
tmux ls

# Exemple de sortie :
# deploy: 1 windows (created Mon Jan 20 09:15:22 2026)
# travail: 3 windows (created Mon Jan 20 08:30:15 2026) (attached)

Se Rattacher a une Session

# Se rattacher a la session la plus recente
tmux attach

# Se rattacher a une session nommee specifique
tmux attach -t travail

# Forme abregee
tmux a -t travail

Supprimer des Sessions

# Supprimer une session specifique
tmux kill-session -t deploy

# Supprimer toutes les sessions sauf la session en cours
tmux kill-session -a

# Supprimer le serveur tmux entierement (detruit toutes les sessions)
tmux kill-server

Basculer Entre les Sessions

Depuis l’interieur de tmux :

  • Ctrl+b s — Lister toutes les sessions et en selectionner une interactivement.
  • Ctrl+b ( — Passer a la session precedente.
  • Ctrl+b ) — Passer a la session suivante.

Gestion des Fenetres

Les fenetres sont comme des onglets au sein d’une session. Chaque fenetre s’execute independamment et occupe toute la surface du terminal.

Creer et Naviguer entre les Fenetres

# Creer une nouvelle fenetre
Ctrl+b c

# Renommer la fenetre en cours
Ctrl+b ,

# Passer a une fenetre par son numero
Ctrl+b 0    # Passer a la fenetre 0
Ctrl+b 1    # Passer a la fenetre 1

# Passer a la fenetre suivante/precedente
Ctrl+b n    # Fenetre suivante
Ctrl+b p    # Fenetre precedente

# Lister toutes les fenetres et selectionner interactivement
Ctrl+b w

Fermer des Fenetres

# Fermer la fenetre en cours (ferme tous les panneaux qu'elle contient)
Ctrl+b &

# Ou simplement quitter le shell en cours dans la fenetre
exit

Astuce : La barre d’etat en bas affiche toutes les fenetres de la session en cours. La fenetre active est marquee d’un asterisque (*). Renommer les fenetres avec Ctrl+b , vous aide a savoir a quoi sert chaque fenetre.


Gestion des Panneaux

Les panneaux vous permettent de diviser une fenetre en plusieurs terminaux. C’est l’une des fonctionnalites les plus puissantes de tmux.

Diviser les Panneaux

# Division horizontale (haut/bas)
Ctrl+b "

# Division verticale (gauche/droite)
Ctrl+b %
# Se deplacer entre les panneaux avec les touches flechees
Ctrl+b Up
Ctrl+b Down
Ctrl+b Left
Ctrl+b Right

# Cycler entre les panneaux
Ctrl+b o

# Sauter a un panneau specifique par son numero
Ctrl+b q    # Affiche les numeros des panneaux, puis appuyez sur le numero

Redimensionner les Panneaux

# Redimensionner dans la direction de la touche flechee
Ctrl+b Ctrl+Up
Ctrl+b Ctrl+Down
Ctrl+b Ctrl+Left
Ctrl+b Ctrl+Right

# Ou utiliser la commande resize-pane
# (dans l'invite de commande tmux : Ctrl+b :)
resize-pane -D 5    # Vers le bas de 5 lignes
resize-pane -U 5    # Vers le haut de 5 lignes
resize-pane -L 10   # Vers la gauche de 10 colonnes
resize-pane -R 10   # Vers la droite de 10 colonnes

Dispositions et Operations sur les Panneaux

# Alterner entre les dispositions de panneaux
Ctrl+b Space

# Echanger les panneaux
Ctrl+b {    # Echanger avec le panneau precedent
Ctrl+b }    # Echanger avec le panneau suivant

# Convertir un panneau en fenetre independante
Ctrl+b !

# Fermer le panneau en cours
Ctrl+b x

# Activer le zoom du panneau (plein ecran pour un seul panneau)
Ctrl+b z

La fonction de zoom (Ctrl+b z) est particulierement utile. Elle agrandit temporairement un panneau pour occuper toute la fenetre. Appuyez a nouveau sur Ctrl+b z pour restaurer la disposition originale.


Personnaliser tmux.conf

Tmux lit sa configuration depuis ~/.tmux.conf. Une configuration bien ajustee ameliore considerablement l’ergonomie. Creez le fichier s’il n’existe pas :

touch ~/.tmux.conf

Changer la Touche Prefixe

Beaucoup d’utilisateurs remappent le prefixe de Ctrl+b a Ctrl+a (plus proche de la rangee d’accueil et identique a GNU Screen) :

# Changer le prefixe de Ctrl+b a Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

Activer le Support de la Souris

# Activer le support de la souris
set -g mouse on

Ameliorer les Couleurs et les Parametres du Terminal

# Definir un terminal 256 couleurs
set -g default-terminal "screen-256color"

# Activer le support des couleurs vraies
set -ga terminal-overrides ",xterm-256color:Tc"

Personnaliser la Barre d’Etat

# Position de la barre d'etat
set -g status-position bottom

# Couleurs de la barre d'etat
set -g status-style "bg=#1a1b26,fg=#a9b1d6"

# Cote gauche : nom de la session
set -g status-left "#[fg=#06b6d4,bold] #S "
set -g status-left-length 30

# Cote droit : date et heure
set -g status-right "#[fg=#a9b1d6] %Y-%m-%d %H:%M "

# Format de l'etat des fenetres
setw -g window-status-format " #I:#W "
setw -g window-status-current-format "#[fg=#06b6d4,bold] #I:#W "

Valeurs par Defaut Judicieuses

# Commencer la numerotation des fenetres a 1 (pas 0)
set -g base-index 1
setw -g pane-base-index 1

# Renumeroter les fenetres quand l'une est fermee
set -g renumber-windows on

# Augmenter le tampon de defilement
set -g history-limit 50000

# Reduire le delai d'echappement (important pour les utilisateurs de vim)
set -sg escape-time 0

# Recharger le fichier de configuration avec Ctrl+a r
bind r source-file ~/.tmux.conf \; display-message "Configuration rechargee"

Division des Panneaux Simplifiee

# Diviser les panneaux avec | et -
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

Apres avoir modifie ~/.tmux.conf, rechargez-le sans redemarrer tmux :

# Depuis l'interieur de tmux, appuyez sur Ctrl+b : et tapez :
source-file ~/.tmux.conf

# Ou si vous avez ajoute le raccourci ci-dessus :
Ctrl+a r

Exemple Complet de tmux.conf

Voici une configuration de demarrage complete combinant tous les elements ci-dessus :

# ~/.tmux.conf - Configuration de demarrage

# Remapper le prefixe a Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# Support de la souris
set -g mouse on

# Terminal et couleurs
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",xterm-256color:Tc"

# Commencer la numerotation a 1
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on

# Tampon de defilement
set -g history-limit 50000

# Pas de delai d'echappement
set -sg escape-time 0

# Division facile des panneaux
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# Rechargement facile
bind r source-file ~/.tmux.conf \; display-message "Configuration rechargee"

# Barre d'etat
set -g status-position bottom
set -g status-style "bg=#1a1b26,fg=#a9b1d6"
set -g status-left "#[fg=#06b6d4,bold] #S "
set -g status-right "#[fg=#a9b1d6] %Y-%m-%d %H:%M "
setw -g window-status-format " #I:#W "
setw -g window-status-current-format "#[fg=#06b6d4,bold] #I:#W "

Mode Copie et Defilement

Par defaut, tmux capture la sortie du terminal dans un tampon de defilement. Vous pouvez entrer en mode copie pour faire defiler la sortie precedente, rechercher du texte et copier des selections.

Entrer et Utiliser le Mode Copie

# Entrer en mode copie
Ctrl+b [

# Naviguer en mode copie
Arrow keys    # Deplacer le curseur
Page Up       # Defiler d'une page vers le haut
Page Down     # Defiler d'une page vers le bas
g             # Aller au debut du tampon
G             # Aller a la fin du tampon

# Rechercher en mode copie
/             # Rechercher vers l'avant
?             # Rechercher vers l'arriere
n             # Correspondance suivante
N             # Correspondance precedente

# Quitter le mode copie
q

Copier du Texte

Avec les raccourcis par defaut de style emacs :

# En mode copie :
Ctrl+Space    # Demarrer la selection
Alt+w         # Copier la selection dans le tampon tmux

# Coller le tampon
Ctrl+b ]

Pour utiliser les raccourcis de style vi (recommande pour les utilisateurs de vim), ajoutez a votre ~/.tmux.conf :

# Mode copie vi
setw -g mode-keys vi

# Raccourcis de copie style vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel

Copier vers le Presse-papiers Systeme

Pour integrer le tampon de copie de tmux avec le presse-papiers de votre systeme, installez xclip ou xsel et ajoutez :

# Copier vers le presse-papiers systeme (Linux avec xclip)
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -selection clipboard"

# Copier vers le presse-papiers systeme (macOS)
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "pbcopy"

Programmation en Binome avec Tmux

L’une des utilisations les plus pratiques de tmux est la collaboration en temps reel. Lorsque deux utilisateurs se connectent a la meme session tmux, ils voient et peuvent interagir avec le meme terminal simultanement.

Session Partagee Basique

# L'utilisateur 1 cree une session sur le serveur partage
tmux new -s pairing

# L'utilisateur 2 se connecte en SSH au meme serveur et s'attache
tmux attach -t pairing

Les deux utilisateurs partagent maintenant la meme vue et peuvent taper des commandes. C’est efficace mais signifie que les deux utilisateurs sont bloques sur la meme fenetre et le meme panneau.

Fenetres Independantes avec Session Partagee

Pour plus de flexibilite, l’utilisateur 2 peut creer une session groupee qui partage les memes fenetres mais permet une visualisation independante :

# L'utilisateur 2 rejoint avec une session groupee
tmux new -s utilisateur2 -t pairing

Maintenant les deux utilisateurs partagent le meme ensemble de fenetres, mais chacun peut visualiser une fenetre differente de facon independante.

Bonnes Pratiques pour la Programmation en Binome

  • Nommez vos sessions de facon descriptive pour que les deux utilisateurs sachent a quelle session se connecter.
  • Communiquez sur qui est en train de taper. La saisie simultanee des deux utilisateurs peut etre derotuante.
  • Utilisez la fonction de zoom (Ctrl+b z) lorsqu’un utilisateur a besoin de se concentrer sur un panneau specifique.
  • Definissez une taille de terminal plus grande — tmux redimensionne a la taille du plus petit client connecte par defaut.

Tableau de Reference des Raccourcis Essentiels

Voici une reference complete des raccourcis tmux les plus importants (avec le prefixe par defaut Ctrl+b) :

RaccourciAction
Sessions
tmux new -s nomCreer une nouvelle session nommee
tmux lsLister toutes les sessions
tmux attach -t nomSe rattacher a une session nommee
tmux kill-session -t nomSupprimer une session nommee
Ctrl+b dSe detacher de la session en cours
Ctrl+b sLister et basculer entre les sessions
Ctrl+b $Renommer la session en cours
Fenetres
Ctrl+b cCreer une nouvelle fenetre
Ctrl+b ,Renommer la fenetre en cours
Ctrl+b nFenetre suivante
Ctrl+b pFenetre precedente
Ctrl+b 0-9Passer a une fenetre par son numero
Ctrl+b wLister et selectionner les fenetres
Ctrl+b &Fermer la fenetre en cours
Panneaux
Ctrl+b "Diviser le panneau horizontalement
Ctrl+b %Diviser le panneau verticalement
Ctrl+b FlecheNaviguer entre les panneaux
Ctrl+b oCycler entre les panneaux
Ctrl+b zActiver le zoom du panneau
Ctrl+b xFermer le panneau en cours
Ctrl+b !Convertir le panneau en fenetre
Ctrl+b { / }Echanger les panneaux
Ctrl+b SpaceCycler les dispositions de panneaux
Mode Copie
Ctrl+b [Entrer en mode copie
Ctrl+b ]Coller le tampon
qQuitter le mode copie
Autres
Ctrl+b :Ouvrir l’invite de commande
Ctrl+b tAfficher l’horloge
Ctrl+b ?Lister tous les raccourcis clavier

Depannage

Tmux Introuvable Apres l’Installation

Si tmux est introuvable apres l’installation, votre shell a peut-etre besoin d’un rafraichissement du chemin :

hash -r
# ou demarrer une nouvelle session de shell
exec bash

Les Couleurs Sont Incorrectes dans Tmux

Assurez-vous que votre terminal et tmux s’accordent sur le support des couleurs :

# Verifier la variable TERM de votre terminal
echo $TERM

# Ajouter a ~/.tmux.conf
set -g default-terminal "screen-256color"

Sessions Tmux Imbriquees

Si vous vous connectez en SSH a un serveur qui lance automatiquement tmux, vous pouvez vous retrouver avec tmux dans tmux. La session interne capture la touche prefixe.

Solution : Utilisez un prefixe different pour la session interne, ou envoyez la touche prefixe a la session interne en appuyant deux fois sur le prefixe :

# Envoyer le prefixe a la session tmux interne
Ctrl+b Ctrl+b

Le Defilement a la Souris Ne Fonctionne Pas

Si le defilement a la souris ne fonctionne pas, assurez-vous que le mode souris est active :

# Dans ~/.tmux.conf
set -g mouse on

La Session a Disparu Apres le Redemarrage

Les sessions tmux ne survivent pas a un redemarrage du systeme par defaut. Pour persister les sessions entre les redemarrages, utilisez le plugin tmux-resurrect :

# Installer le gestionnaire de plugins tmux (TPM)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Ajouter a ~/.tmux.conf
set -g @plugin 'tmux-plugins/tmux-resurrect'
run '~/.tmux/plugins/tpm/tpm'

# Sauvegarder la session : Ctrl+b Ctrl+s
# Restaurer la session : Ctrl+b Ctrl+r

L’Integration du Presse-papiers Ne Fonctionne Pas via SSH

Lorsque vous utilisez tmux via SSH, copier vers votre presse-papiers local necessite une configuration supplementaire. Utilisez SSH avec le transfert X11 ou configurez les sequences d’echappement OSC 52 :

# Activer le presse-papiers OSC 52 dans tmux.conf
set -g set-clipboard on

Resume

Tmux est un outil essentiel pour quiconque travaille avec des serveurs distants ou souhaite un workflow de terminal plus efficace. Ses sessions persistantes vous protegent des coupures de connexion, sa gestion des fenetres et des panneaux vous permet d’organiser des taches complexes, et ses capacites de scripting permettent des environnements de developpement reproductibles.

Les points cles de ce guide :

  • Les sessions persistent meme lorsque votre connexion SSH se coupe — executez simplement tmux attach pour reprendre.
  • Les fenetres et les panneaux vous permettent d’organiser plusieurs taches au sein d’un seul terminal.
  • La configuration personnalisee via ~/.tmux.conf permet d’adapter tmux parfaitement a votre workflow.
  • Le mode copie vous offre des capacites completes de defilement et de recherche.
  • La programmation en binome est aussi simple que deux utilisateurs se connectant a la meme session.

Commencez par les bases : creez une session nommee, divisez quelques panneaux, detachez-vous et rattachez-vous. A mesure que les raccourcis deviennent des reflexes, vous construirez naturellement des workflows plus complexes.

Tmux se combine bien avec une configuration de serveur securisee. Si vous n’avez pas encore renforce votre configuration SSH, lisez notre guide sur le Durcissement SSH : 12 Etapes pour Securiser Votre Serveur Linux. Pour un apercu plus large de la securite des serveurs, consultez la Checklist de Securite Serveur Linux : 20 Etapes Essentielles.