Comment Installer et Utiliser tmux sur Ubuntu : Un Guide Complet 2025

LightNode
By LightNode ·

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 :

  1. 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é.

  2. 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.

  3. 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 :

  1. 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
  2. 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 :

  1. Syntaxe de Base des Raccourcis Clavier :

    bind-key key command
    bind key command
    
  2. 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 :

  1. 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
    
  2. 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
    
  3. 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

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 :

  1. 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
    
  2. 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
    
  3. 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 :

  1. 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
    
  2. 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
    
  3. 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

  1. 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
    
  2. 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é

  1. 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
  2. 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
    
  3. 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

  1. 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
  2. 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
    
  3. 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
Installer Tmux sur Ubuntu

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 ?

  1. 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
  2. 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