O05 - tmux : des terminaux qui survivent à la déconnexion

Objectif

Garder un programme lancé sur un serveur même après avoir fermé SSH, et découper un terminal en plusieurs panneaux.


1. Principe

flowchart LR
  T["Ton terminal / SSH"] -->|"tmux attach"| S["Session tmux 'labo'<br/>(tourne sur la machine)"]
  S --> F1["Fenêtre 0 : htop"]
  S --> F2["Fenêtre 1 : logs"]
  F2 --> P1["Panneau gauche : journalctl -f"]
  F2 --> P2["Panneau droit : shell"]
  T -. "Ctrl+b d (détacher) ou coupure SSH" .-> S

Si la connexion SSH coupe, la session continue ; on s’y rattache plus tard.

sudo apt install tmux        # Pop!_OS / Debian   |   sudo pacman -S tmux   # Arch

2. Commandes

CommandeEffet
tmux new -s laboNouvelle session nommée labo
tmux lsLister les sessions
tmux attach -t labo (ou tmux a -t labo)Se rattacher
tmux kill-session -t laboFermer une session

Les raccourcis commencent par le préfixe Ctrl+b, relâché, puis la touche :

RaccourciEffet
Ctrl+b dDétacher (la session continue)
Ctrl+b cNouvelle fenêtre
Ctrl+b n / p / 0-9Fenêtre suivante / précédente / numéro
Ctrl+b ,Renommer la fenêtre
Ctrl+b %Couper verticalement
Ctrl+b "Couper horizontalement
Ctrl+b flèchesChanger de panneau
Ctrl+b zZoom sur le panneau (re-taper pour revenir)
Ctrl+b xFermer le panneau
Ctrl+b [Mode défilement (q pour sortir)

3. Petite config ~/.tmux.conf

# Souris : clic pour changer de panneau, molette pour défiler
set -g mouse on
# Numéroter les fenêtres à partir de 1
set -g base-index 1
# Découpes plus intuitives
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Recharger la config : Ctrl+b r
bind r source-file ~/.tmux.conf \; display "Config rechargée"

4. Cas d’usage BTS

  • Lancer une longue installation sur une VM par SSH sans craindre la coupure.
  • Faire tourner ton bot Discord en arrière-plan sur un serveur (mieux encore : un service systemd → L05 - Services, processus et journaux).
  • Surveiller plusieurs journaux en même temps (Squid + Apache + pare-feu).

Voir aussi