Partagez votre terminal Linux avec tmate

En tant que membre de l’équipe Fedora Linux QA, je me retrouve parfois à exécuter un tas de commandes que je souhaite diffuser à d’autres développeurs. Si vous avez déjà utilisé un multiplexeur de terminal comme tmux ou GNU Screen, vous pourriez penser que c’est une tâche relativement facile. Mais toutes les personnes que je veux voir ma démonstration ne se connectent pas à ma session de terminal à partir d’un ordinateur portable ou d’un ordinateur de bureau. Certains l’ont peut-être ouvert par hasard à partir du navigateur de leur téléphone, ce qu’ils peuvent facilement faire car j’utilise compagnon.
Contents
Partage de terminal Linux avec tmate
Regarder quelqu’un d’autre travailler dans un terminal Linux est très instructif. Vous pouvez apprendre de nouvelles commandes, de nouveaux flux de travail ou de nouvelles façons de déboguer et d’automatiser. Mais il peut être difficile de capturer ce que vous voyez afin de pouvoir l’essayer vous-même plus tard. Vous pouvez recourir à des captures d’écran ou à un enregistrement d’écran d’une session de terminal partagé afin de pouvoir taper chaque commande plus tard. La seule autre option est que la personne démontrant les commandes enregistre la session à l’aide d’un outil comme Asciinema ou scénario et relecture de scénario.
Mais avec tmate, un utilisateur peut partager un terminal en mode lecture seule ou via SSH. Le SSH et la session en lecture seule sont accessibles via un terminal ou en tant que page Web HTML.
J’utilise le mode lecture seule lorsque j’intègre des personnes pour l’équipe Fedora QA car je dois exécuter des commandes et afficher la sortie, mais avec tmate, les gens peuvent conserver des notes en copiant et collant de leur navigateur vers un éditeur de texte.
Le compagnon Linux en action
Sous Linux, vous pouvez installer tmate avec votre gestionnaire de packages. Par exemple, sur Fedora :
$ sudo dnf install tmate
Sur Debian et distributions similaires :
$ sudo apt install tmate
Sur macOS, vous pouvez l’installer en utilisant Homebrew ou MacPorts. Si vous avez besoin d’instructions pour d’autres distributions Linux, reportez-vous au installer guide.
(Sumantro Mukherjee, CC BY-SA 4.0)
Une fois installé, démarrez tmate :
$ tmate
Lorsque tmate se lance, des liens sont générés pour fournir un accès à votre session de terminal via HTTP et SSH. Chaque protocole comporte une option en lecture seule ainsi qu’une session SSH inversée.
Voici à quoi ressemble une session Web :
(Sumantro Mukherjee, CC BY-SA 4.0)
La console Web de Tmate est HTML5, donc, par conséquent, un utilisateur peut copier tout l’écran et le coller dans un terminal pour exécuter les mêmes commandes.
Maintenir une session en vie
Vous vous demandez peut-être ce qui se passe si vous fermez accidentellement votre terminal. Vous pouvez également vous interroger sur le partage de votre terminal avec une autre application console. Après tout, tmate est un multiplexeur, il devrait donc être capable de maintenir les sessions en vie, de se détacher et de se rattacher à une session, etc.
Et bien sûr, c’est exactement ce que tmate peut faire. Si vous avez déjà utilisé tmux, c’est probablement assez familier.
$ tmate -F -n web new-session vi console
Cette commande ouvre new-session
dans Vi, et le -F
L’option garantit que la session réapparaît même lorsqu’elle est fermée.
(Sumantro Mukherjee, CC BY-SA 4.0)
Tmate vous donne la liberté de tmux ou GNU Screen ainsi que la possibilité de partager vos sessions avec d’autres. C’est un outil précieux pour enseigner aux autres utilisateurs comment utiliser un terminal, démontrer la fonction d’une nouvelle commande ou déboguer un comportement inattendu. C’est open source, alors essayez-le!