Recherche de site Web

Introduction au multiplexeur de terminaux Tmux


Tmux est un multiplexeur de terminaux : il nous permet d’exécuter et de gérer plusieurs sessions de terminal à partir d’un seul écran. Ceci est particulièrement utile lors de la connexion à des machines distantes à l’aide de ssh, car, entre autres choses, cela nous permet de garder les processus démarrés à partir de ces terminaux en cours d’exécution en arrière-plan lorsque nous nous déconnectons de la session (ou nous déconnectons et fermons complètement le shell sécurisé à distance), ce qui nous permet de nous y rattacher ultérieurement.

Dans ce tutoriel, nous voyons comment installer Tmux dans certaines des distributions Linux les plus utilisées et apprenons les concepts de base derrière son utilisation.

Dans ce tutoriel, vous allez apprendre :

  • Comment installer Tmux sur certaines des distributions Linux les plus utilisées
  • Comment gérer les sessions Tmux
  • Comment gérer les fenêtres et les volets Tmux

Configuration logicielle requise et conventions utilisées

Installation

Logiciel libre et open source, Tmux est disponible dans les dépôts de toutes les principales distributions Linux, il peut donc être facilement installé en utilisant le gestionnaire de paquets de notre choix. Pour installer Tmux sur Fedora, par exemple, nous utilisons dnf :

sudo dnf install tmux

Pour effectuer l’installation sur les versions récentes de Debian et des distributions basées sur Debian, nous pouvons utiliser la commande suivante :

sudo apt install tmux

Tmux est également disponible dans le dépôt « Community » d’Achlinux. Nous pouvons l’installer avec pacman :

sudo pacman -S tmux

Pourquoi Tmux ?

Les avantages de l’utilisation de Tmux deviennent évidents lorsque nous nous connectons à une machine via ssh. Supposons que nous émettions une commande de longue durée ou une application interactive comme « htop » dans le shell distant. À un certain moment, nous nous rendons compte que nous devons exécuter une autre commande ; À ce stade, nous avons deux choix : arrêter le premier processus, ou ouvrir une autre connexion SSH à partir de notre machine locale, dans un autre terminal.

C’est là que Tmux s’avère utile : une fois connecté à un shell distant, nous pouvons invoquer tmux et démarrer une nouvelle session qui peut contenir plusieurs fenêtres, qui à leur tour, peuvent être divisées en plusieurs sections ou volets. Cela nous permet d’ouvrir plusieurs terminaux à partir d’une seule connexion. Un autre avantage est que nous pouvons nous déconnecter d’une session Tmux pendant que les commandes que nous y avons invoquées continuent de s’exécuter en arrière-plan, et nous y rattachons plus tard.

Gestion des sessions Tmux

Pour commencer à utiliser Tmux, tout ce que nous avons à faire est de l’invoquer depuis notre émulateur de terminal :

tmux

Une fois que Tmux démarre, il crée une nouvelle session composée d’une seule fenêtre. En bas de l’écran, une ligne d’état s’affiche. Il contient des informations sur la session elle-même et peut être utilisé pour exécuter des commandes :

Dans le côté gauche de la ligne d’état, nous pouvons voir l’identificateur de session entre crochets et les noms des fenêtres ouvertes dans celui-ci. Pour le moment, nous n’avons qu’une seule fenêtre (bash). Sur le côté droit de la barre d’état, en revanche, nous pouvons voir le nom d’hôte de la machine à laquelle nous sommes connectés, ainsi que la date et l’heure actuelles.

Comme vous pouvez le voir sur l’image ci-dessus, les sessions sont identifiées par des numéros. Nous pouvons cependant créer des sessions nommées en appelant Tmux de la manière suivante :

tmux new -s <session-name>

De nouvelles sessions peuvent également être lancées depuis Tmux. Pour réaliser cette tâche, tout ce que nous avons à faire est d’appuyer sur ce que nous appellerons au cours de ce tutoriel la combinaison de touches « préfixe », qui par défaut est Ctrl-b, suivie d’un : (deux-points). Ce faisant, nous entrons en mode commande, puis, pour ouvrir une nouvelle session, nous utilisons la nouvelle commande :

:new -s <session-name>

Une session existante peut également être renommée. Pour ce faire, nous appuyons sur <prefix> puis sur la touche $, puis nous entrons le nouveau nom de session dans la barre d’état et appuyons sur Entrée pour le confirmer :

Liste des sessions existantes

Tôt ou tard, nous souhaiterons peut-être obtenir une liste des sessions Tmux existantes. Nous pouvons le faire soit à partir de la ligne de commande, soit à partir de l’interface Tmux. Dans le premier cas, nous exécutons :

tmux list-sessions

Pour effectuer la même opération à partir de Tmux, à la place, nous appuyons sur <préfixe> suivi du caractère s :

Dans ce cas, comme vous pouvez le voir sur la capture d’écran ci-dessus, il n’y a qu’une seule session ouverte.

Attacher et détacher d’une session

Supposons que nous soyons attachés à une session Tmux comme celle que nous avons ouverte dans l’exemple précédent. Maintenant, à partir d’une fenêtre, nous lançons une commande de longue durée, puis, pendant qu’elle est en cours d’exécution, nous voulons nous détacher de la session. Dans ce cas, tout ce que nous avons à faire est d’appuyer sur <préfixe> suivi de la touche d. Tmux sera fermé, et nous serons informés du détachement par un message :

[detached (from session 0)]

Lorsque nous nous détachons d’une session, celle-ci reste vivante et les processus que nous avons lancés à partir de celle-ci continuent de s’exécuter en arrière-plan. Lorsqu’il est temps de rattacher une session, nous exécutons la commande suivante :

tmux attach -t 0

Où l’argument passé à l’option -t (0 dans ce cas) est l’identifiant ou le nom de la session.

Fermeture d’une session

Une session se termine automatiquement lorsque toutes ses fenêtres sont fermées, mais elle peut également être fermée explicitement en passant en mode commande et en exécutant :

:kill-session

Si nous sommes déjà détachés de la session, nous pouvons la tuer en exécutant la commande suivante :

tmux kill-session -t <session-id>

Gestion des fenêtres

Lorsque nous lançons Tmux pour la première fois, il n’y a qu’une seule fenêtre ouverte. En créer un nouveau est cependant assez facile : il suffit d’appuyer sur <préfixe> suivi du caractère c. Le nom de la nouvelle fenêtre est indiqué dans la barre d’état :

L’étoile (*) à côté du nom d’une fenêtre est utilisée pour identifier celle qui est actuellement utilisée.

Renommer une fenêtre

Pour le moment, le nom des deux fenêtres est simplement « bash » : c’est parce que c’est le nom du shell que nous utilisons. Nous pourrions vouloir utiliser un nom plus significatif pour une fenêtre ; Pour ce faire, nous appuyons à nouveau sur <préfixe> cette fois suivi de , (virgule). La barre d’état changera de couleur et nous pourrons définir le nouveau nom de la fenêtre :

Changer de fenêtre

Pour basculer entre les fenêtres ouvertes, comme d’habitude, nous devons d’abord émettre la combinaison <préfixe>, puis, nous pouvons appuyer sur p pour passer à la fenêtre précédente de la liste ou n pour passer à la suivante. Alternativement, nous pouvons appuyer sur w pour obtenir une liste des fenêtres disponibles. Nous pouvons ensuite sélectionner celui vers lequel nous voulons basculer et appuyer sur Entrée :

Tuer une fenêtre

Enfin, pour tuer une fenêtre, nous pouvons utiliser la combinaison <préfixe> suivie du caractère &. Nous serons invités à confirmer que nous voulons effectuer l’opération :

Donc, pour résumer :

ActionCombinaisons de touches
 Créer une fenêtre <préfixe> c
 Fenêtre de renommage <préfixe> ,
 Passer à la fenêtre précédente<préfixe> p
 Passer à la fenêtre suivante<préfixe> n
 Obtenir la liste des fenêtres navigables<préfixe> w
Tuer une fenêtre<préfixe> &

Gestion des volets

Chaque fenêtre de Tmux peut être divisée en plusieurs sections, chacune nous permettant d’utiliser un pseudo-terminal. Ces sections sont appelées « volets » dans la terminologie Tmux. Pour diviser une vitre verticalement, nous appuyons sur <préfixe> suivi du signe % :

Pour diviser un volet horizontalement, nous utilisons la touche " :

Tout comme les sessions et les fenêtres, chaque volet existant est identifié par un numéro. Pour visualiser les numéros associés aux volets, nous utilisons <préfixe> suivi de la touche q :

Une fois les chiffres affichés, nous pouvons appuyer dessus sur notre clavier pour passer au volet respectif. Les volets existants peuvent être déplacés vers la droite et vers la gauche à l’aide de <préfixe> suivis respectivement des touches { et }, et leur disposition peut être modifiée à l’aide de la touche de la barre d’espace.

Voici un bref récapitulatif des raccourcis des volets :

ActionCombinaisons de touches
Cracher verticalement<préfixe> %
Fractionnement horizontal<préfixe> "
Identification des volets<préfixe> q
Déplacer le volet vers la gauche<préfixe> {
Déplacer le volet vers la droite<préfixe> }
Disposition des volets de commutation<préfixe> barre d’espace

Réflexions finales

Dans ce tutoriel, nous avons appris les bases de Tmux. Nous avons vu quels sont les avantages d’utiliser l’application lors de la connexion à des machines distantes via ssh, et nous avons vu comment gérer les sessions, les fenêtres et les volets.

Articles connexes: