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 # Arch2. Commandes
| Commande | Effet |
|---|---|
tmux new -s labo | Nouvelle session nommée labo |
tmux ls | Lister les sessions |
tmux attach -t labo (ou tmux a -t labo) | Se rattacher |
tmux kill-session -t labo | Fermer une session |
Les raccourcis commencent par le préfixe Ctrl+b, relâché, puis la touche :
| Raccourci | Effet |
|---|---|
Ctrl+b d | Détacher (la session continue) |
Ctrl+b c | Nouvelle fenêtre |
Ctrl+b n / p / 0-9 | Fenêtre suivante / précédente / numéro |
Ctrl+b , | Renommer la fenêtre |
Ctrl+b % | Couper verticalement |
Ctrl+b " | Couper horizontalement |
Ctrl+b flèches | Changer de panneau |
Ctrl+b z | Zoom sur le panneau (re-taper pour revenir) |
Ctrl+b x | Fermer 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).