objectif
Lancer des tâches longues sans perdre l’état du terminal: créer une session tmux, la quitter et la reprendre plus tard, organiser en fenêtres et panes.
code minimal
# créer une session nommée
tmux new -s dev
# détacher: Ctrl-b puis d
# reprendre
tmux attach -t dev
utilisation
# lister les sessions et leur statut
tmux ls
# créer une session en arrière-plan
tmux new -d -s build 'npm run build'
# renommer la session courante
tmux rename-session -t dev dev-backend
# créer une nouvelle fenêtre et s'y déplacer
tmux new-window -n logs 'tail -F /var/log/app.log'
tmux select-window -t :logs
# splits horizontal et vertical
tmux split-window -h # split horizontal (cote à cote)
tmux split-window -v # split vertical (haut/bas)
# passer d'un pane à l'autre (raccourcis: Ctrl-b puis flèches)
tmux select-pane -L
tmux select-pane -R
tmux select-pane -U
tmux select-pane -D
# synchroniser la saisie sur tous les panes de la fenêtre (toggle)
tmux set-window-option synchronize-panes on
tmux set-window-option synchronize-panes off
# redimensionner un pane (ex: +10 colonnes vers la droite)
tmux resize-pane -R 10
# copier/scroll: entrer en mode copie puis chercher
tmux copy-mode -e
# dans copy-mode: /pattern pour chercher; q pour quitter
# tuer une fenêtre ou une session
tmux kill-window
tmux kill-session -t dev-backend
variante(s) utile(s)
# démarrer tmux si absent, sinon attacher (helper pour .bashrc/.zshrc)
tm() {
local name="${1:-work}"
if tmux has-session -t "$name" 2>/dev/null; then
tmux attach -t "$name"
else
tmux new -s "$name"
fi
}
# layout prédéfini: 3 panes (gauche large, deux à droite)
tmux new -d -s dev
tmux split-window -h
tmux split-window -v
tmux select-pane -L
tmux resize-pane -R 30
tmux attach -t dev
# envoyer une commande à un pane précis (ex: pane 1 de la fenêtre 0)
tmux send-keys -t 0.1 'pytest -q' C-m
# historique plus long et souris active pour scroll/select (session courante)
tmux set -g mouse on
tmux set -g history-limit 50000
notes
- prefix par defaut: Ctrl-b. Détacher avec Ctrl-b puis d. Reattacher avec
tmux attach -t <nom>. - préférez des noms explicites par projet (
dev,ops,build) pour naviguer vite. new -dlance en arrière-plan: utile pour démarrer une tâche et récupérer la session plus tard.- activez
mouse onsi vous aimez scroller et redimensionner à la souris; sinon gardez les raccourcis clavier pour la portabilité.