##### Tmux #### WTF ? Tmux est un terminal que l'on peut lancer, pour ensuite s'en détacher, s'y rattacher, etc. Cas d'utilisation: * travailler à distance avec une connexion de mauvaise qualité: la connexion saute, on la relance, on se rattache au tmux, on retrouve ses commandes et ses fichiers * travailler à distance, lancer des commandes qui durent longtemps: on lance la commande dans un tmux, on se détache du tmux, on se déconnecte, la commande tourne toujours. * travailler à plusieurs: un participant lance un tmux, les autres s'y attachent. La session est partagée. #### Installation yum install tmux #### Configuration Pour notre besoin, pas nécessaire. #### Utilisation de base ### Lancer un tmux: L'option -s permet de //nommer// notre tmux tmux new -s tmux1 ### Se rattacher à un tmux existant: tmux at -t tmux1 ### Lister les tmux existants tmux ls ### Créer une nouvelle fenêtre Par défaut, on se retrouve avec un tmux comportant 1 seule fenêtre, mais on peut en créer plusieurs, dans des "onglets" contrôle+b c ### Se déplacer d'une fenêtre à l'autre Pour passer d'un "onglet" à l'autre, 2 possibilités: * contrôle+b N #N étant le n° de la fenêtre à atteindre * contrôle+b j ou l # j pour aller à la fenètre de gauche, l pour aller à celle de droite - cf les commandes de déplacement dans Vi ### Fermer une fenêtre ou un tmux Se déconnecter d'une fenêtre tmux va la fermer. Fermer la dernière fenêtre tmux va fermer celui-ci Mais il est peut-être préférable de s'en détacher ### Se détacher d'un tmux contrôle+b d ### Scroller contrôle+b [ permet de passer en mode scrolling, visible via un compter jaune en haut à droite de l'écran puis pageUp ou pageDown, ⬆️ ou ⬇️ q permet de quitter le mode "scrolling" #### Utilisation avancée ### Travailler à plusieurs Un utilisateur va créer le tmux: tmux -S /tmp/shared_tmux new -s shared #-S permet de spécifier le socket, un réglage de permission sur celui ci permet de contrôler qui peut se rattacher au tmux. les autres vont s'y rattacher. tmux -S /tmp/shared_tmux at -t shared Inconvénients: cela demande un peu de discipline. Tout redimensionnement de terminal est propagé aux autres utilisateurs. Des astuces existent pour mettre en place des tmux en lecture-seule. ### Partage de fenêtre il est possible de partager une fenêtre: * contrôle+b % pour séparer *verticalement* la fenêtre * contrôle+b " pour séparer *horizontallement* la fenêtre. ### Envoyer les entrées claviers sur plusieurs fenêtres Après avoir fait contrôle+b a, toutes les frappes claviers sont envoyées à toutes les fenêtres tmux actives. Imaginez une fenêtre tmux partagée en 3, avec une connexion ssh sur 3 machines différentes, il sera possible d'exécuter les mêmes commandes sur les 3 machines en même temps.