LNX Outil · Linux

tmux

Sessions, fenêtres et panneaux persistants : le multiplexeur indispensable en SSH et en pentest.

Débutant / 1 min de lecture / maj 11 nov 2026 / 5 tags
raw domaine signaler
Index des sheets

#Sessions

bash
# Créer ou rattacher une session (le réflexe à retenir)
tmux new -A -s ops

# Nouvelle session nommée
tmux new -s recon

# Lister, rattacher, détacher
tmux ls
tmux attach -t recon
tmux attach -d -t recon      # détache les autres clients

# Tuer une session / tout le serveur
tmux kill-session -t recon
tmux kill-server

Depuis une session : Ctrl-b puis d pour détacher. La session continue de tourner après la fermeture du SSH.

#Fenêtres

Préfixe par défaut : Ctrl-b.

Touche Action
c Nouvelle fenêtre
, Renommer
n / p Fenêtre suivante / précédente
0…9 Aller à la fenêtre numérotée
w Liste des fenêtres
& Fermer la fenêtre
. Déplacer la fenêtre
f Chercher une fenêtre
s Liste des sessions
$ Renommer la session

#Panneaux

text
Ctrl-b %     split vertical
Ctrl-b "     split horizontal
Ctrl-b ←↑↓→  changer de panneau
Ctrl-b o     panneau suivant
Ctrl-b z     zoom plein écran (toggle)
Ctrl-b x     fermer le panneau
Ctrl-b !     extraire le panneau dans une fenêtre
Ctrl-b { }   échanger avec le panneau précédent / suivant
Ctrl-b space changer de disposition
Ctrl-b q     afficher les numéros

Redimensionner : Ctrl-b puis Ctrl + flèches (ou Alt + flèches selon la configuration). Les panneaux conservent leur répertoire courant avec split-window -c "#{pane_current_path}".

#Copier, chercher, scroller

text
Ctrl-b [     entrer en mode copie
Espace       commencer la sélection
Entrée       copier
Ctrl-b ]     coller
/            chercher vers le bas
?            chercher vers le haut
n / N        résultat suivant / précédent
q            quitter le mode copie
bash
# Activer la souris et le scrollback confortable
tmux set -g mouse on
tmux set -g history-limit 50000

# Mode vi pour la copie
tmux setw -g mode-keys vi

#Config minimale

bash
# ~/.tmux.conf
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -g history-limit 50000
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -g escape-time 0
set -g focus-events on
setw -g mode-keys vi

# Thème sobre, proche de sheet.sec
set -g status-style "bg=#050806,fg=#7dffb2"
set -g status-left "[#S] "
set -g status-right "%H:%M %d-%b-%y "
set -g window-status-current-style "fg=#050806,bg=#7dffb2"

# Splits dans le répertoire courant
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# Recharger la config avec Ctrl-b r
bind r source-file ~/.tmux.conf \; display-message "tmux: config reloaded"

# Naviguer avec hjkl
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bash
# Appliquer sans quitter
tmux source-file ~/.tmux.conf

#Automatiser un setup d'opération

bash
# Créer une session avec trois panneaux prêts à l'emploi
tmux new -d -s op
tmux split-window -h -t op
tmux split-window -v -t op:0.1
tmux send-keys -t op:0.0 'nc -lvnp 4444' C-m
tmux send-keys -t op:0.1 'ffuf -u https://target/FUZZ -w words.txt' C-m
tmux send-keys -t op:0.2 'tail -f ~/notes/op.log' C-m
tmux attach -t op
bash
# Envoyer une commande dans un panneau sans s'attacher
tmux send-keys -t op:0.0 'whoami' C-m

# Capturer l'écran ou tout le scrollback
tmux capture-pane -p -t op:0 > screen.txt
tmux capture-pane -pS -5000 -t op:0 > scrollback.txt

# Journaliser tout ce qui passe dans un panneau
tmux pipe-pane -o -t op:0 'cat >> ~/notes/op.log'
tmux pipe-pane -t op:0        # arrêter
bash
# Suivre les panneaux actifs de toutes les sessions
tmux list-panes -a -F '#{session_name}:#{window_index}.#{pane_index} #{pane_current_command}'

#Persistance et reprise

bash
# Sauvegarder / restaurer l'état des sessions
# Avec TPM + tmux-resurrect + tmux-continuum
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
bash
# ~/.tmux.conf
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
run '~/.tmux/plugins/tpm/tpm'
text
Ctrl-b I     installer les plugins
Ctrl-b Ctrl-s sauvegarder la session (resurrect)
Ctrl-b Ctrl-r restaurer

#Sessions partagées et sockets

bash
# Un serveur tmux séparé pour un lab ou un client
tmux -L lab new -s ops

# Socket explicite (contrôle des permissions)
tmux -S /tmp/ops.sock new -s ops
chmod 700 /tmp/ops.sock
tmux -S /tmp/ops.sock attach -t ops

#Dépannage

bash
tmux ls
tmux attach -t ops
tmux detach-client -s ops
tmux kill-session -t ops

# Connaître les touches et options effectives
tmux list-keys
tmux show-options -g
tmux list-commands
  • no server running : aucune session active, lance tmux new -s ops.
  • session not found : tmux ls pour retrouver le bon nom.
  • Couleurs cassées : vérifie TERM (echo $TERM) et default-terminal.
  • protocol version mismatch : le client et le serveur tmux n'ont pas la même version.
  • Terminal figé : Ctrl-b d, puis tmux attach -d -t ops depuis un autre shell.
INDEX // 42 FICHES // 12 DOMAINES LOCAL SEARCH
↑↓ naviguer ↵ ouvrir esc fermer sheet.sec / find
Raccourcis clavier
Recherche globale /ou⌘K
Naviguer dans les résultats ↑↓
Ouvrir le résultat actif ↵
Fermer une fenêtre esc
Accueil gh
Tous les sheets gs
Fiche aléatoire gr
Cette fenêtre ?