16/12/2024

Commandes et Système

Attacher et détacher un terminal virtuel avec Tmux

I. Présentation

Dans ce tutoriel sous Linux, nous allons apprendre à utiliser tmux (terminal multiplexer), un outil qui va permettre de manipuler plusieurs terminaux virtuels au sein d'une session distante. Si vous souhaitez en savoir plus, lisez la suite de ce tutoriel où je vais me concentrer sur l'essentiel.

II. Qu'est-ce que tmux ?

Tmux est un "multiplexeur" de terminal, et c'est une alternative à la bonne vieille commande screen que certains d'entre-vous connaissent peut-être déjà. Pour faire simple, un multiplexeur de terminal signifie que vous pouvez démarrer une session de "terminal virtuel", puis ouvrir plusieurs fenêtres de terminal à l'intérieur de cette session. Chaque fenêtre occupe tout l'écran et peut être divisée en volets rectangulaires.

Avec Tmux, vous pouvez facilement basculer entre plusieurs programmes dans un terminal. Tmux a aussi la capacité de se détacher ou se rattacher à un autre terminal "racine", ce qui est très pratique si vous devez lancer des scripts ayant un temps d'exécution très long ou infini. En effet, dans un terminal classique, si vous fermez celui-ci, cette action "tue" le(s) processus en cours, alors qu'avec Tmux vous vous détachez (comprendre : exécution en background) du terminal virtuel. En résumé, les sessions Tmux sont persistantes, ce qui signifie que les programmes exécutés dans Tmux continueront de s'exécuter même si vous vous êtes déconnecté, depuis une session "Racine" SSH.

III. Créer un terminal virtuel

Pour installer Tmux, rien de plus simple :

sudo apt update
sudo apt install tmux

Pour démarrer une première session tmux, suivez le guide...

Par défaut, les sessions Tmux sont nommées numériquement. Les sessions nommées sont utiles lorsque vous exécutez plusieurs sessions Tmux. Pour créer une nouvelle session nommée, par exemple "MySession", exécutez la commande "tmux" avec les arguments suivants :

tmux new -s mySession

Linux Tmux

Puis, exécutez cette ligne de commande, qui est un "petit programme" affichant à l'écran "This is a test of while loop" toutes les cinq secondes.

while true; do echo -n "This is a test of while loop";date ; sleep 5; done

IV. Détachez-vous du terminal virtuel "mySession"

Toutes les commandes de Tmux commencent par un préfixe, qui est par défaut "ctrl + b".

Saisissez la combinaison de touches suivante, afin de vous détacher de votre session tmux "mySession". Je vous rappelle que cela n'arrêtera pas l'exécution de la commande précédente.

ctrl+b d

Ou saisissez la commande suivante :

tmux detach

Vous pouvez lister les session Tmux en cours d'exécution par le biais de la commande suivante :

tmux ls

Ce qui permet de voir que le terminal virtuel "mySession" est toujours en cours :

 

Pour reprendre la main sur votre terminal virtuel "mySession", saisissez la commande suivante :

tmux attach-session -t mySession
Ou 
tmux attach -t mySession
tmux attach # Dans le cas ou vous avez seulement une session d'active.

Pour mettre "mySession" de nouveau en arrière plan, saisissez les combinaisons de touches suivantes de nouveau :

Ctrl+b d

VI. Arrêter le terminal virtuel "mySession"

Si vous souhaitez définitivement arrêter une session Tmux, tapez la commande suivante :

tmux kill-session -t mySession
# Ou 
tmux kill-session -t <id de session>

Ou bien depuis le terminal virtuelle saisissez la commande :

exit

VI. Conclusion

J'espère que cet article vous aura plu. Je n'ai pas présenté toutes les fonctionnalités en détail, car il y en a beaucoup, mais celles présentées ici sont les plus communément utilisées. S'il y a quelque chose qui n'est pas clair pour vous, la section commentaire : postez un commentaire ! 🙂

author avatar
Geoffrey Sauvageot-Berland Ingénieur Cybersécurité
Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.