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

Contenu

Un terminal Linux stylisé sur un ordinateur portable avec des sessions shell en arrière-plan.

Sous Linux tmux La commande est un multiplexeur de terminal, Quoi screen. Ses défenseurs sont nombreux et vocaux, nous avons donc décidé de comparer les deux. Il est tmux vraiment mieux, Ou est-ce juste une question de préférer ce que vous savez?

tmux devant l'écran

Les deux tmux y GNU screen commandes son multiplexores terminales. Ils vous permettent d'avoir plusieurs fenêtres dans une seule fenêtre de terminal et de passer de l'une à l'autre. Une fenêtre peut être divisée en panneaux, dont chacun vous donne une ligne de commande distincte.

Vous pouvez également déconnecter une session et elle devient une entité sans tête qui s'exécute en arrière-plan; vous pouvez même fermer la fenêtre du terminal qui l'a démarré. Quand tu es prêt, vous pouvez ouvrir une nouvelle fenêtre de terminal et reconnecter la session qui est toujours en cours. Vous pouvez également le faire via une connexion SSH.

Vous pouvez déconnecter une session sur un ordinateur, rentrez chez vous et connectez-vous à l'ordinateur distant. Quand il se reconnecte, vous pouvez reconnecter la session en arrière-plan et l'utiliser à nouveau de manière interactive.

Quelle est la commande d'écran?

Les screen La commande est également un multiplexeur de terminal et regorge d'alternatives. Pour savoir tout ce que vous pouvez en faire, voir notre article détaillé.

Cette fois, nous allons se concentrer sur tmux. Comme nous allons, nous mentionnerons comment screen gère la même caractéristique ou fonction.

Une seule chose nous a dérangés screen. Nous couvrirons cela quand nous y arriverons, et on verra si tmux ça va mieux.

EN RELATION: Comment utiliser la commande d'écran Linux

Installation de tmux

Temps screen généralement installé par défaut sur les distributions Linux populaires, tmux ce n'est pas ça. Installer tmux sous Ubuntu, écris ce qui suit:

sudo apt-get install tmux

À Manjaro, vous pouvez utiliser pacman:

sudo pacman -Sy tmux

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

Démarrer une session tmux

Pour commencer tmux, il suffit de le taper et d'appuyer sur Entrée:

tmux

La fenêtre du terminal affiche 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 séance. Par défaut, ils sont numérotés, en commençant par zéro. Ensuite, nous couvrons comment vous pouvez donner des noms significatifs aux sessions.
  • 0: frappe *: Les 0 indique qu'il s'agit de la première fenêtre de cette session. La seule procédure qui s'exécute dans cette session est bash. Si vous exécutez un programme, votre 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, votre numéro de fenêtre et le nom du programme qui s'y exécute sont ajoutés à la barre d'état. screen Les La commande ne vous donne pas de barre d'état par défaut. Tu dois voler à l'aveugle et faire confiance à ton esprit pour savoir ce qui se passe, ce qui demande un peu de pratique. (À moins que vousdéfinir votre propre barre d'état

.)

Du bon côté, vous ne perdrez pas une seule ligne d'espace dans la fenêtre du terminal. Depuis lors, J'agrandirais régulièrement la fenêtre de votre terminal pour qu'il soit intéressant d'utiliser un multiplexeur de terminal. Dans ce cas, manquer une ligne pour la barre d'état n'est pas un gros 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 à tmuxà l'aide de touches, et il y a deux parties à cela. Premier, pression Ctrl + B pour obtenirtmuxattention. Ensuite, appuyez rapidement sur la touche suivante pour envoyer une commande à

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

, sauf que tu appuies sur Ctrl + A pour attirer votre attention.

Pour fermer la fenêtre, pression Ctrl + B, puis appuyez rapidement sur X. La barre d'état devient orange. Il vous sera alors demandé de confirmer que vous souhaitez fermer 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 après; O ou N suffit pour enregistrer votre choix.

Si vous appuyez sur Y, la fenêtre se ferme. Parce que c'est la seule fenêtre de cette session, la séance se termine. tmux Les tmuxla session se ferme et revient à la ligne de commande à partir de laquelle elle a commencé[sorti]. Tu verras “

"Dans la fenêtre du terminal.

Cela peut sembler évident, mais c'est une confirmation que vous avez fermé la session et que vous ne l'avez pas laissée déconnectée et en cours d'exécution. Nous discuterons des séances de rupture ci-dessous..

Démarrer une session tmux nommée tmux Si vous commencez régulièrement screenséances, vous apprécierez rapidement la fonctionnalité de donner à chacun d'eux un nom significatif. Vous pouvez nommer des sessions dans

, en outre, mais ils ne sont affichés nulle part dans les fenêtres de session. tmux Pour commencer new avec un nom de session, utiliser el -s (nouvelle séance) commander, et le

tmux nouveau -s geek-1

(nom de la session) option. Notre session sera appelée “geek-1”, donc on écrit ce qui suit: tmux Quand il

charge de session,

Une session tmux avec le nom “geek-1” sur le côté gauche de la barre d’état.

Ajouter plus de fenêtres dmesg Pour créer une nouvelle fenêtre dans la session en cours, pression Ctrl + B puis C. Vous obtiendrez une fenêtre de terminal vide dans la session en cours. Ensuite, nous aurons quelque chose en cours d'exécution dans cette nouvelle fenêtre, commençons le commander -w avec lui

dmesg -w

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

. Malgré cela, on ne peut en voir qu'un à la fois (Plus sur cela dans un instant). tmux Jetez un œil à la partie gauche de la barre d'état. Nous sommes toujours dans le “geek-1” dmesg session. A la fenêtre zéro, le haut est en marche, et dans la fenêtre un, dmesg Il est en train de courir. L'astérisque

après

  • nous indique quelle fenêtre est visible.Pour sauter entre les fenêtres, pression Ctrl + B, puis l'une des touches suivantes: Nord
  • : Afficher la fenêtre suivante.
  • PAG: Afficher la fenêtre précédente.

0 une 9:

Afficher une fenêtre numérotée du 0 Al 9.

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

Pour déplacer la barre de surbrillance orange, appuyez sur les flèches haut ou bas, Début 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 accéder à la fenêtre en surbrillance ou sur Echap pour quitter la liste des fenêtres sans modifier.

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

Nous avons commencé tmux en séance, nous avons donc une procédure en cours pour le prouver. Après, on appuie 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 séparée. Cela nous rappelle aussi le nom que nous avons donné à la session. Ceci est utile 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 distincte, nous utiliserons l'auto-explicatif

commande avec le

tmux attach-session -t geek-1

(séance cible) option. Nous fournirons également le nom de la session dont nous voulons nous souvenir.

Nous écrivons ce qui suit:

screen Notre session revient et redevient une session interactive visible.

Toutes les procédures de longue durée ou continues que vous avez commencées avant de déconnecter la session continueront de s'exécuter en arrière-plan (à moins qu'ils ne soient faits) quand je joins la session.

peut le faire, mais pas si intuitivement. tmux Gestion de plusieurs sessions

tmux nouveau -s geek-2

Ouvrons une autre fenêtre de terminal et commençons une nouvelle dmesgsession appelée “geek-2”:

dmesg -w

Dans cette séance, nous commencerons tmux :

Maintenant, nous avons notre “geek-1” original dmesgsession et un nouvel appel “geek-2”.

La barre d’état nous indique que cette session est appelée “geek-2”, et a une fenêtre qui s'exécute

.

Si nous appuyons sur Ctrl + B, puis D, nous séparons cette session. tmux Geek-2 session tmux séparée dans un terminal widnow. tmux Retour dans le “geek-1”

session, on appuie sur Ctrl + B, puis Y pour voir une liste de

séances.

pour être clair, c'est une liste de séances. L'écran équivalent que nous avons vu précédemment était une liste de fenêtres en une seule session.

Vous pouvez déplacer la barre orange en surbrillance en appuyant sur les flèches haut et bas, Début et fin. La section du bas montre 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 Échap pour quitter la liste des sessions sans changer de session. Si vous sélectionnez une nouvelle session, l'actuel est déconnecté et celui que vous avez sélectionné est attaché.

Nous séparons la session “geek-2” avant de le faire. Malgré cela, vous pouvez le faire avec des sessions qui sont toujours connectées à leurs fenêtres de terminal d'origine. Quand je fais, les changements d'écran apparaîtront simultanément sur les deux screen séances.

Les

La commande peut également le faire via un ensemble équivalent de commandes.

Travailler avec des vitres tmux ls Si vous appuyez sur Ctrl + B puis guillemets (""), divise la fenêtre horizontalement en deux panneaux.

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

commande dans le volet supérieur pour lister les fenêtres de cette session. Il y a deux, et la ligne d'état nous dit que nous sommes dans la première fenêtre. Si nous sautons à la fenêtre zéro en appuyant sur Ctrl + B, et après 0 (zéro), on voit qu'il est comme on l'a 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 panneau.

Nous écrivons ce qui suit:

Pour passer d'un panneau à l'autre, pression Ctrl + B puis les flèches vers le haut, vers le bas, gauche ou droite.%) Deux commandes différentes sur deux panneaux dans une session tmux dans un terminal veuf.

Si vous appuyez sur Ctrl + B puis le signe pourcentage ( tmux divise le panneau actuel verticalement.

Présion Ctrl + B puis Q pour faire tmuxafficher brièvement le numéro de chaque panneau.

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

. Présion Ctrl + B puis X pour fermer le panneau actuel. La barre d'état devient orange et vous êtes invité à confirmer que vous souhaitez fermer ce numéro de panneau. Appuyez sur Y pour retirer le panneau, ou N pour laisser les choses telles qu'elles sont. screen Si vous appuyez sur Y, le panneau est retiré. screen Les

La commande a aussi des panneaux, mais, de nouveau, sont moins intuitifs à utiliser. Ce qui nous dérange

En d'autres termes, si vous déconnectez une session en panel, disparaître lorsque vous reconnectez cette session. ça vieillit très vite. tmux Une Ctrl + B Aide-mémoire

Nous avons inclus une aide-mémoire des différentes commandes que vous pouvez utiliser dans

  • au dessous de. Commandes de session
  • S: Lister les séances.
  • PS Renommer la session en cours.
  • ré: Détacher la session en cours. tmuxCtrl + B, et après?:

Afficher la page d'aide dans

  • . Commandes de fenêtre
  • C: Créer une nouvelle fenêtre.
  • ,: Renommer la fenêtre actuelle.
  • W: Lister les fenêtres.
  • NORD: Aller à la fenêtre suivante.
  • PAG: Aller à la fenêtre précédente.

0 une 9:

  • Aller au numéro de fenêtre spécifié. Commandes du panneau
  • %: Créer une division horizontale.
  • ": Créer une division verticale.
  • H ou flèche gauche: Déplacer vers le panneau de gauche.
  • I ou flèche droite: Déplacer vers le panneau de droite.
  • J ou flèche vers le bas: Accédez au panneau ci-dessous.
  • K ou flèche vers le haut:Allez dans le panneau ci-dessus.
  • Q : Afficher brièvement les numéros de panneau.
  • O: Faites défiler les panneaux dans l'ordre. Chaque pression vous amène à la suivante, jusqu'à ce que tout passe par.
  • }: Échangez la position du panneau actuel avec le panneau suivant.
  • {: Échanger la position du panneau actuel avec le précédent.

X:

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

les deux fonctionnent de manière équivalente et offrent les mêmes fonctionnalités principales. C'est la façon dont vous accédez à ces fonctions qui est nettement différente.. tmux offre des moyens plus faciles et plus pratiques d'accéder aux différentes fonctions. Malgré cela, ce n'est pas la seule différence.

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

est commandé, et le fait que vous conserviez vos tableaux de bord lorsque vous reconnectez une session change la donne. tmux, d'autre part, perdre absolument des panneaux lors de la déconnexion et de la reconnexion d'une session. C'est presque assez ennuyeux pour éviter de se séparer en premier lieu..

Il y a beaucoup plus à

, y compris ses capacités de script incroyablement flexibles. Tu te dois de le vérifier.

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.