Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Tmux

Astuces du dimanche #3

Rédigé par dada / 19 avril 2015 / 4 commentaires


Aujourd'hui je vous parle de deux utilitaires qui devraient être connus de tous, ou presque, enfin, ceux qui gèrent des serveurs : Tmux et Screen.

Tmux

On m'en parle depuis pas mal de temps. Jamais je n'avais fait l'effort de m'y mettre de peur de devoir changer trop d'habitudes. Ça, c'était jusqu'à il y a encore quelques jours. Je sais maintenant m'en servir et pourquoi. Conclusion : c'est super !

Installer le paquet

aptitude install tmux

Utiliser tmux

C'est là que ça demande de la pratique, mais pas tant que ça. Une fois que vous connaissez les 5 commandes les plus intéressantes, vous pouvez être le roi du monde :
  • ctrl^b + " = Découpage horizontal
  • ctrl^b + % = Découpage vertical
  • ctrl^b + o = Changer de fenêtre
  • ctrl^b + x = Fermer la fenêtre actuelle
  • ctrl^b + z = Passer en plein écran
A partir de là, vous pouvez vous amuser à afficher des choses comme ça :




De gauche à droite : un echo tout simple, Htop, Emacs avec 2 fenêtres et Emacs affichant le code d'une image PNG en hexl-mode. Le tout dans une seul terminal ouvert. C'est quand même chouette. Notez l'inception Tmux dans Emacs ! :-)
Vous l'aurez compris, Tmux permet d'utiliser plusieurs terminaux dans un seul affichage. Super pratique dans un nombre incalculable de cas. Vous trouverez sans doute une bonne occasion de vous en servir.

Screen

Installer Screen

aptitude install screen
Screen reprend une fonction de Tmux dont je n'ai pas parlé au dessus puisque je ne m'en sers tout simplement pas. Screen permet de détacher un terminal virtuel. En bon français, on pourrait dire que le terminal passe en tâche de fond tout en continuant de fonctionner et sans qu'une action ne le dérange. On peut reprendre la main via une simple commande et rejouer avec ultérieurement.

J'utilise screen dans deux cas : pour faire tourner mon pod diaspora et pour exécuter des commandes extrêmement longues sur un serveur. Screen détachant le terminal dans lequel la commande est exécutée, celle-ci devient insensible à une déconnexion et continue ainsi à tourner. Ça sauve la vie ce genre de chose.

Utiliser Screen

  • screen -S nomdelasession = créer une session
  • screen -ls = liste les sessions en cours
  • screen -r nomdelasession = permet de récupérer une session

Mais encore :

  • ctrl^a + d = détache le terminal en cours
  • ctrl^a + n = va au terminal suivant
  • ctrl^a + p = va au terminal précédent
  • ctrl^a + c = créer un nouveau terminal

On pourrait dire que Tmux est plus avantageux que Screen puisqu'il permet aussi de détacher les terminaux mais, personnellement, je les vois vraiment dans deux rôles différents. Tmux pour le bordel, Screen pour le détachage de terminal.

Voilà pour ce dimanche. Je vous laisse fouiller les mans des deux outils pour trouver ce qu'ils cachent encore. Entre Tmux, Screen et Emacs, je vous souhaite bon courage pour ne pas vous tordre les doigts !