Attacher et détacher un terminal virtuel avec Tmux
Sommaire
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
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 ! 🙂