Nous avons déjà appris à utiliser GNU Screen pour gérer plusieurs sessions Terminal. Aujourd'hui, nous verrons encore un autre utilitaire de ligne de commande bien connu nommé "Tmux" , qui est également utilisé pour gérer plusieurs sessions Terminal. Ce guide explique ce qu'est Tmux et l'utilisation des commandes Tmux avec des exemples sous Linux.
1. Qu'est-ce que Tmux ?
Semblable à GNU Screen, Tmux est également un multiplexeur de terminal qui nous permet de créer un certain nombre de sessions de terminal et d'exécuter plusieurs programmes ou processus en même temps dans une seule fenêtre de terminal.
Tmux est un programme gratuit, open source et multiplateforme qui prend en charge Linux, OpenBSD, FreeBSD, NetBSD et Mac OS X.
2. Installer Tmux sous Linux
Tmux est disponible dans les dépôts officiels de la plupart des distributions Linux.
Pour installer Tmux dans Alpine Linux, exécutez :
$ sudo apk add tmux
Sur Arch Linux et ses variantes comme EndeavourOS et Manjaro Linux, exécutez la commande suivante pour l'installer.
$ sudo pacman -S tmux
Sur Debian, Ubuntu, Linux Mint, Pop_OS ! :
$ sudo apt-get install tmux
Sur Fedora, RHEL, CentOS, AlmaLinux, Rocky Linux :
$ sudo dnf install tmux
Ou,
$ sudo yum install tmux
Sur SUSE/openSUSE :
$ sudo zypper install tmux
Eh bien, nous venons d'installer Tmux. Allons-y et voyons quelques exemples d'utilisation de Tmux.
3. Utilisation des commandes Tmux avec des exemples
Le raccourci de préfixe par défaut pour toutes les commandes dans Tmux est Ctrl+b
. N'oubliez pas ce raccourci clavier lorsque vous utilisez Tmux.
Attention : Le préfixe par défaut de tous les Écran commandes est Ctrl+a .
3.1. Création de sessions Tmux
Pour créer une nouvelle session Tmux et s'y attacher, exécutez la commande suivante depuis le Terminal :
$ tmux
Ou,
$ tmux new
Une fois dans la session Tmux, vous verrez une barre verte en bas comme indiqué dans la capture d'écran ci-dessous.
C'est très pratique pour vérifier si vous êtes dans une session Tmux ou non.
3.2. Se détacher des sessions Tmux
Pour se détacher d'une session Tmux en cours, appuyez simplement sur Ctrl+b
et d
. Vous n'avez pas besoin d'appuyer sur ces deux raccourcis clavier à la fois. Appuyez d'abord sur "Ctrl+b"
puis appuyez sur "d"
.
Une fois que vous êtes détaché d'une session, vous verrez une sortie comme ci-dessous.
[detached (from session 0)]
3.3. Création de sessions nommées
Si vous utilisez plusieurs sessions, vous risquez de ne pas savoir quels programmes s'exécutent sur quelles sessions. Dans de tels cas, vous pouvez simplement créer des sessions nommées.
Par exemple, si vous souhaitez effectuer certaines activités liées au serveur Web dans une session, créez simplement la session Tmux avec un nom personnalisé, par exemple "webserver" (ou n'importe quel nom de votre choix).
$ tmux new -s webserver
Voici la nouvelle session Tmux nommée.
Comme vous pouvez le voir dans la capture d'écran ci-dessus, le nom de la session Tmux est webserver . De cette façon, vous pouvez facilement identifier quel programme s'exécute sur quelle session.
Pour détacher, appuyez simplement sur Ctrl+b
et d
.
3.4. Lister les sessions Tmux
Pour afficher la liste des sessions Tmux ouvertes, exécutez :
$ tmux ls
Exemple de résultat :
Comme vous pouvez le voir, j'ai deux sessions Tmux ouvertes.
3.5. Créer des sessions détachées
Parfois, vous voudrez peut-être simplement créer une session et ne pas vous y attacher automatiquement.
Pour créer une nouvelle session détachée nommée "ostechnix" , exécutez :
$ tmux new -s ostechnix -d
La commande ci-dessus créera une nouvelle session Tmux appelée "ostechnix", mais ne s'y attachera pas.
Vous pouvez vérifier si la session est créée en utilisant tmux ls
commande :
3.6. Attachement aux sessions Tmux
Vous pouvez vous attacher à la dernière session créée en exécutant cette commande :
$ tmux attach
Ou,
$ tmux a
Si vous souhaitez vous attacher à une session nommée spécifique, par exemple "ostechnix", exécutez :
$ tmux attach -t ostechnix
Ou, brièvement :
$ tmux a -t ostechnix
3.7. Tuer les sessions Tmux
Lorsque vous avez terminé et que vous n'avez plus besoin d'une session Tmux, vous pouvez la fermer à tout moment avec la commande :
$ tmux kill-session -t ostechnix
Pour tuer une fois attaché, appuyez sur Ctrl+b
et x
. Tapez "y"
pour tuer la session.
Vous pouvez vérifier si la session est fermée avec tmux ls
commande.
Pour tuer le serveur Tmux avec toutes les sessions Tmux, exécutez :
$ tmux kill-server
Fais attention! Cela mettra fin à toutes les sessions Tmux même s'il y a des tâches en cours d'exécution dans les sessions sans aucun avertissement.
Lorsqu'aucune session Tmux n'était en cours d'exécution, vous verrez la sortie suivante :
$ tmux ls no server running on /tmp/tmux-1000/default
3.8. Séparer les fenêtres de session Tmux
Tmux a la possibilité de diviser une seule fenêtre de session Tmux en plusieurs fenêtres plus petites appelées volets Tmux .
De cette façon, nous pouvons exécuter différents programmes sur chaque volet et interagir avec chacun d'eux simultanément.
Chaque volet peut être redimensionné, déplacé et fermé sans affecter les autres volets. Nous pouvons diviser une fenêtre Tmux horizontalement ou verticalement ou les deux à la fois.
3.8.1. Fractionner les volets horizontalement
Pour diviser un volet horizontalement, appuyez sur Ctrl+b
et "
(guillemet simple).
Utilisez la même combinaison de touches pour diviser davantage les volets.
3.8.2. Fractionner les volets verticalement
Pour diviser un volet verticalement, appuyez sur Ctrl+b
et %
.
3.8.3. Diviser les volets horizontalement et verticalement
Nous pouvons également diviser un volet horizontalement et verticalement en même temps. Jetez un oeil à la capture d'écran suivante.
Tout d'abord, j'ai fait une division horizontale en appuyant sur Ctrl+b
"
puis divisez le volet inférieur verticalement en appuyant sur Ctrl+b
%
.
Comme vous le voyez dans la capture d'écran ci-dessus, j'exécute trois programmes différents sur chaque volet.
3.8.4. Basculer entre les volets
Pour basculer entre les volets, appuyez sur Ctrl+b et Touches fléchées (Gauche, Droite, Haut, Bas) .
3.8.5. Envoyer des commandes à tous les volets
Dans l'exemple précédent, nous exécutons trois commandes différentes sur chaque volet. Cependant, il est également possible d'exécuter envoyer les mêmes commandes à tous les volets à la fois.
Pour cela, appuyez sur Ctrl+b
et tapez la commande suivante et appuyez sur ENTER
:
:setw synchronize-panes
Tapez maintenant n'importe quelle commande dans n'importe quel volet. Vous verrez que la même commande est reflétée sur tous les volets.
3.8.6. Permuter les volets
Pour permuter les volets, appuyez sur Ctrl+b
et o
.
3.8.7. Afficher les numéros de volet
Appuyez sur Ctrl+b
et q
pour afficher les numéros de volet.
3.8.8. Tuer les volets
Pour fermer un volet, tapez simplement exit
et ENTER
clé. Vous pouvez également appuyer sur Ctrl+b
et x
. Vous verrez un message de confirmation. Appuyez simplement sur "y"
pour fermer le volet.
4. Zoom avant et zoom arrière des volets Tmux
Nous pouvons agrandir les volets Tmux pour les adapter à la taille réelle de la fenêtre Terminal actuelle pour une meilleure visibilité du texte et pour afficher davantage de son contenu.
Il est utile lorsque vous avez besoin de plus d'espace ou que vous vous concentrez sur une tâche spécifique. Après avoir terminé cette tâche, vous pouvez effectuer un zoom arrière (dézoomer) le volet Tmux à sa position normale. Plus de détails dans le lien suivant.
- Comment zoomer les volets Tmux pour une meilleure visibilité du texte
5. Démarrage automatique des sessions Tmux
C'est toujours une bonne pratique d'exécuter un long processus à l'intérieur d'une session Tmux lorsque vous travaillez avec des systèmes distants via SSH.
Parce que cela vous empêche de perdre le contrôle du processus en cours lorsque la connexion réseau tombe soudainement.
Une façon d'éviter ce problème consiste à démarrer automatiquement les sessions Tmux. Pour plus de détails, consultez le lien suivant.
- Démarrage automatique de la session Tmux sur le système distant lors de la connexion via SSH
Conclusion
Dans ce guide, nous avons discuté de l'utilisation des commandes Tmux avec des exemples. À ce stade, vous aurez une idée de base de l'utilitaire de ligne de commande Tmux et de la façon d'utiliser Tmux pour gérer plusieurs sessions Terminal. Pour plus de détails, consultez les pages de manuel.
$ man tmux
Les utilitaires GNU Screen et Tmux peuvent être très utiles lors de la gestion de serveurs à distance via SSH. Apprenez à fond les commandes Screen et Tmux pour gérer vos serveurs distants comme un pro.