Comment Installer et Utiliser tmux sur Ubuntu : Un Guide Complet 2025
Introduction
tmux (Terminal Multiplexer) est un outil puissant en ligne de commande qui améliore votre expérience terminal sur Ubuntu et d'autres systèmes de type Unix. Il vous permet de créer plusieurs sessions terminal dans une seule fenêtre, ce qui en fait un outil inestimable pour les développeurs, les administrateurs système et les utilisateurs avancés.
Qu'est-ce que tmux ?
tmux est un multiplexeur de terminal qui vous permet de :
- Créer plusieurs sessions terminal dans une seule fenêtre
- Garder les programmes en cours d'exécution même après avoir été déconnecté de SSH
- Diviser votre fenêtre terminal en plusieurs panneaux
- Passer d'une session terminal à une autre sans effort
- Partager des sessions terminal avec d'autres utilisateurs
Avantages de l'utilisation de tmux
Lorsque vous travaillez sur des serveurs Ubuntu ou des machines locales, tmux offre plusieurs avantages convaincants :
-
Sessions Persistantes : Votre travail continue de s'exécuter même si votre connexion SSH se déconnecte ou si vous fermez accidentellement votre terminal. Il vous suffit de vous rattacher à votre session, et tout sera exactement comme vous l'avez laissé.
-
Productivité Améliorée : Travaillez avec plusieurs fenêtres terminal simultanément sans encombrer votre bureau. Vous pouvez facilement passer d'une tâche à l'autre tout en maintenant une vue claire de votre travail.
-
Collaboration Améliorée : Partagez vos sessions terminal avec des membres de l'équipe, ce qui est parfait pour la programmation en binôme ou le dépannage ensemble.
Exigences Systèmes
Avant d'installer tmux sur Ubuntu, assurez-vous que votre système répond à ces exigences minimales :
- Ubuntu 18.04 LTS ou version ultérieure
- Familiarité de base avec le terminal
- Droits système suffisants (accès sudo) pour l'installation
- Au moins 50 Mo d'espace disque libre
Méthodes d'Installation
Il existe deux méthodes principales pour installer tmux sur Ubuntu : en utilisant le gestionnaire de paquets apt ou en le construisant à partir de la source. Explorons les deux options en détail.
Utilisation du Gestionnaire de Paquets apt
La manière la plus simple et recommandée d'installer tmux est via le gestionnaire de paquets d'Ubuntu, apt. Voici comment procéder :
# Mettre à jour la liste des paquets
sudo apt update
# Installer tmux
sudo apt install tmux -y
# Vérifier l'installation
tmux -V
Cette méthode gère automatiquement les dépendances et fournit une version stable de tmux qui a été testée avec votre version d'Ubuntu.
Construction à partir de la Source
Pour les utilisateurs qui ont besoin des dernières fonctionnalités ou de versions spécifiques, la construction à partir de la source est une option :
# Installer les dépendances requises
sudo apt install git automake build-essential libevent-dev ncurses-dev
# Cloner le code source
git clone https://github.com/tmux/tmux.git
cd tmux
# Construire et installer
sh autogen.sh
./configure
make
sudo make install
Comparaison des Versions
Comparons les différentes méthodes d'installation :
-
Installation APT :
- Avantages : Facile à installer et à mettre à jour, version stable, gestion automatique des dépendances
- Inconvénients : Peut ne pas être la dernière version
- Version actuelle dans les dépôts Ubuntu : Typiquement 1-2 versions derrière la dernière
-
Installation à partir de la Source :
- Avantages : Accès aux dernières fonctionnalités, possibilité de personnaliser la compilation
- Inconvénients : Nécessite une gestion manuelle des dépendances, processus d'installation plus complexe
- Dernière version disponible : Toujours à jour avec le dépôt officiel
Après l'installation, vous pouvez vérifier votre version de tmux en exécutant :
tmux -V
Configuration de Base
Le comportement de tmux peut être personnalisé via son fichier de configuration et divers paramètres. Explorons comment configurer et personnaliser tmux pour répondre à vos besoins.
Emplacement du Fichier de Configuration
tmux recherche son fichier de configuration dans votre répertoire personnel :
# Créer votre fichier de configuration tmux
touch ~/.tmux.conf
# Ouvrez-le avec votre éditeur de texte préféré
nano ~/.tmux.conf
Configurations Essentielles
Voici quelques configurations couramment utilisées pour améliorer votre expérience avec tmux :
# Changer la touche de préfixe en Ctrl+a (plus pratique que le Ctrl+b par défaut)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# Activer le support de la souris
set -g mouse on
# Commencer la numérotation des fenêtres à 1 (au lieu de 0)
set -g base-index 1
# Définir des touches de division de fenêtre plus faciles
bind-key v split-window -h
bind-key h split-window -v
# Définir des touches de mouvement de fenêtre plus faciles
bind -n M-Gauche select-pane -L
bind -n M-Droite select-pane -R
bind -n M-Haut select-pane -U
bind -n M-Bas select-pane -D
# Améliorer les couleurs
set -g default-terminal "screen-256color"
# Définir la taille du tampon de défilement
set -g history-limit 10000
Personnalisation des Raccourcis Clavier
Vous pouvez personnaliser les raccourcis clavier pour rendre tmux plus intuitif et efficace pour votre flux de travail :
-
Syntaxe de Base des Raccourcis Clavier :
bind-key key command bind key command
-
Raccourcis Personnalisés Courants :
# Recharger le fichier de configuration bind r source-file ~/.tmux.conf \; display "Configuration rechargée !" # Cyclage rapide des panneaux unbind ^A bind ^A select-pane -t :.+ # Commandes de division plus intuitives bind | split-window -h bind - split-window -v
Après avoir apporté des modifications à votre fichier de configuration, vous pouvez soit :
- Redémarrer tmux pour que les changements prennent effet
- Ou recharger la configuration pendant que tmux est en cours d'exécution en appuyant sur
prefix
+r
(si vous avez ajouté le raccourci de rechargement ci-dessus)
Commencer avec tmux
Après l'installation et la configuration de base, apprenons à utiliser tmux efficacement. Cette section couvre les commandes et opérations essentielles dont vous aurez besoin pour un usage quotidien.
Démarrer Votre Première Session
Voici les commandes de base pour démarrer et gérer des sessions tmux :
# Démarrer une nouvelle session
tmux
# Démarrer une nouvelle session nommée
tmux new -s ma_session
# Lister toutes les sessions
tmux ls
# Se rattacher à une session existante
tmux attach -t ma_session
# Se détacher de la session actuelle (à l'intérieur de tmux)
# Appuyez sur la touche de préfixe (Ctrl+b ou Ctrl+a) puis d
Commandes et Raccourcis de Base
Toutes les commandes tmux commencent par une touche de préfixe (par défaut : Ctrl+b). Voici des raccourcis essentiels :
# Gestion des Sessions
prefix + d # Se détacher de la session
prefix + s # Lister les sessions
prefix + $ # Renommer la session actuelle
# Gestion des Fenêtres
prefix + c # Créer une nouvelle fenêtre
prefix + n # Passer à la fenêtre suivante
prefix + p # Passer à la fenêtre précédente
prefix + , # Renommer la fenêtre actuelle
prefix + w # Lister les fenêtres
# Opérations sur les Panneaux
prefix + % # Diviser le panneau verticalement
prefix + " # Diviser le panneau horizontalement
prefix + o # Passer au panneau suivant
prefix + x # Fermer le panneau actuel
Gestion des Sessions
Les sessions sont le niveau d'organisation le plus élevé dans tmux. Voici comment les gérer efficacement :
-
Créer des Sessions :
# Créer une nouvelle session avec un nom spécifique tmux new -s développement # Créer une nouvelle session avec un répertoire de travail spécifique tmux new -s projet -c ~/projects/mon_projet
-
Gérer Plusieurs Sessions :
# Passer d'une session à l'autre tmux switch -t nom_de_session # Tuer une session spécifique tmux kill-session -t nom_de_session # Tuer toutes les sessions sauf la courante tmux kill-session -a
-
Navigation entre les Sessions :
- Utilisez
prefix + (
pour passer à la session précédente - Utilisez
prefix + )
pour passer à la session suivante - Utilisez
prefix + s
pour afficher la liste des sessions et sélectionner de manière interactive
- Utilisez
Fonctionnalités Avancées
tmux offre des fonctionnalités puissantes pour les utilisateurs avancés qui peuvent considérablement améliorer la productivité. Explorons certaines de ces capacités avancées.
Gestion des Fenêtres
Les fenêtres dans tmux fonctionnent de manière similaire aux onglets dans un terminal moderne. Voici quelques opérations avancées sur les fenêtres :
# Commandes Avancées sur les Fenêtres
prefix + . # Déplacer la fenêtre à un numéro différent
prefix + f # Trouver une fenêtre par nom
prefix + & # Tuer la fenêtre
prefix + 0-9 # Passer à la fenêtre par numéro
# Échanger les positions des fenêtres
swap-window -s 2 -t 1 # Échanger les fenêtres 2 et 1
swap-window -t -1 # Déplacer la fenêtre actuelle à gauche
Opérations sur les Panneaux
Les panneaux vous permettent de diviser votre fenêtre en plusieurs sections. Voici des techniques avancées de gestion des panneaux :
-
Redimensionner les Panneaux :
# En utilisant le préfixe suivi de : Alt + Flèches # Redimensionner le panneau dans la direction de la flèche # Ou maintenez le préfixe et appuyez sur : Ctrl + Flèches # Redimensionner le panneau par des incréments plus grands
-
Navigation Avancée entre les Panneaux :
prefix + { # Déplacer le panneau actuel à gauche prefix + } # Déplacer le panneau actuel à droite prefix + z # Basculer le zoom du panneau (maximiser/restaurer) prefix + ! # Convertir le panneau en fenêtre
-
Synchroniser les Panneaux :
# Basculer la synchronisation des panneaux (envoyer des commandes à tous les panneaux) :setw synchronize-panes
Mode Copie et Défilement
Le mode copie vous permet de faire défiler, rechercher et copier du texte :
-
Entrer et Naviguer en Mode Copie :
prefix + [ # Entrer en mode copie q # Quitter le mode copie Espace # Commencer la sélection Entrée # Copier la sélection # Navigation en mode copie : Flèches # Déplacer le curseur Page Haut/Bas # Faire défiler la page vers le haut/bas g # Aller en haut G # Aller en bas / # Rechercher vers l'avant ? # Rechercher vers l'arrière n # Prochain match de recherche N # Match de recherche précédent
-
Opérations de Copie Avancées :
# Activer le mode vi pour de meilleures opérations de copie set-window-option -g mode-keys vi # Raccourcis personnalisés pour le mode copie bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection
-
Intégration avec le Presse-papiers Système :
# Sur Ubuntu, installez d'abord xclip : sudo apt install xclip # Ajouter à .tmux.conf : bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
Ces fonctionnalités avancées peuvent être combinées pour créer des flux de travail puissants. Par exemple, vous pouvez :
- Configurer plusieurs panneaux pour surveiller différents services
- Utiliser la synchronisation des panneaux pour exécuter des commandes sur plusieurs serveurs simultanément
- Créer des mises en page de fenêtres complexes pour différentes tâches de développement
- Configurer une sauvegarde automatisée des sessions tmux
Meilleures Pratiques
Adopter de bonnes pratiques avec tmux peut considérablement améliorer votre flux de travail et votre productivité. Explorons quelques approches et conseils recommandés.
Flux de Travail Courants
-
Configuration de l'Environnement de Développement :
# Créer une nouvelle session pour le développement tmux new -s dev # Mise en page de développement courante # Diviser la fenêtre pour l'édition et le terminal tmux split-window -v -p 30 # 70% éditeur, 30% terminal # Division supplémentaire pour exécuter des tests/serveurs tmux split-window -h # Diviser le panneau terminal horizontalement
-
Configuration de Surveillance des Serveurs :
# Créer une session de surveillance tmux new -s surveillance # Diviser pour différentes tâches de surveillance tmux split-window -h # Diviser pour les statistiques système tmux split-window -v # Diviser pour les journaux # Exécuter des commandes de surveillance # Premier panneau : htop # Deuxième panneau : tail -f /var/log/syslog # Troisième panneau : surveillance réseau
Conseils de Productivité
-
Organisation des Sessions :
- Utilisez des noms de session descriptifs (par exemple,
client1
,backend
,docs
) - Gardez les tâches liées dans la même session mais dans des fenêtres différentes
- Utilisez des conventions de nommage de fenêtres cohérentes
- Nettoyage régulier des sessions pour une meilleure gestion
- Utilisez des noms de session descriptifs (par exemple,
-
Optimisation des Performances :
# Ajouter à .tmux.conf # Réduire le délai d'échappement set -sg escape-time 0 # Augmenter la réactivité set -g status-interval 1 # Limiter l'historique des sessions pour éviter les problèmes de mémoire set -g history-limit 50000
-
Scripts de Configuration Automatisés :
#!/bin/bash # Enregistrer sous dev-setup.sh # Créer une nouvelle session en état détaché tmux new-session -d -s développement # Configurer les fenêtres et les panneaux tmux rename-window -t développement:1 'éditeur' tmux send-keys -t développement:1 'vim' C-m tmux new-window -t développement:2 -n 'serveur' tmux send-keys -t développement:2 'npm run dev' C-m # Se rattacher à la session tmux attach -t développement
Intégration avec d'Autres Outils
-
Intégration avec le Contrôle de Version :
- Créer des fenêtres dédiées pour les opérations git
- Utiliser la synchronisation des panneaux pour gérer plusieurs dépôts
- Configurer des vérifications de statut automatisées
-
Meilleures Pratiques pour le Multiplexeur de Terminal :
# Ajouter à .bashrc ou .zshrc # Se rattacher automatiquement à la session tmux sur SSH if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux fi
-
Développement à Distance :
- Utiliser des sessions tmux imbriquées pour le travail local/à distance
- Configurer différentes couleurs de barre d'état pour les sessions locales/à distance
- Configurer différentes touches de préfixe pour les sessions imbriquées
# Pour les sessions imbriquées (.tmux.conf)
bind-key -n C-a send-prefix # Pour la session intérieure
set -g status-bg couleur40 # Vert pour local
set -g status-bg couleur160 # Rouge pour distant
Questions Fréquemment Posées (FAQ)
Q1 : Comment sortir de tmux ?
# Méthode 1 : Quitter complètement tmux
exit # Tapez dans la fenêtre tmux
# ou
prefix + d # Se détacher de la session actuelle tout en la gardant en cours d'exécution
# Méthode 2 : Force close all sessions
tmux kill-server
Q2 : Pourquoi mon défilement de souris ne fonctionne-t-il pas ?
Dans les versions plus récentes de tmux, vous devez activer le support de la souris dans votre fichier de configuration :
# Ajouter à ~/.tmux.conf
set -g mouse on
Q3 : Comment copier du texte dans tmux ?
-
En utilisant la souris (si le support de la souris est activé) :
- Sélectionnez simplement le texte
- Utilisez les raccourcis du presse-papiers système
-
En utilisant le clavier :
prefix + [ # Entrer en mode copie Espace # Commencer la sélection Entrée # Copier la sélection prefix + ] # Coller
Q4 : Comment récupérer une session tmux perdue ?
# Lister toutes les sessions
tmux ls
# Se rattacher à la dernière session
tmux attach
# Se rattacher à une session spécifique
tmux attach -t nom_de_session
Q5 : Comment puis-je redimensionner les panneaux dans tmux ?
# Utilisez la touche de préfixe + les flèches pour redimensionner les panneaux
prefix + Haut # Agrandir le panneau actuel vers le haut
prefix + Bas # Agrandir le panneau actuel vers le bas
prefix + Gauche # Agrandir le panneau actuel à gauche
prefix + Droite # Agrandir le panneau actuel à droite
Q6 : Comment appliquer les modifications de configuration ?
# Méthode 1 : Recharger dans tmux
prefix + :
source-file ~/.tmux.conf
# Méthode 2 : Recharger depuis le terminal
tmux source-file ~/.tmux.conf
Q7 : Comment synchroniser l'entrée entre les panneaux ?
# Dans le mode commande tmux
:setw synchronize-panes on
# Désactiver la synchronisation
:setw synchronize-panes off
Q8 : Pourquoi mes couleurs ne s'affichent-elles pas correctement ?
Ajoutez ces lignes à votre ~/.tmux.conf
:
# Activer le support des couleurs 256
set -g default-terminal "screen-256color"
# Activer le support des vraies couleurs
set-option -sa terminal-overrides ",xterm*:Tc"
Q9 : Comment sauvegarder et restaurer les sessions tmux ?
Vous pouvez utiliser le plugin tmux-resurrect
:
# Installer le gestionnaire de plugins tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Ajouter à .tmux.conf :
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Sauvegarder les sessions
prefix + Ctrl-s
# Restaurer les sessions
prefix + Ctrl-r
Q10 : Comment changer l'apparence de ma barre d'état ?
# Ajouter à ~/.tmux.conf
# Changer l'arrière-plan de la barre d'état
set -g status-bg noir
# Changer la couleur de premier plan de la barre d'état
set -g status-fg blanc
# Changer le style de la fenêtre actuelle
set-window-option -g window-status-current-style bg=rouge,fg=blanc,bold
Q11 : Comment gérer les sessions tmux imbriquées ?
# Ajouter à .tmux.conf pour utiliser un préfixe différent pour les sessions imbriquées
bind-key -n C-a send-prefix # Pour la session intérieure
set -g status-bg bleu # Couleur différente pour la session imbriquée
Q12 : Mes touches de fonction ne fonctionnent pas dans tmux ?
# Ajouter à ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on