in

Comment utiliser tmux sous Linux (et pourquoi c’est mieux que l’écran)

fatmawati achmad zaenuri / Shutterstock

Le Linux tmux commande est un multiplexeur de terminal, comme screen. Ses partisans sont nombreux et bruyants, nous avons donc décidé de comparer les deux. Est tmux vraiment mieux, ou s’agit-il simplement de préférer ce que vous savez?

tmux contre écran

Les deux tmux et GNU screen commandes sont des multiplexeurs terminaux. Ils vous permettent d’avoir plusieurs fenêtres dans une seule fenêtre de terminal et de faire des va-et-vient entre elles. Une fenêtre peut être divisée en volets, chacun vous donnant une ligne de commande indépendante.

Vous pouvez également détacher une session et elle devient une entité sans tête exécutée en arrière-plan. Vous pouvez même fermer la fenêtre du terminal qui l’a lancée. Lorsque vous êtes prêt, vous pouvez ouvrir une nouvelle fenêtre de terminal et rattacher la session en cours d’exécution. Vous pouvez également le faire via une connexion SSH.

Vous pouvez détacher une session sur un ordinateur, rentrer chez vous et vous connecter à l’ordinateur distant. Une fois reconnecté, vous pouvez rattacher la session d’arrière-plan et l’utiliser à nouveau de manière interactive.

Quelle est la commande d’écran?

Le screen command est également un multiplexeur de terminal, et il est rempli d’options. Pour savoir tout ce que vous pouvez en faire, consultez notre article détaillé.

Cette fois, nous allons se concentrer sur tmux. Au fur et à mesure, nous mentionnerons comment screen gère la même fonctionnalité ou fonction.

Une seule chose nous a ennuyés screen. Nous couvrirons cela quand nous y arriverons, et verrons si tmux va mieux.

Installation de tmux

Tandis que screen est généralement installé par défaut sur les distributions Linux populaires, tmux n’est pas. À installer tmux sur Ubuntu, tapez ce qui suit:

sudo apt-get install tmux

Sur Manjaro, vous pouvez utiliser pacman:

sudo pacman -Sy tmux

Sur Fedora 31, tmux est déjà installé.

Démarrer une session tmux

Commencer tmux, tapez-le simplement et appuyez sur Entrée:

tmux

La fenêtre du terminal affichera une barre d’état lorsque vous êtes dans un tmux session.

Le côté droit de la barre d’état affiche le nom d’hôte, l’heure et la date. Le côté gauche affiche les informations suivantes relatives à la session:

  • [0]: C’est le nom de la session. Par défaut, ils sont numérotés en commençant par zéro. Nous expliquons comment vous pouvez donner des noms significatifs aux sessions ci-dessous.
  • 0: bash *: Le 0 indique qu’il s’agit de la première fenêtre de cette session. Le seul processus en cours d’exécution dans cette session est bash. Si vous exécutez un programme, son nom apparaîtra ici. L’astérisque tmux signifie que c’est la fenêtre que vous regardez. Chaque fois que vous créez une nouvelle fenêtre dans un

session, son numéro de fenêtre et le nom du programme qui y est exécuté sont ajoutés à la barre d’état. screen Le

La commande ne vous donne pas de barre d’état. Vous devez voler à l’aveugle et compter sur votre intelligence pour savoir ce qui se passe, ce qui demande un peu de pratique.

Sur le plan positif, vous ne perdrez pas une ligne d’immobilier de fenêtre de terminal. Bien sûr, vous élargiriez normalement la fenêtre de votre terminal pour rendre l’utilisation d’un multiplexeur de terminal utile. Dans ce cas, la perte d’une ligne pour la barre d’état n’est pas vraiment un problème. Nous avons laissé les images des fenêtres du terminal ici à la taille par défaut afin que vous puissiez voir les informations. tmux Les commandes sont données à tmuxen utilisant des touches, et il y a deux parties à cela. Tout d’abord, vous appuyez sur Ctrl + B pour obtenirtmuxattention. Vous appuyez ensuite rapidement sur la touche suivante pour envoyer une commande à

. Les commandes sont données en appuyant sur des lettres, des chiffres, des signes de ponctuation ou des touches fléchées. screenC’est la même chose dans

, sauf que vous appuyez sur Ctrl + A pour attirer son attention.

Pour fermer la fenêtre, appuyez sur Ctrl + B, puis appuyez rapidement sur X. La barre d’état devient orange. Vous êtes ensuite invité à confirmer que vous souhaitez supprimer la fenêtre.

Appuyez sur Y pour fermer la fenêtre ou sur N si vous changez d’avis. Vous n’avez pas besoin d’appuyer sur Entrée par la suite; O ou N suffit pour enregistrer votre choix.

Si vous appuyez sur Y, la fenêtre se ferme. Comme il s’agit de la seule fenêtre de cette session, la session est terminée. tmux Le tmuxla session est fermée et vous êtes renvoyé à la ligne de commande à partir de laquelle vous avez lancé[exited]. Tu verras « 

»Dans la fenêtre du terminal.

Cela peut sembler indiquer une évidence, mais c’est une confirmation que vous avez fermé la session et que vous ne l’avez pas laissée détachée et en cours d’exécution. Nous discuterons des sessions de détachement ci-dessous.

Démarrage d’une session tmux nommée tmux Si vous démarrez régulièrement plusieurs screensessions, vous apprécierez rapidement la fonctionnalité de donner à chacun d’eux un nom significatif. Vous pouvez nommer des sessions dans

, aussi, mais ils ne sont affichés nulle part dans les fenêtres de session. tmux Commencer new avec un nom de session, utilisez le -s (nouvelle session) et la commande

tmux new -s geek-1

(nom de session) option. Notre session s’appellera «geek-1», nous tapons donc ce qui suit: tmux Quand le

session se charge, «geek-1» est affiché comme première entrée dans la barre d'état, à l'extrême gauche. "Une session tmux avec le nom" geek-1

sur le côté gauche de la barre d’état.

Ajout de fenêtres supplémentaires dmesg Pour créer une nouvelle fenêtre dans la session en cours, appuyez sur Ctrl + B, puis sur C. Vous obtiendrez une fenêtre de terminal vide dans la session en cours. Donc, nous allons avoir quelque chose en cours d’exécution dans cette nouvelle fenêtre, commençons le commander -w avec le

dmesg -w

(suivre) option: topMaintenant, nous avons deux fenêtres dans la session; on court dmesg, et l’autre

. Cependant, nous ne pouvons en voir qu’un à la fois (plus à ce sujet dans un instant). tmux Jetez un œil sur le côté gauche de la barre d’état. Nous sommes toujours dans le « geek-1 » dmesg session. Dans la fenêtre zéro, top est en cours d’exécution, et dans la fenêtre un, dmesg est en cours d’exécution. L’astérisque

après

  • nous indique quelle fenêtre est visible.Pour sauter entre les fenêtres, appuyez sur Ctrl + B, puis sur l’une des touches suivantes: N
  • : Affichez la fenêtre suivante.
  • P: Affichez la fenêtre précédente.

0 à 9:

Affichez une fenêtre numérotée de 0 à 9.

Vous pouvez également choisir une fenêtre dans une liste. Si vous appuyez sur Ctrl + B, puis sur W, une liste de fenêtres apparaît.

Pour déplacer la barre en surbrillance orange, appuyez sur les flèches vers le haut ou vers le bas, Accueil ou Fin. La partie inférieure de l’écran affiche un aperçu du contenu dans la fenêtre en surbrillance.

Appuyez sur Entrée pour passer à la fenêtre en surbrillance ou sur Echap pour quitter la liste des fenêtres sans changer.

Détacher et attacher des sessions top Si vous appuyez sur Ctrl + B, puis sur D, vous détacherez la session. Il continuera à fonctionner en arrière-plan, mais vous ne pourrez pas le voir ni interagir avec lui.

Nous avons commencé tmux dans la session afin que nous ayons un processus en cours pour démontrer avec. Ensuite, nous appuyons sur Ctrl + B, puis D. La session disparaît et devient une session d’arrière-plan.

Nous revenons à la fenêtre du terminal d’origine. Il y a un message de attach-session nous disant que la session est détachée. Cela nous rappelle également le nom que nous avons donné à la session. C’est pratique car c’est ce que nous utilisons pour attacher à une session d’arrière-plan, puis la restaurer en une session interactive. -t Pour joindre une session détachée, nous utiliserons la méthode explicite

commande avec la

tmux attach-session -t geek-1

(session cible) option. Nous fournirons également le nom de la session que nous souhaitons rappeler.

Nous tapons ce qui suit:

screen Notre session revient et redevient une session visible et interactive.

Tous les processus de longue durée ou continus que vous avez lancés avant de détacher la session seront toujours en cours d’exécution en arrière-plan (à moins qu’ils ne soient terminés) lorsque vous attachez la session.

peut le faire, mais pas aussi intuitivement. tmux Gérer plusieurs sessions

tmux new -s geek-2

Ouvrons une autre fenêtre de terminal et commençons une nouvelle dmesgsession intitulée «geek-2»:

dmesg -w

Dans cette session, nous commencerons tmux :

Maintenant, nous avons notre « geek-1 » original dmesgsession, et une nouvelle appelée « geek-2 ».

La barre d’état nous montre que cette session s’appelle «geek-2», et il y a une fenêtre qui s’exécute

.

Si nous appuyons sur Ctrl + B, puis sur D, nous dissocions cette session. tmux Geek-2 de session tmux détaché dans une veuve de terminal. tmux De retour dans le « geek-1 »

session, nous appuyons sur Ctrl + B, puis S pour voir une liste de

sessions.

Pour être clair, ceci est une liste de sessions. L’affichage similaire que nous avons vu précédemment était une liste de fenêtres dans une seule session.

Vous pouvez déplacer la barre lumineuse orange en appuyant sur les flèches haut et bas, Accueil et Fin. La section inférieure affiche un aperçu du contenu de la session en surbrillance.

Si vous appuyez sur la flèche droite, les fenêtres de la session en surbrillance s’affichent. tmux Appuyez sur Entrée pour accéder à la session ou à la fenêtre en surbrillance ou sur Echap pour quitter la liste des sessions sans changer de session. Si vous sélectionnez une nouvelle session, votre session actuelle se détache et celle que vous avez sélectionnée est jointe.

Nous avons détaché la session «geek-2» avant de faire cela. Cependant, vous pouvez le faire avec des sessions qui sont toujours attachées à leurs fenêtres de terminal d’origine. Lorsque vous le faites, tout changement d’écran apparaîtra simultanément dans les deux screen sessions.

Le

peut également le faire via un ensemble de commandes similaire.

Utilisation des volets de fenêtre tmux ls Si vous appuyez sur Ctrl + B, puis sur des guillemets doubles («»), vous divisez la fenêtre horizontalement en deux volets.

Cela n’affecte que la fenêtre actuelle; les autres dans la session ne seront pas modifiés. Nous avons utilisé le

dans le volet supérieur pour répertorier les fenêtres de cette session. Il y en a deux et la ligne d’état nous indique que nous sommes dans la première fenêtre. Si nous sautons à la fenêtre zéro en appuyant sur Ctrl + B, puis sur 0 (zéro), nous voyons que c’est exactement comme nous l’avons laissé.

uname -a

ls -hl

Ce sont deux lignes de commande indépendantes, pas deux vues dans une fenêtre; ce sont des coquilles distinctes et séparées. Nous pouvons le montrer en exécutant une commande différente dans chaque volet.

Nous tapons ce qui suit:

Pour passer d’un volet à un autre, appuyez sur Ctrl + B, puis sur la flèche vers le haut, le bas, la gauche ou la droite.%) Deux commandes différentes dans deux volets dans une session tmux dans une veuve de terminal.

Si vous appuyez sur Ctrl + B, puis le signe de pourcentage ( tmux il divise le volet actuel verticalement.

Appuyez sur Ctrl + B, puis sur Q pour faire tmuxfaire clignoter brièvement le numéro de chaque volet.

Ces numéros sont utilisés dans les invites et les messages de

. Appuyez sur Ctrl + B, puis sur X pour fermer le volet actuel. La barre d’état devient orange et vous êtes invité à confirmer que vous souhaitez fermer ce numéro de volet. Appuyez sur Y pour supprimer le volet ou sur N pour laisser les choses telles qu’elles sont. screen Si vous appuyez sur Y, le volet est supprimé. screen Le

La commande a également des volets, mais, encore une fois, leur utilisation est moins intuitive. La chose qui nous dérange

c’est que si vous détachez une session avec des volets, ils disparaissent lorsque vous rattachez cette session. Cela vieillit très rapidement. tmux Une feuille de triche Ctrl + B

Nous avons inclus une feuille de triche des différentes commandes que vous pouvez utiliser dans

  • en dessous de. Commandes de session
  • S: Liste des sessions.
  • $: Renommez la session en cours.
  • RÉ: Détacher la session en cours. tmuxCtrl + B, puis?:

Afficher la page d’aide dans

  • . Commandes de la fenêtre
  • C: Créez une nouvelle fenêtre.
  • ,: Renommez la fenêtre actuelle.
  • W: Listez les fenêtres.
  • N: Passez à la fenêtre suivante.
  • P: Passez à la fenêtre précédente.

0 à 9:

  • Accédez au numéro de fenêtre spécifié. Commandes du volet
  • %: Créez une division horizontale.
  • « : Créez une division verticale.
  • H ou flèche gauche: Accédez au volet de gauche.
  • I ou flèche droite: Déplacez-vous vers le volet de droite.
  • J ou flèche vers le bas: Accédez au volet ci-dessous.
  • K ou flèche vers le haut:Accédez au volet ci-dessus.
  • Q : Afficher brièvement les numéros de volet.
  • O: Parcourez les volets dans l’ordre. Chaque pression vous amène à la suivante, jusqu’à ce que vous les parcouriez toutes en boucle.
  • }: Échangez la position du volet actuel avec le suivant.
  • {: Échangez la position du volet actuel avec le précédent.

X:

Fermez le volet actuel. screen Comment ils se comparent tmux En termes de fonctionnalité, tmux et

les deux fonctionnent de manière similaire et offrent les mêmes caractéristiques principales. C’est la façon dont vous accédez à ces fonctionnalités qui est nettement différente. tmux offre des moyens plus simples et plus confortables d’accéder aux différentes fonctions. Cependant, ce n’est pas la seule différence.

screenLa possibilité de renommer des sessions et des fenêtres dans

est soigné, et le fait qu’il conserve les volets lorsque vous rattachez une session change la donne. tmux, en revanche, perd complètement les volets lorsque vous détachez et rattachez une session. C’est presque assez ennuyeux pour vous éviter de vous détacher en premier lieu.

Il y a tellement plus à

, y compris ses capacités de script incroyablement flexibles. Vous vous devez de le vérifier.

Laisser un commentaire

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

Comment multiplier les nombres dans Google Sheets

Comment multiplier les nombres dans Google Sheets

Partout où vous pouvez regarder (ou diffuser) les débats présidentiels de 2016

Partout où vous pouvez regarder (ou diffuser) les débats présidentiels de 2016