Howto Tmux
Tout comme screen, Tmux permet de gérer des terminaux lancés en arrière plan. Il s’agit d’une alternative enrichie qui prend notamment en charge des splits plus complexes.
Il diffère de screen avec le concept de fenêtres (“windows”) et panneaux (“panes”). Un panneau tmux est une fenêtre dans la terminologie de Screen. Une fenêtre Tmux est un agencement d’un ou plusieurs panneaux (par exemple, deux fenêtres côte à côte).
D’autres points de comparaison :
- Les fenêtres sont des entités indépendantes qui peuvent être attachées simultanément à plusieurs sessions et peuvent être déplacées librement entre les sessions d’un même serveur Tmux ;
- Plusieurs buffers ;
- Choix des raccourcis VI ou Emacs ;
- Sous licence BSD.
http://man.openbsd.org/OpenBSD-current/man1/tmux.1
Voir aussi : HowtoXPanes
Installation
# apt install tmux
Utilisation de base
Lister les sessions lançées :
$ tmux ls
perso: 2 windows (created Mon Sep 5 09:34:52 2016) [315x78]
travail: 1 windows (created Fri Oct 21 16:05:10 2016) [315x78]
Pour lancer une nouvelle session :
$ tmux
Pour lancer une nouvelle session sous le nom “test” :
$ tmux new -s test
Pour lancer une nouvelle session avec mutt par exemple :
$ tmux new mutt
Pour se rattacher à la session Tmux 1 (voir tmux ls
)
:
$ tmux attach -t 1
À noter que plusieurs clients peuvent de rattacher à la même session simultanément (partage).
Personnaliser le préfix
Par défaut, Tmux utilise la séquence <Ctrl>+b
comme préfix pour les commandes internes. Il est possible de modifier ce
préfix dans la configuration, par exemple pour avoir
<Ctrl>-a
comme dans Screen :
set -g prefix C-a
Cette personnalisation étant fréquente, pour faciliter la
documentation, nous indiquerons ici <Prefix>
à la
place de <Ctrl>+b
.
Une fois attaché à une session Tmux, voici la liste des commandes de base utiles :
<Prefix>+d : sortir de tmux
<Prefix>+c : créer une nouvelle fenêtre
<Prefix>+n : se déplacer sur la fenêtre suivante
<Prefix>+w : lister les fenêtres disponibles
Utilisation avancée
panneaux
Une fois attaché à une session Tmux, voici la liste des commandes pour gérer les panneaux :
<Prefix>+x : fermer un panneau
<Prefix>+% : créer un panneau vertical
<Prefix>+" : créer un panneau horizontal
<Prefix>+z : passer le panneau courant en plein écran
<Prefix>+s : envoyer le panneau courant vers une autre fenêtre
<Prefix>+<flèche> : se déplacer entre les régions splitées
<Prefix>+} : déplacer un panneau vers la gauche
<Prefix>+{ : déplacer un panneau vers la droite
<Prefix>+, : renommer un panneau
copier/coller
<Prefix>+[ : sélectionner la zone à copier
<Prefix>+] : coller
<Prefix>+= : se déplacer dans le buffer
Supprimer les buffers
Tmux garde en mémoire les chaînes de charactères qui ont été copiées. Pour les supprimer :
clients attachés
Une fois connecté à une session, il est possible de lister les clients attachés :
$ tmux list-clients
/dev/pts/3: jdoe [193x42 rxvt-unicode-256color] (utf8)
/dev/pts/8: jdoe [181x41 xterm] (utf8)
Si on souhaite détacher proprement un des clients, 3 méthodes :
La méthode facile :
<Prefix>+D : (c'est bien un D majuscule) donne la liste des clients attachés, on choisi avec <Enter> celui ou ceux à détacher.
La méthode bas niveau :
$ tmux detach-client -t /dev/pts/8
La méthode “à la hache” :
$ tmux kill-client /dev/pts/8
Dans tous les cas on peut vérifier ensuite que le client a été détaché :
$ tmux list-clients
/dev/pts/3: jdoe [193x42 rxvt-unicode-256color] (utf8)
Options globales de session
Masquer la barre d’état
<Prefix> :set -g status off
Embrasser les 256 couleurs
Par défaut, tmux donne “screen” comme nom de terminal. Si on souhaite
libérer le pouvoir des 256 couleurs, il suffit de changer en
“screen-256color” soit en entrant la commande, soit en dans son
.tmux.conf
$ cat .tmux.conf
set -g default-terminal "screen-256color"