#Sessions
# 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
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
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
# 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
# ~/.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
# Appliquer sans quitter
tmux source-file ~/.tmux.conf
#Automatiser un setup d'opération
# 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
# 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
# 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
# Sauvegarder / restaurer l'état des sessions
# Avec TPM + tmux-resurrect + tmux-continuum
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# ~/.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'
Ctrl-b I installer les plugins
Ctrl-b Ctrl-s sauvegarder la session (resurrect)
Ctrl-b Ctrl-r restaurer
#Sessions partagées et sockets
# 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
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, lancetmux new -s ops.session not found:tmux lspour retrouver le bon nom.- Couleurs cassées : vérifie
TERM(echo $TERM) etdefault-terminal. protocol version mismatch: le client et le serveur tmux n'ont pas la même version.- Terminal figé :
Ctrl-b d, puistmux attach -d -t opsdepuis un autre shell.