Credit : Illustration backtotheweb.fr
Utiliser tmux pour gerer ses sessions terminal
Utiliser tmux pour gerer ses sessions terminal
tmux (Terminal Multiplexer) est un outil indispensable pour tout administrateur systeme. Il permet de maintenir des sessions persistantes, diviser son ecran et travailler sur plusieurs taches simultanement.
Installation
# Debian/Ubuntu
sudo apt install tmux
# CentOS/RHEL
sudo dnf install tmux
# macOS
brew install tmux
Concepts fondamentaux
tmux s'organise en trois niveaux :
- Session : un espace de travail independant
- Window (fenetre) : un onglet dans une session
- Pane (panneau) : une subdivision d'une fenetre
Toutes les commandes tmux commencent par le prefixe Ctrl+b (note C-b).
Gerer les sessions
# Creer une session nommee
tmux new -s serveur
# Se detacher (depuis tmux)
C-b d
# Lister les sessions
tmux ls
# Se rattacher a une session
tmux attach -t serveur
# Tuer une session
tmux kill-session -t serveur
L'interet majeur : si votre connexion SSH se coupe, la session tmux continue de tourner sur le serveur. Vous la retrouvez en vous reconnectant.
Gerer les fenetres (windows)
C-b c Creer une nouvelle fenetre
C-b , Renommer la fenetre courante
C-b n Fenetre suivante
C-b p Fenetre precedente
C-b 0-9 Aller a la fenetre N
C-b w Liste des fenetres
C-b & Fermer la fenetre
Gerer les panneaux (panes)
C-b % Diviser verticalement
C-b " Diviser horizontalement
C-b o Basculer entre panneaux
C-b fleches Naviguer entre panneaux
C-b z Zoom sur un panneau (toggle)
C-b x Fermer le panneau courant
C-b { Deplacer le panneau a gauche
C-b } Deplacer le panneau a droite
Pour redimensionner un panneau, maintenez C-b puis appuyez sur les fleches.
Configurer tmux
Creez le fichier ~/.tmux.conf pour personnaliser tmux :
# Changer le prefixe en Ctrl+a (plus ergonomique)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
> **Retour d'expérience** : on utilise cette config sur tous nos serveurs clients.
# Activer la souris
set -g mouse on
# Commencer la numerotation a 1
set -g base-index 1
setw -g pane-base-index 1
# Recharger la config facilement
bind r source-file ~/.tmux.conf \; display "Config rechargee"
# Diviser avec des touches intuitives
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
# Navigation vim-like
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Historique plus long
set -g history-limit 50000
# Barre de statut
set -g status-bg colour235
set -g status-fg white
set -g status-right '#H | %d/%m %H:%M'
Rechargez avec tmux source-file ~/.tmux.conf ou le raccourci C-a r defini ci-dessus.
Mode copie
tmux dispose d'un mode copie pour faire defiler et copier du texte :
C-b [ Entrer en mode copie
q Quitter le mode copie
Espace Commencer la selection
Entree Copier la selection
C-b ] Coller
Activez le mode vi pour la navigation :
setw -g mode-keys vi
Script de demarrage
Automatisez votre environnement de travail :
#!/bin/bash
tmux new-session -d -s dev
tmux send-keys -t dev 'cd /var/www && vim' C-m
tmux split-window -h -t dev
tmux send-keys -t dev 'tail -f /var/log/nginx/error.log' C-m
tmux split-window -v -t dev
tmux send-keys -t dev 'htop' C-m
tmux select-pane -t dev:0.0
tmux attach -t dev
tmux est un outil qui change radicalement votre productivite en terminal. Investissez du temps pour apprendre les raccourcis, vous ne pourrez plus vous en passer.
Testé sur Debian 12/13 chez IONOS. Adaptez selon votre config.