GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tmux suscite la joie dans votre terminal Linux

Laissez-moi planter le décor :un jour, je déboguais un processus de générateur de fonctionnalités chronophage. J'avais un terminal ouvert sur mon Mac et j'étais connecté à ma machine virtuelle (VM) Linux distante où le processus serait lancé. J'ai vérifié quelques petites choses avec le script, et tout avait l'air bien. Mais au moment où j'ai lancé le processus, il était presque temps de quitter le bureau pour la journée. La fermeture de mon ordinateur portable tuerait mon shell, ce qui tuerait le processus. Le processus prend une éternité et, au lieu de pouvoir simplement déboguer les résultats à mon retour à la maison, je devrais le redémarrer et attendre qu'il se termine. J'ai commencé à accepter le fait que je devais rester tard et je n'étais pas content de la tournure des événements.

Un collègue a remarqué ma frustration et m'a demandé comment il pouvait m'aider. J'ai expliqué mon problème en disant qu'il devait y avoir un moyen de continuer à exécuter le processus même après avoir fermé le terminal car il se trouvait sur une machine virtuelle distante. J'avais peur qu'il doive être connecté à ma coque pour ne pas mourir. Puis il m'a présenté tmux.

Exécuter des scripts à distance avec tmux

Le Terminal Linux

  • Les 7 meilleurs émulateurs de terminaux pour Linux
  • 10 outils de ligne de commande pour l'analyse de données sous Linux
  • Télécharger maintenant :Aide-mémoire SSH
  • Aide-mémoire des commandes Linux avancées
  • Tutoriels de ligne de commande Linux

Pour commencer, j'ai fait une installation miam de tmux. Ensuite, j'ai démarré une session tmux en tapant tmux comme une commande. Je pourrais faire tout ce que je ferais dans mon shell normal dans cette session tmux. Comme je venais de commencer le processus, je l'ai tué dans le terminal d'origine. Ensuite, je suis allé à la session tmux et j'ai redémarré le script pour exécuter le processus. Enfin, j'ai mis mon ordinateur portable en veille comme une fin typique de ma journée de travail.

Lorsque j'ai ramené mon ordinateur portable, mon shell de terminal s'était déconnecté de ma machine virtuelle comme je m'y attendais. Je me suis reconnecté à la machine virtuelle sur le shell, sauf qu'il était vide comme un shell l'est normalement lorsque vous le démarrez. Ma première réaction a été la panique, mais j'ai appris que j'avais juste besoin de réaccéder à ma session tmux car elle bourdonnait en arrière-plan.

Pour me rattacher à ma session tmux, j'ai entré tmux ls pour lister toutes les sessions que j'avais ouvertes. Il n'y en avait qu'une, session 0. Pour revenir dans cette session, j'avais juste à faire tmux attach -t 0 . Et voilà, la session a commencé et mon script était toujours en cours d'exécution. J'étais extatique et j'ai rapidement voulu apprendre ce que je pouvais faire d'autre avec tmux.

Utiliser tmux comme gestionnaire de fenêtres

Je ne ferme jamais les onglets du navigateur et je ne ferme jamais les fenêtres, donc j'ai probablement environ 20 terminaux ouverts et en cours d'exécution à tout moment. Marie Kondo ressent probablement une perturbation dans la force chaque fois que j'ouvre une nouvelle fenêtre. Mais au lieu d'avoir quatre terminaux ouverts qui sont tous connectés à la même machine virtuelle et d'essayer de les suivre et de savoir où ils se trouvent dans ma liste de terminaux, avec tmux, je peux ouvrir un terminal sur la machine virtuelle et avoir quatre volets dans ce terminal. Cela est vraiment pratique. Par exemple, je démarre souvent un processus sur la machine virtuelle, puis j'ai besoin d'aller modifier un fichier de propriétés quelque part. Le premier processus étant toujours en cours d'exécution, j'ouvre un autre terminal pour modifier le fichier. Ensuite, je réalise que je dois exécuter un deuxième processus tout en suivant le journal dans une autre fenêtre pour savoir comment modifier le fichier de propriétés que je viens d'ouvrir. Sans tmux, cela créerait trois terminaux qui ne seraient jamais fermés.

tmux a été particulièrement salvateur pour l'exécution de Docker et Kubernetes. Il est extrêmement utile de dédier un conteneur à son propre volet au lieu d'ouvrir un nouveau terminal. Le volet principal me permet de surveiller la santé de mes conteneurs. Je peux facilement ouvrir un nouveau volet chaque fois que j'ai besoin d'entrer dans un conteneur. Je peux même exécuter docker-compose up et docker-compose down sur chaque conteneur en même temps si je le souhaite et n'avoir qu'un seul terminal ouvert pendant que je le fais.

Les volets sont déjà formatés et adjacents les uns aux autres, donc je n'ai pas besoin de rassembler tous mes terminaux qui sont connectés à une seule machine virtuelle et d'essayer de les faire glisser et de les déposer les uns à côté des autres sur mon moniteur - seulement pour avoir à le faire tout recommencer quand j'ai besoin d'ouvrir un nouveau terminal. tmux vous permet même de redimensionner les volets individuels à la volée ! Il est très facile de fermer un volet lorsque vous en avez terminé. Vous ne fermez pas le terminal à la VM ; vous pouvez simplement ouvrir un volet de sauvegarde. Cela m'aide à garder mon bureau propre au lieu de l'encombrer de terminaux oubliés.

Remapper le préfixe tmux

J'ai récemment appris que je pouvais remapper le préfixe tmux pour rendre les choses encore plus faciles. Avant d'exécuter une commande tmux (par exemple, créer un nouveau volet, redimensionner un volet ou copier et coller du texte dans votre terminal), vous devez saisir un modèle de clé spécifique pour faire savoir à tmux que vous êtes sur le point d'invoquer une commande tmux au lieu de n'importe quelle vieille commande Linux. Le préfixe par défaut est CTRL+b . Par exemple, la commande pour ouvrir un nouveau volet horizontalement adjacent à votre volet actuel est juste % , mais pour que tmux écoute, vous devez saisir CTRL+b+% . CTRL+b est un peu gênant pour moi, alors je l'ai remappé sur le backtick (`). Le préfixe remappé rend les choses plus fluides que d'avoir à appuyer sur deux touches qui ne sont pas très bien situées. Maintenant, si je veux un nouveau volet, je peux simplement saisir `+ % et voilà !

tmux du début à la fin

La première chose que je fais sur toute nouvelle machine virtuelle Linux est d'installer tmux. La première chose que je fais dans n'importe quel terminal connecté à une machine virtuelle Linux est de démarrer une session tmux ! Je prends même mes instantanés de VM de base après avoir installé tmux afin de ne pas avoir à réinstaller tmux si j'ai besoin de revenir à un instantané. Chaque fois que je me reconnecte à une machine virtuelle Linux, je fais toujours tmux ls pour trouver ma session tmux précédente, puis attachez-la et coupez là où je me suis arrêté pour la dernière fois.


Linux
  1. Comment changer la couleur de votre terminal Linux

  2. Partez à l'aventure dans votre terminal Linux

  3. Comment apporter la bonne fortune à votre terminal Linux

  4. Comment Noëlsifier votre terminal et votre shell Linux

  5. Comment enregistrer votre terminal Linux en utilisant asciinema

Comment installer et utiliser Tmux (multiplexeur de terminaux) sous Linux

Comment installer tmux sous Linux

Comment ouvrir un PDF dans un terminal Linux

Comment installer le multiplexeur de terminaux Tmux sur Linux

Comment obtenir votre adresse IP sous Linux

Comment installer et utiliser Tmux (multiplexeur de terminaux) dans le système Linux