--- title: Howto Tmux categories: sysadmin ... 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 et "panes". Un "pane" tmux est une fenêtre dans la terminologie de screen. Une fenêtre tmux est un agencement d'un ou plusieurs "pane(s)" (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 ## Installation ~~~{.bash} # 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 : ~~~{.bash} $ tmux ~~~ Pour lancer une nouvelle session sous le nom test: ~~~{.bash} $ tmux new -s test ~~~ Pour lancer une nouvelle session avec mutt par exemple : ~~~{.bash} $ tmux new mutt ~~~ Pour se rattacher à la session tmux 1 (voir tmux ls) : ~~~{.bash} $ tmux attach -t 1 ~~~ À noter que plusieurs clients peuvent de rattacher à la même session simultanément (partage). Une fois attaché à une session tmux, voici la liste des commandes de base utiles : ~~~ +b+d : sortir de tmux +b+c : créer une nouvelle fenêtre +b+n : se déplacer sur la fenêtre suivante +b+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 "panes" : ~~~ +b+x : fermer un pane +b+% : créer un pane vertical +b+" : créer un pane horizontal +b+z : passer le pane courant en plein écran +b+s : envoyer le pane courant vers une autre fenêtre +b+ : se déplacer entre les régions splitées +b+} : déplacer un pane vers la gauche +b+{ : déplacer un pane vers la droite +b+, : renommer un pane ~~~ ### copier/coller ~~~ +b+[ : sélectionner la zone à copier +b+] : coller +b+= : se déplacer dans le buffer ~~~ ### clients connectés Une fois connecté à une session, il est possible de lister les clients connecté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 : ~~~ $ tmux detach client -t /dev/pts/8 $ tmux list-clients /dev/pts/3: jdoe [193x42 rxvt-unicode-256color] (utf8) ~~~