tmux : tout savoir sur le multiplexeur de terminaux

Le multiplexeur de terminaux tmux permet de travailler en multitâche avec les lignes de commande de la distribution Linux de votre choix. Avec tmux, il est possible de créer, traiter, séparer ou fusionner plusieurs sessions simultanément dans un seul et même terminal.

Le système d’exploitation Linux fait partie, avec Windows et macOS, des distributions les plus populaires. Il est en plus open source et donc gratuit. De nombreuses distributions Linux type Ubuntu, Debian ou Linux Mint se gèrent par ligne de commande – soit des commandes Linux dans le terminal. Pour travailler dans plusieurs sessions de console en parallèle dans un seul terminal, on utilise un multiplexeur de terminal comme GNU screen ou tmux.

Hébergement Web avec conseiller personnel !

Hébergement Web puissant, flexible et performant avec boîte email, conseiller personnel et domaine inclus la 1ère année !

Domaine
Certificat SSL
Assistance 24/7

tmux, c’est quoi ?

Le multiplexeur de terminaux open source tmux a été développé par Nicholas Marriott et publié pour la première fois en 2007. Les fonctions de tmux sont similaires à celles du multiplexeur de terminal GNU screen : les deux permettent de travailler avec plusieurs fenêtres de console dans une seule session de terminal, de les diviser ou de les séparer en fenêtres distinctes pendant que vous écrivez un script shell. Il est aussi possible de travailler en équipe sur un projet, dans l’idéal avec un client Secure Shell (SSH) dans des sessions distantes.

Avec tmux, on utilise sa distribution Linux en saisissant des lignes de commande, qu’il s’agisse de commandes pour l’attribution des droits d’accès avec chmod ou de la commande "shutdown -h" pour un shutdown de Linux. Si tmux dans Ubuntu, Debian et consorts ne pose pas de problème, tmux sous Windows ne fonctionne que via WSL ou WSL2 (Windows Subsystem pour Linux 2). L’interface WSL2 permet aussi d’utiliser des applications et outils Linux dans Windows.

Conseil

Quel hébergeur pour vos projets Linux ? Avec l’hébergement Linux de IONOS, profitez de tarifs flexibles, de performances évolutives et flexibles, d’un certificat SSL, de la protection DDoS et de HTTP/2.

Comment fonctionne tmux

Après le téléchargement des paquets officiels Linux et l’installation, tmux se lance simplement dans le terminal avec la commande « tmux ». Le multiplexeur de terminal tmux s’utilise via le terminal classique, après s’être assuré des conditions suivantes :

  • Distribution Linux ou système basé sur Linux ;
  • Profil utilisateur avec des droits d’admin ;
  • Accès au terminal et aux commandes ou raccourcis clavier.

Le travail dans tmux se distingue par ses sessions de terminal, fenêtres et panneaux (aussi appelés panes dans la terminologie tmux) :

  • Sessions de terminal : pour exécuter tâches et commandes et utiliser la distribution Linux ;
  • Fenêtres : tmux permet de travailler en parallèle avec plusieurs fenêtres dans une même session pour exécuter séparément des tâches spécifiques ;
  • Panneaux (ou panes) : ces fenêtres peuvent se diviser en différentes zones (panes ou « panneaux »), par exemple pour exécuter des journaux d’erreurs pendant que vous effectuez d’autres tâches dans la même fenêtre.

L’utilisation de tmux se fait par commandes en ligne ou raccourcis clavier. Voici les commandes et les raccourcis clavier les plus importants,

Commandes tmux

Installation de tmux sous Linux via le gestionnaire de paquets officiel Linux :

apt-get install tmux

Installation de tmux sous Ubuntu et Debian :

sudo apt-get install tmux

Lancer tmux :

tmux

Lancer et nommer une nouvelle session tmux :

tmux new -s [nom_session]

Terminer une session tmux :

exit

Se reconnecter à la dernière session tmux :

tmux a -t [nom_session]

ou

tmux a #

Afficher toutes les sessions tmux (nom et nombre de fenêtres ouvertes)

tmux 1s

Ajuster les panneaux avec [Ctrl] + [B] + [:] et resize-pane

Lorsque vous divisez une fenêtre en panneaux, il est possible de configurer leur taille comme vous le souhaitez. Pour ce faire, appuyez d’abord sur la combinaison de touches [Ctrl] + [B] + [:] et personnalisez la taille des panneaux sous tmux avec les commandes suivantes :

  • resize-pane -D : déplacer le séparateur vers le bas (« Downwards ») ;
  • resize-pane -U : déplacer le séparateur vers le haut (« upwards ») ;
  • resize-pane -R : déplacer le séparateur vers la droite ;
  • resize-pane -L : déplacer le séparateur vers la gauche.

Il est aussi possible de déplacer le séparateur autour de cellules prédéfinies – ce qui modifie tous les panneaux de la fenêtre :

  • resize-pane -U 10 : déplacer le séparateur 10 cellules vers le haut ;
  • resize-pane -t 2 -R 5: déplacer le séparateur 5 cellules vers la droite.

Maximiser et minimiser les panneaux (après raccourci clavier [Ctrl] + [B] + [:])

resize-pane -Z

Détachement (« detach ») d’une session existante (le cas échéant avec nom de session)

tmux detach

Attacher (« attach ») à une session existante (le cas échéant avec nom de session)

tmux attach

Raccourcis clavier tmux

À part l’exécution des lignes de commandes et des scripts, il est possible d’utiliser les commandes de tmux à l’aide de raccourcis clavier. Pour lancer une commande via un raccourci clavier, appuyez sur [Ctrl] + [B]. Les saisies suivantes déclenchent l’action souhaitée. Voici les raccourcis les plus importants.

Commandes de session :

  • S : afficher toutes les sessions et basculer d’une session à l’autre ;
  • $ : renommer la session actuelle ;
  • D : détacher la session existante (« detach ») et la déplacer en arrière-plan ;
  • ? : afficher les raccourcis clavier actuellement actifs (ouvrir l’aide).

Commandes pour les fenêtres :

  • C : créer/ouvrir une nouvelle fenêtre ;
  • W : lister toutes les fenêtres existantes, basculer d’une fenêtre à l’autre ;
  • L : aller à la dernière fenêtre utilisée ;
  • P : passer à la fenêtre précédente dans l’ordre chronologique ;
  • N : passer à la fenêtre suivante dans l’ordre chronologique ;
  • , : renommer la fenêtre actuelle ;
  • & : quitter la fenêtre actuelle (confirmer avec « y ») ;
  • 1, 2, 3, (etc.) : aller à la fenêtre n°X ;
  • [ : Utiliser le mode de défilement (défilement avec les flèches dans la fenêtre actuelle).

Commandes pour les panneaux :

  • X : fermer le panneau actuel ;
  • % : diviser le panneau actuel verticalement (création d’un second panneau dans la fenêtre) ;
  • " : diviser le panneau actuel horizontalement (création d’un second panneau dans la fenêtre) ;
  • Flèches (gauche, droite, haut, bas) : naviguer entre les panneaux ;
  • H : aller au panneau de gauche ;
  • I : aller au panneau de droite ;
  • J : aller au panneau en-dessous ;
  • K : aller au panneau au-dessus ;
  • Q : afficher le nombre de panneaux ;
  • O : naviguer entre les panneaux (chronologique) ;
  • } : échanger le panneau actuel avec le suivant ;
  • { : échanger le panneau actuel avec le précédent ;
  • Espace : alterner entre les zones des panneaux ;
  • ! : détacher le panneau actuel et l’ouvrir dans une nouvelle fenêtre.

tmux : guide d’installation et d’utilisation pas à pas

Voici les étapes à suivre pour installer et utiliser tmux :

Étape 1 : installez le multiplexeur de terminal à partir des sources officielles de paquets Linux avec la commande d’installation de paquets apt-get install tmux

Sous Debian ou Ubuntu, utilisez le complément « sudo » : sudo apt-get install tmux

Étape 2 : lancez tmux en tapant « tmux » dans le terminal. Au démarrage s’affiche en bas un état avec le nom d’hôte (username@host-server), l’heure et la date. En bas à gauche s’affichent le nom de la session (le cas échéant) et le nombre de fenêtres dans le format suivant « [0] 0:bash* ». La première fenêtre porte la désignation « 0 ». Si un processus est en cours d’exécution dans la fenêtre, il est affiché après le 0 (par exemple « 0:bash* »).

Étape 3 : utilisez tmux avec des lignes de commande ou des raccourcis clavier. Introduisez chaque commande ou raccourci clavier par [Ctrl] + [B] (ou par [Ctrl] + [B] + [:] lors de la configuration des panneaux).

Étape 4 : démarrez une nouvelle session nommée en utilisant la commande « tmux new -s ». Après « -s », saisissez le nom souhaité pour la session. Si vous souhaitez démarrer une session sans nom de session, tapez simplement « tmux ».

Étape 5 : pour mettre fin à une session, tapez la commande « exit » ou utilisez le raccourci clavier [Ctrl] + [D].

Étape 6 : pour ouvrir une nouvelle fenêtre dans la session, appuyez sur [C]. Pour démarrer une nouvelle deuxième session parallèle à la première, utilisez à nouveau la commande « tmux new -s [nom_session] ». L’indicateur d’état en bas indique la session dans laquelle vous vous trouvez.

Étape 7 : pour diviser une fenêtre en panneaux (ou zones de fenêtre), appuyez sur [%] pour séparateur vertical ou sur ["] pour un séparateur horizontal. Naviguez ensuite entre les panneaux à l’aide des flèches.

Étape 8 : pour vous déconnecter d’une session sans arrêter les processus en cours, utilisez la commande « tmux detach ». La session ainsi que les processus en cours continuent de fonctionner en arrière-plan. Pour reprendre la session, reconnectez-vous à l’aide de la commande « tmux attach ».

À quoi sert tmux ?

Comme le multiplexeur de terminaux GNU screen, tmux permet de travailler en parallèle dans plusieurs sessions et fenêtres dans le terminal d’une distribution Linux, ainsi que de diviser et de configurer les fenêtres en plusieurs zones pour du travail multitâche. Il est ainsi possible d’exécuter des processus et des programmes en parallèle et d’exécuter différentes commandes en même temps. tmux permet aussi les sessions à distance et le travail en équipe sur un même projet. Il est aussi possible de quitter des processus et des sessions, de les déplacer en arrière-plan et de les reprendre plus tard là où vous les avez laissés.

Conseil

Pour une virtualisation complète avec des performances VPS optimales, choisissez le VPS de IONOS avec un stockage SAN 100 % SSD : taillé pour les projets exigeants, avec ressources évolutives dédiées et un hébergement Web Plesk en option.

Différences avec GNU screen

À première vue, GNU screen et tmux fonctionnent de manière identique et offrent les mêmes fonctions de premier plan. Par exemple, les commandes et raccourcis clavier de GNU screen sont introduits par [Ctrl] + [A] au lieu de [Ctrl] + [B]. Autre différence majeure : GNU screen n’affiche pas automatiquement l’état avec le nom de la session en cours dans la partie inférieure de la fenêtre. Pour afficher l’état dans GNU screen, il faut le configurer à la main.

Le fait de pouvoir nommer et renommer facilement les sessions et les fenêtres facilite aussi la vue globale et la navigation entre les fenêtres/sessions dans tmux. De plus, contrairement à GNU screen, le risque de perdre complètement une fenêtre disparaît en la détachant dans tmux pour la déplacer vers l’arrière-plan. Il est facile de récupérer les fenêtres avec une ligne de commande ou un affichage de toutes les fenêtres actuelles.

Conseil

Utilisez la puissance de calcul évolutive d’une machine virtuelle pour créer une infrastructure performante avec un serveur Cloud de IONOS : 100 % de ressources dédiées pour votre projet, un accès root, un Cloud Panel et des centres de données sécurisés en Europe.

En conclusion : que vaut tmux ?

Renommer des fenêtres et des sessions, afficher l’état et les sessions en bas de la fenêtre – ces petits plus rendent tmux plus convivial et plus clair que GNU screen à l’utilisation. Si vous travaillez avec plusieurs processus et programmes dans le terminal en même temps et que vous avez besoin d’un multitâche aussi simple qu’efficace, tmux est un multiplexeur de terminal pertinent et gratuit qui mérite le détour.