taraskuzio.com

Tmux : le guide du multiplexeur de terminal

Featured image of post Tmux : le guide du multiplexeur de terminal

Terminal

Découvrez tmux, le multiplexeur de terminal indispensable pour garder ses sessions, organiser ses fenêtres et ne plus jamais perdre son travail.

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+b puis ? à 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

RaccourciAction
Ctrl+b puis sLister et changer de session interactivement
Ctrl+b puis dDé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 LRevenir à la dernière session active

Gérer les fenêtres

Par défaut, le préfixe tmux est Ctrl+b.

RaccourciAction
Ctrl+b puis cCréer une nouvelle fenêtre
Ctrl+b puis nFenêtre suivante
Ctrl+b puis pFenêtre précédente
Ctrl+b puis wLister 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-9Aller à la fenêtre numéro N

Gérer les panneaux

RaccourciAction
Ctrl+b puis "Diviser horizontalement
Ctrl+b puis %Diviser verticalement
Ctrl+b puis ↑ ↓ ← →Naviguer entre les panneaux
Ctrl+b puis oCycle entre les panneaux
Ctrl+b puis xFermer le panneau courant
Ctrl+b puis zZoomer/dézoomer le panneau courant
Ctrl+b puis espaceChanger 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

RaccourciAction
Ctrl+b dDétacher la session
Ctrl+b cNouvelle fenêtre
Ctrl+b nFenêtre suivante
Ctrl+b pFenêtre précédente
Ctrl+b wChoisir une fenêtre
Ctrl+b "Panneau horizontal
Ctrl+b %Panneau vertical
Ctrl+b ↑↓←→Changer de panneau
Ctrl+b xFermer le panneau
Ctrl+b zZoomer le panneau
Ctrl+b tHorloge (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.