Tmux
tmux
comme Screen sont des multiplexeur de terminaux, ils permettent d’exploiter plusieurs terminaux sous forme d’onglets ou en écran partagé (split screen) au sein d’un seul et même terminal et surtout de créer des sessions distinctes (qui survivent aux déconnections).
Une fois tmux
lancé, nous pouvons créer de nouveaux onglets ou splitter l’écran dans ces onglets en panneaux, combiné aux possibilités de créer des sessions les combinaisons sont nombreuses
Sessions tmux
Il faut tout d’abord lancer tmux
(qui fait apparaitre la barre tmux
en bas du terminal) qui va créer une session par défaut, à partir de là il est possible d’envoyer des instructions à tmux
(via la combinaison de touches CTRL + B
) comme ouvrir un onglet, renommer l’onglet, partager l’écran etc.
tmux
: lancetmux
avec une session nommée 0 par défauttmux new -s nom_de_ma_session
: lancetmux
avec le nom de session spécifiétmux a -t nom_de_ma_session
: permet de se raccrocher à une session existante (suite à une déconnexion par ex)tmux ls
: liste les sessionstmux kill-session -t nom_de_ma_session
: kill la session (contenant toutes les fenêtres et onglets) nommé
Commandes tmux
La séquence CTRL + B
permet d’envoyer une commande à tmux
, suivi de la touche qui donnera l’instruction.
ex: CTRL + B
puis c
(pour créer un nouvel onglet)
Basics
c
: créer un nouvel onglet (create),
: renommer l’onglet en coursx
: killer le panneau en coursd
: se détacher d’une session
Écran splitté
%
: split vertical"
: split horizontalespace
: cycle entre des layouts différents des panneauxALT + flèches
: redimensionne le panneau en cours avec les flèches
Navigation
p
etn
: naviguer entre les onglets (previous et next)w
: liste les fenêtres et panneaux avec un aperçu et permet de naviguer graphiquemento
: passe au panneau suivant (cycle)[
: permet de naviguer avec les flèches et Page Up/Down (et démarrer un copier/coller voir ci-dessous)
Trucs et astuces
copier/coller
tmux comporte une sort de presse-papier (clipboard) qui nous permet de faire du copier/coller entre les différents onglets/panneaux, par exemple si on souhaite copier du texte ou lien depuis lynx, il suffit:
- d’être dans une session tmux
- se positionner dans lynx pour copier le texte voulu avec
CTRL + B + [
- activer la sélection:
Espace
- sélectionner le texte à copier avec les flèches ou PageUp/Down
- copier:
Entrée
- se positionner dans l’onglet/panneau tmux souhaité, dans un vim ou autre pour y coller le texte:
CTRL + B +
]
Configuration avec tmux.conf
La configuration de tmux est définie dans le fichier ~/.tmux.conf
.
scroll avec souris
Pour pouvoir scroller et utiliser un menu contextuel avec la souris dans le terminal:
set -g mouse on
setw -g aggressive-resize on
# UI
set -g status-bg black
set -g status-fg white
conservation de l’historique
Lorsqu’on commence à utiliser tmux, on se rend vite compte que l’historique des commandes n’est pas conservée (dans le .bash_history par ex). C’est une fonctionnalité qu’il faut configurer:
set -g history-file ~/.tmux_history
env bash
Pour obtenir votre shell bash avec toutes ses variables d’env et la coloration:
set -g default-command bash
set -g default-terminal "tmux-256color"