Premiers Pas
Installation
Tmux s'installe sur la machine où il sera exécuté. Pour cela, il faut au préalable l'installer avec la commande suivante :
sudo apt install tmux
Configuration
Dans tmux, tout se fait par des raccourcis clavier. Ceux par défaut peuvent être difficiles à retenir. Notre première action sera donc de les remplacer par des plus simples. Dans un terminal, éditer le fichier de configuration
nano ~/.tmux.conf
et y ajouter le contenu suivant
# Activate color support
set -g default-terminal "screen-256color"
# Activate mouse support
set -g mouse on
# Add more history
set -g history-limit 100000
# Setup the status bar
set -g status-right ' #{?client_prefix,P,} "#{host}"'
set -g status-left-length 30
set -g status-right-length 30
# Change prefix key (Control+Space)
unbind C-b
set -g prefix C-Space
# Change key to reload (r)
unbind r
bind r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf"
# Add key to kill current session
unbind q
bind q kill-session
# Change key for splitting panes (h & v)
## v and h are not binded by default, but we never know in the next versions...
unbind v
unbind h
unbind % # Split vertically
unbind '"' # Split horizontally
bind v split-window -h -c "#{pane_current_path}"
bind h split-window -v -c "#{pane_current_path}"
Nous verrons par la suite ce que font toutes ces lignes.
Ouverture et Fermeture de sessions
Ouverture
Pour ouvrir une session tmux, il suffit d'exécuter la commande tmux
dans un terminal. Cela ouvrira un terminal dans le terminal, que l'on pourra reconnaître par la présence d'une barre verte en bas.
Complément : Ouverture en SSH
Tmux est plus souvent utilisé au sein d'une connexion SSH. Il est donc possible de se connecter en SSH directement à l'intérieur d'une session en tapant :
ssh login@host -t tmux
Fermeture
Une session tmux peut se fermer de plusieurs manières :
En quittant le dernier terminal dedans en faisant un
exit
ou avec le raccourci clavier control et d (Ctrl-D
)En demandant explicitement à tmux de terminer tous les terminaux de la sessions avec le raccourci
Ctrl-Space
puisq
Fondamental : Préfixe
Le raccourci que l'on vient d'effectuer (Ctrl-
Space
avant q
) est ce que l'on appelle en tmux le préfixe. Il porte ce nom car toutes les commandes tmux commencent par un préfixe afin de les différencier des raccourcis classiques. On les dénotera <prefix><key>
par la suite, avec key
le raccourci rentré après (q
dans notre dernier exemple).
Attacher et Détacher
On peut se détacher d'un terminal, c'est-à-dire le laisser tourner en arrière plan, en effectuant la commande suivante :
<prefix>d
avec d
pour detach. Ensuite, on peut se rattacher à la dernière session ouverte avec la commande
tmux attach
# ou pour aller plus vite
tmux a
On peut donc se rattacher rapidement à une précedente session tmux depuis SSH avec la commande
ssh login@host -t "tmux a"
Plusieurs connexions
Exemple :
Plusieurs personnes peuvent également se connecter en même temps sur une seule connexion. Pour vérifier cela, connectez vous sur le VPS d'un camarade dans une session commune.
Multi-Terminal
Passons désormais au véritable pouvoir de tmux : splitter un terminal en plusieurs. Pour cela, on utilisera la commande
<prefix>v
pour séparer verticalement et
<prefix>h
pour séparer horizontalement.
Pour passer d'un terminal à l'autre, on peut utiliser la souris ou
<prefix>LeftArrow
<prefix>RightArrow
<prefix>UpArrow
<prefix>DownArrow
Zoomer
Il est parfois utile de mettre un seul terminal en "plein-écran" sans pour autant fermer les autres.
Pour cela, on peut zoomer sur le terminal courant avec le raccourci suivant :
<prefix>z
pour entrer et sortir du zoom.
Fenêtres
En plus d'avoir plusieurs terminaux en une vue, il est possible d'avoir plusieurs vues, appellées fenêtres. Une fenêtre contient plusieurs terminaux et il peut y avoir plusieurs fenêtres. Cela peut être utile quand vous auriez envie d'ouvrir un nouveau terminal pour avoir une vue dégagée par exemple. Pour créer une fenêtre, rentrer le raccourci suivant :
<prefix>c
ce qui ajoutera une sorte d'onglet en bas à gauche de la barre verte et nous placera dans la fenêtre nouvellement créée. Pour revenir à la fenêtre précédente, on peut soit cliquer sur son onglet à la souris, soit entrer le raccourci suivant :
<prefix>n
pour "next" (les fenêtres étant cycliques, passer à l'après-dernier revient à passer au premier).
Sessions
En fait il existe encore un niveau de multiplexage au dessus des fenêtres : les sessions. Nous ne les aborderons cependant pas car peu adaptées à notre usage. Pour notre culture et curiosité, notons donc qu'il est possible d'avoir plusieurs sessions en parallèle, comme par exemple un pour monitorer les services, une pour débugger les logs et une pour éditer les fichier usuels.
Fermeture
Comme on l'a vu au début de ce module, il est possible de quitter tmux avec
<prefix>q
ce qui aura pour effet de forcer la fermeture de tous les terminaux de toutes les fenêtres de cette session.