Une introduction aux multiplexeurs terminaux

Une introduction aux multiplexeurs terminaux

20 avril 2016
par Rares Aioanei

Introduction

Si vous êtes nouveau dans l'administration du serveur et la ligne de commande, vous n'avez peut-être pas entendu parler de multiplexeurs de terminal ou de ce qu'ils font. Vous voulez apprendre à être un bon Sysadmin Linux et à utiliser les outils du métier. Ou peut-être que vous êtes déjà un administrateur chevronné et administrez pas mal de machines, et que vous voulez vous faciliter la vie un peu plus facile. Ou peut-être que vous êtes quelque part entre les deux.

Quoi qu'il en soit, cet article expliquera ce que sont les multiplexeurs terminaux, ce qu'ils font et surtout, comment vous pouvez bénéficier de leur utilisation.

Un multiplexeur de terminal n'est rien d'autre qu'un programme qui permet à son utilisateur de multiplexer une ou plusieurs sessions virtuelles, afin que l'utilisateur puisse avoir plusieurs sessions à l'intérieur d'un seul terminal. L'une des fonctionnalités les plus utiles de ces programmes est le fait que les utilisateurs peuvent attacher et détacher de telles sessions; Comment cet utile deviendra clair sous peu.

Cas d'utilisation

Séances persistantes

Disons que vous devez administrer un serveur distant via SSH / ligne de commande, mais votre connexion n'est pas très stable. Cela signifie que vous devez vous reconnecter souvent et que vous ne voulez pas recommencer à travailler. Les multiplexeurs de terminaux offrent la fonctionnalité de la sauvegarde de vos sessions entre les connexions afin que vous puissiez continuer juste où vous avez commencé.

Veuillez noter que de telles sessions ne sont pas persistantes entre les redémarrages (dans notre cas ci-dessus, les redémarrages du serveur auquel vous vous connectez), il est donc préférable de le savoir pour ne pas s'attendre à une telle fonctionnalité. La raison en est le fait que le multiplexeur exécute des séances de shell, à partir desquelles vous pouvez exécuter un éditeur de texte, un outil de surveillance et ainsi de suite. Étant donné que tous ces processus ne seront plus là après un redémarrage, il n'y a aucune raison pour que cette fonctionnalité soit mise en œuvre car elle n'aurait aucune utilisation réelle.

Nous avons parlé dans notre introduction de l'attachement et du détachement: c'est exactement ce que fait cette fonctionnalité. Poursuivant avec notre cas d'utilisation, où vous avez une connexion instable, une fois que vous serez déconnecté, vous pouvez à nouveau Ssh dans le serveur et rattacher à la session en cours d'exécution (ou choisir entre les sessions pour reattacher) et vous serez juste là où vous
laisser derrière soi.

Plus d'une fenêtre

Si vous êtes habitué à des gestionnaires de fenêtres de carrelage - comme DWM, Xmonad ou I3 - vous pouvez considérer les multiplexeurs terminaux comme l'équivalent terminal de ces WMS.

Un peu plus que d'autres, ils vous offrent plusieurs fenêtres, la possibilité de basculer facilement entre eux, de modifier les dispositions ou même de redimensionner les fenêtres. Vous souhaitez peut-être utiliser un environnement graphique uniquement en cas de besoin et passé le reste du temps de l'ordinateur dans une console, ou peut-être que vous n'avez pas le choix, comme le travail sur un serveur signifie généralement
ligne de commande seulement ainsi, comme nous l'avons dit, tout ce qui vous facilite la vie en tant qu'utilisateur de la CLI est plus que bienvenu.

Un autre avantage est la gestion des ressources - si vous travaillez sur une machine contrainte, avoir seulement un terminal ouvrir un multiplexeur est plus facile sur la consommation de processeur / RAM plutôt que de plusieurs fenêtres ou onglets. Ou peut-être que, selon ce dont vous avez besoin, vous pouvez remplacer complètement l'interface graphique.

Travail collaboratif

Les séances peuvent non seulement être attachées et remises en place, comme décrit ci-dessus, mais ils peuvent également être partagés. En termes pratiques, cela signifie que plus d'un utilisateur peut s'attacher à une session existante et travailler ensemble comme ils le semblent.

Multiplexeurs terminaux

Liste du multiplexeur terminal

Ce qui suit est une liste des multiplexeurs terminaux et tout ce dont vous avez besoin pour commencer, y compris l'installation, l'utilisation de base, les fonctionnalités et, bien sûr, une comparaison entre eux afin que vous puissiez décider plus facilement ce qui vous convient le mieux et vos besoins.

Si vous ne faites que commencer, ce serait peut-être une bonne idée de les essayer tous, car ce n'est pas une longue liste, et voir par vous-même ce qu'il est le mieux pour vous. Nous fournirons de toute façon des captures d'écran pour l'impatient, mais nous opinions que rien n'est mieux quand il s'agit de décider quoi utiliser que l'utilisation directe, donc si vous avez le temps, essayez-les. Comme d'habitude, nous n'essaierons pas de remplacer les pages manuelles de l'un des programmes présentés ci-dessous, donc pour une référence complète, veuillez utiliser «Man $ programme» pour obtenir les informations complètes.

Écran GNU

L'un des logiciels de multiplexage des terminaux les plus populaires (sinon le leader) sur les systèmes de type UNIX est l'écran GNU - Désormais nommé simplement «écran» pour le plaisir. Screen offre une pléthore suffisamment grande de fonctionnalités pour le faire avoir un groupe d'utilisateurs stable et dévot. Comme son nom l'indique, l'écran est publié sous le GPLV3 et est associé au projet GNU dans son ensemble. Un concept essentiel à l'utilisation quotidienne de l'écran (et d'autres logiciels similaires) est le raccourci de commande. Un raccourci de commande est une clés de clé, qui est personnalisable via un fichier de configuration ou par d'autres moyens (comme le code source, par exemple), qui est suivi d'une touche qui permet à l'utilisateur d'envoyer une commande au multiplexeur.

Prenons un exemple simple: peut-être la commande la plus utilisée dans le logiciel si ce type est celui qui crée une nouvelle fenêtre. Donc, ce que nous devrons faire, c'est appuyer sur le raccourci de commande suivi d'une touche qui indique à l'écran de créer une nouvelle fenêtre pour nous. Le raccourci de commande par défaut dans l'écran est Ctrl + A (pour le reste de cet article, nous utiliserons la notation C-A), et la commande qui suit est «C», qui signifie Create. Mais commençons par le début et voyons comment installer l'écran. Dans Debian / Ubuntu et d'autres distributions Linux basées à Debian, la commande à installer est

$ sudo apt-get d'installation 

Sur les distributions Fedora et Redhat, vous pouvez installer l'écran en émettant la commande Linux suivante:

Écran d'installation de $ sudo yum 

En ce qui concerne Fedora, sur les dernières versions de celui-ci, vous devrez peut-être remplacer Yum par DNF, car il est devenu l'outil de gestion de package de ligne de commande par défaut. Mais la commande ci-dessus devrait fonctionner, car elle vous avertira que Yum est obsolète et vous rediriger vers DNF. Étant donné que l'écran GNU a une longue histoire derrière (l'annonce de première version a été faite sur net.Sources en 1987), il est devenu assez omniprésent sur presque tous les OS qui ont quelque chose à voir avec Unix.

Si vous êtes à l'intérieur x, ouvrez une fenêtre de terminal (ou utilisez un TTY) et tapez «écran». Vous remarquerez peut-être que votre type de terminal a changé en «écran». Cela peut être vérifié en tapant

$ echo $ terme 

Après avoir démarré l'écran.

Maintenant que vous démarrez avec Screen, saisissez la commande pour créer une nouvelle fenêtre et voir ce qui se passe (C-A + C). Si vous vous attendez à un signe graphique montrant que maintenant vous avez deux fenêtres, vous serez un peu déçu. Vous serez emmené dans une nouvelle fenêtre mais c'est tout. Alors maintenant, nous devrons voir comment naviguer entre Windows. Si vous savez à quelle fenêtre vous voulez aller - particulièrement utile lorsque vous n'en avez que quelques-uns ouverts - vous pouvez utiliser C-A suivi d'un "personnage. Vous serez invité à entrer dans l'identifiant de la fenêtre et, en y entrant, vous serez emmené à ladite fenêtre. La commutation des fenêtres peut également être effectuée plus simple avec l'identifiant C-A + $, où $ identifiant est, au moins pour l'instant, le nombre de la fenêtre, ou, même plus simple, en utilisant C-A + Tab (tout comme Alt + Tab dans de nombreux gestionnaires de fenêtres ). Pour aller à la dernière fenêtre utilisée simplement Type C-A deux fois. Si vous, par exemple, devez suivre la sortie d'une console tout en travaillant sur autre chose, vous avez la commande divisée - C-A + S (notez le capital S là-dedans).

Une fonctionnalité dont nous avons parlé plus tôt est celle qui vous permet de détacher / attacher des sessions à volonté. À titre d'exemple, vous souhaitez peut-être fermer le terminal client pour, disons, un redémarrage et puis être en mesure de revenir à votre session distante. Utilisez C-A + C-D pour faire la partie de détachement, et en revenant, ajoutez -t -s un argument pour dépister, en suivant le nom de la session. Pour obtenir la liste des écrans joints, utilisez C-A, suivi de * (astérisque).

Les autres fonctionnalités incluent la copie et la collation (C-A + [pour la copie et C-A +] pour la pâte), la nommage des fenêtres (C-A + A) ou des informations sur la fenêtre (à savoir vous pouvez afficher des informations sur la fenêtre actuelle dans la ligne de message - utilisez C-A + C-I pour ça). Enfin, tuer une fenêtre se fait en utilisant C-A + K.

Quelques notes qui méritent d'être rappelées: premièrement, ce que vous lisez ci-dessus ne fait que gratter la surface; L'écran est un programme capable et nous n'avons sélectionné que ce que nous avons considéré comme le plus important pour qu'un utilisateur commence. Veuillez vous référer à la documentation, en ligne ou à la page manuelle, pour l'ensemble complet des fonctionnalités. Deuxièmement, si vous utilisez bash et / ou
EMACS, vous voudrez peut-être modifier le raccourci de commande par défaut (C-A), car il interférera tôt ou tard avec les raccourcis des programmes respectifs. Comment changer le raccourci de commande est laissé comme un exercice au lecteur.

tmux

L'alternative la plus populaire à l'écran GNU est probablement TMUX. Contrairement à cela, il est limité par BSD et fait même partie de l'installation par défaut de certains systèmes d'exploitation BSD, comme OpenBSD et NetBSD. Cependant, cela ne signifie pas qu'il n'est pas facilement disponible dans la plupart des distributions Linux. Pour Debian / Ubuntu, juste taper

$ sudo apt-get install tmux 

, tandis que pour Redhat / Fedora, la commande d'installation serait

$ sudo yum install tmux 

Maintenant que vous êtes un peu familier avec les multiplexeurs terminaux, nous sauterons les bases, comme la définition d'un raccourci de commande et ainsi de suite, et nous allons dire droit. Alors démarrez un terminal et tapez simplement 'tmux'. Vous verrez, si le processus d'installation s'est terminé avec succès, quelque chose de très similaire à ceci:

La première chose que vous remarquerez est le fait que TMUX affiche par défaut une ligne de message, par opposition à l'écran. Mais commençons par le début: le raccourci de commande par défaut dans TMUX est Ctrl + B (C-b), suivi de la commande respective. Après avoir parcouru cet article, vous remarquerez que certaines des commandes de base sont similaires entre les multiplexeurs terminaux; Ainsi, pour créer une nouvelle fenêtre dans TMUX, la commande est «C» (la commande complète serait C-B + C). Notez comment la ligne de message affiche désormais les deux fenêtres, ainsi que leurs identifiants par défaut, qui sont des entiers positifs, à partir de 0. Afin de naviguer vers une autre fenêtre, vous pouvez utiliser son identifiant respectif (E.g. C-b + 1) ou, pour accéder à la dernière fenêtre utilisée, utilisez C-B + L.

Les commandes sont généralement assez simples et faciles à s'habituer, car elles suivent généralement la règle initiale de la lettre - «C» pour créer, «l» pour la fin et ainsi de suite. Encore une fois, veuillez vous référer à la page manuelle pour une liste complète des commandes.

Avec un émulateur de terminal simple (c'est-à-dire sans aucun multiplexeur), vous remarquerez que vous pouvez facilement faire défiler vers le haut à l'aide de la roue de défilement de la souris ou de Shift + PageUp. TMUX, en tant qu'autres multiplexeurs, a ses propres règles concernant la copie / coller / défilement, donc le défilement habituel comme décrit ci-dessus ne fonctionnera plus. C-B + [entre dans la scène: cette commande vous permettra de copier du texte ou de faire défiler le texte. Avec C-B +], vous pouvez coller le texte le plus récemment sélectionné, et si vous souhaitez sortir du mode Copie / défilement, tapez 'Q'.

Comme l'écran, TMUX offre l'option pour attacher / détacher les sessions; Cette fonctionnalité, comme indiqué précédemment, est l'une des plus importantes pour tout multiplexeur terminal qui se respecte.

L'un des scénarios les plus simples est celui où l'utilisateur a, pour diverses raisons, déconnecter de la session active et veut y revenir dès que possible. C-B + D est utilisé pour détacher la session (celle actuelle), puis, lorsque vous reprenez au terminal, tout ce que l'on doit faire est de taper `` Tmux attach '' et c'est tout, nous sommes de retour d'où nous sommes partis de. Comment vous pouvez vous attacher à la session de votre choix, à condition qu'il y en ait plus d'un, est laissé comme exercice à l'utilisateur.

DVTM

Enfin, mais non le moindre, nous avons du DVTM, dont on peut dire d'abord que c'est le plus ressemblant (au moins à partir de notre humble liste) d'un gestionnaire de fenêtres en carrelage.

Ce n'est pas que l'écran ou TMUX n'ont pas les capacités nécessaires, c'est juste que DVTM ressemble à cela par défaut, comme vous pouvez le voir ici:

Pour commencer depuis le début, pour s'installer sur Fedora ou Centos, faites simplement

$ sudo yum install dvtm 

, Notant que sur CentOS, vous aurez besoin du référentiel EPEL activé et fonctionnel, car les référentiels par défaut n'ont pas de DVTM disponible. Sur les distributions basées sur Debian, la commande utilisée pour installer devrait être

$ sudo apt-get install dvtm 

Puisque vous êtes maintenant plus familier avec les multiplexeurs, allons-y. Tapez simplement 'DVTM' dans un terminal et vous êtes prêt. Le raccourci de commande ici est ctrl + g (c-g), donc, comme nous l'avons vu auparavant, pour créer une nouvelle fenêtre. Vous pouvez simplement modifier le raccourci de commande par défaut pour, par exemple, C-Y (assurez-vous que cela n'interférera pas avec d'autres raccourcis, comme peut-être par votre gestionnaire de fenêtres ou votre environnement de bureau), vous pouvez invoquer / démarrer DVTM ainsi: 'DVTM -M ^ y '.

La fermeture des fenêtres est réalisée par défaut avec C-G + X, et la commutation est effectuée à l'aide des touches J et K. Vous serez, surtout si vous êtes un utilisateur passionné VI / VIM, quelques similitudes avec les raccourcis d'un certain éditeur de texte, vous devriez donc être à la maison si VI / VIM est votre truc. Comme nous l'avons vu dans la section TMUX, l'utilisation de C-G + $ window_number devrait vous emmener à la fenêtre dont vous avez besoin, et DVTM arbore également une fonctionnalité qui vous permet d'envoyer une entrée à toutes les fenêtres visibles: utilisez C-G + A pour cela, suivi de la commande / entrée à envoyer; Utilisez à nouveau c-g + a pour restaurer le comportement normal.

Nous arrivons maintenant à la pièce que nous avons déjà laissée entendre auparavant, les similitudes avec le carrelage WMS. DVTM arbore les options suivantes en ce qui concerne les dispositions:

  • pile verticale - Cela signifie que la soi-disant zone principale obtient la moitié gauche de l'écran et le reste est empilé dans la moitié droite
  • pile inférieure - Comme vous l'avez déjà deviné, fondamentalement la même, mais la zone maître est sur la moitié supérieure et le reste empilé dans la moitié inférieure
  • grille - Toute fenêtre obtient une part égale de l'écran
  • plein écran - Le nom indique tout - toutes les fenêtres obtiennent tout le domaine de l'écran disponible

En ce qui concerne les modes de copie / coller, comme décrit dans la section TMUX, le principe est le même, comment il est fait et les raccourcis diffèrent. C-G + E tube le tampon de défilement vers un éditeur externe, tandis que ce qui écrit l'éditeur à la sortie standard peut ensuite être collé avec C-G + P.

Enfin, la fonctionnalité de détachement / attache est là, mais elle est réalisée en utilisant des outils externes. Bien que ce puissant semble un arrêt au début, n'oubliez pas que le DVTM est une question de simplicité et d'adhésion au principe UNIX de faire une chose et de bien le faire. L'outil externe que nous allons utiliser s'appelle Abduco et vous pouvez l'utiliser comme ceci:

$ Abduco -C DVTM-SESSION 

attacher. Il s'agit généralement d'une installation distincte et cela peut être fait de la même manière que vous avez déjà utilisé pour installer TMUX, et encore une fois, sur Centos et d'autres dérivés RHEL, vous aurez besoin d'EPEL activé pour que l'installation fonctionne. En passant, le détachement se fait à l'aide de c-g + \ et et de reattaquer se fait avec

$ Abduco -a DVTM-SESSION 

En tant qu'alternative à Abduco, vous pouvez utiliser DTACH, et comment il est fait est laissé comme un exercice au lecteur.

Conclusion

Nous espérons que nous vous avons donné tout ce dont vous auriez besoin pour commencer à utiliser les multiplexeurs terminaux ou au moins vous offrir de nouvelles informations sur la question si vous avez déjà utilisé certains ou même tous. Probablement maintenant, vous demandez: «OK, je comprends, mais lequel devrais-je utiliser?"- La réponse à cela est" Celui qui vous convient le mieux ".

Il y a deux choses ici: la première, il y a trop de scénarios utilisateur et de cas d'utilisation pour pouvoir donner une réponse définitive et deux, rappelez-vous que les trois multiplexeurs terminaux que nous avons couverts sont probablement les plus populaires dans le domaine, mais en aucun cas le les seules. Nous disons donc les utiliser, les essayer, les modifier pour répondre au mieux que possible vos besoins et vous saurez ce que vous voulez utiliser.

Encore mieux, si vous avez le temps et les compétences et que vous avez besoin d'une fonctionnalité qui n'est pas là, ouvrez une demande de fonctionnalité ou mieux encore, piratez le programme vous-même et partagez votre code. Nous ne pouvons qu'espérer que vous apprécierez ces outils et devenez plus efficace dans votre travail.

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Masterring Bash Script Loops
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Ubuntu 20.04 Guide
  • Choses à installer sur Ubuntu 22.04
  • Comment doubler Kali Linux et Windows 10
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • À quelle fréquence devez-vous redémarrer votre serveur Linux?