TMUX est comme son nom l'indique un multiplexeur de terminaux, à l'instar de screen ou byobu. Il s'organise en sessions, qui comprennent une ou plusieurs fenêtres (window), découpées en panels (panneau ?).
Il permet donc, notamment :
On lance l'outil depuis un terminal avec la commande tmux
(il va créer une nouvelle session). Pour Lister les sessions existantes qui tournent en arrière-plan :
tmux ls 0: 3 windows (created Sat Oct 17 15:37:15 2020) [161x37] 3: 1 windows (created Sat Oct 17 18:42:39 2020) [161x37]
Pour se connecter (attach) à la session 0 : tmux a -t 0
.
La barre du bas affiche, par défaut :
[0]
bash
par exemple*
qui indique quelle fenêtre est affichée
Par exemple : [0] 0:bash*
Lorsqu'on est dans une session tmux
, on utilise le préfixe (la séquence de touche) Controle + b
pour indiquer à TMUX que ce qui va suivre est une instruction le concernant.
Une fois la session lancée (tmux
exécuté), on obtient un terminal lancé automatiquement dans une fenêtre (ou un onglet). Toutes les commandes sont à saisir en les préfixant de Ctrl + b
(par défaut) suivi de :
c
: pour créer un nouvel onglet ; ceux-ci sont affichés et numérotés dans la barre en bas de la fenêtre.,
: renommer l'onglet courant<nb>
: aller à l'onglet #<nb> (leur #<nb> est affiché devant leur nom, en bas de la fenêtre de la session)&
: tuer l'onglet courantd
: se détacher de la session courante. On sort de TMUX mais notre session continue de tourner en fond, avec les commandes qu'on a lancées dedans.)
: se connecter à la session suivante, si elle existe[
: rentre dans un mode qui permet de scroller dans l'historique de la fenêtre (q
pour quitter ce mode). On peut même directement presser PgUp
ou PgDown
pour entrer directement dans ce mode.Pour afficher plusieurs terminaux dans une même fenêtre, on va splitter celle-ci pour créer des panneaux ou volets (panels) :
%
split vertical“
split horizontal<espace>
: interverti l'organisation du panel (split vertical / horizontal)flèches directionnelles
: se déplacer entre les panelsCtrl
ou Alt + flèches dir
: redimensionner le panel couranto
: sélectionner le panel suivantCtrl + o
: inverser l'emplacement de 2 panelsq
: afficher les IDs des panels<nb>
: sélectionner le panel d'ID <nb>
z
: afficher le panel courant en plein écran (même chose pour quitter le plein écran)!
: placer le panneau courant dans un nouvel onglet:join
: permet de joindre un terminal déterminé (on peut le spécifier avec ses IDs), par ex : :join -v -s 3.0 -p 50
pour joindre le panneau #0 de l'onglet #3 et l'ajouter dans un split vertical découpé à 50% de la hauteur du panneau courant.