Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tips:tmux [2020/02/14 14:13] qduchemitechnique:tips:tmux [2021/01/26 20:07] (Version actuelle) qduchemi
Ligne 1: Ligne 1:
 +{{indexmenu_n>30}}
 +# Utiliser tmux pour administrer l'infrastructure
 +
 +Le but de cette page est de présenter `tmux(1)`, d'expliquer les bases
 +de son utilisation et d'exposer nos recommandations quant à son
 +utilisation sur l'infrastructure de Picasoft. Elle ne présentera pas
 +(du moins pour l'instant) son utilisation avancée et sa personnalisation.
 +
 +## Présentation
 +
 +tmux est un multiplexeur de terminaux similaire à GNU Screen, qui permet
 +également de gérer des sessions. Cela signifie qu'il permet de découper
 +une même fenêtre de terminal en plusieurs sections et de faire persister
 +les sessions SSH même en cas de déconnexions, volontaires ou
 +accidentelles.
 +
 +`tmux` est exécuté sur l'hôte sur lequel se trouve la session concernée.
 +Des cas d'usage courants comportent :
 +
 +- l'utiliser sur un serveur pour stabiliser une session et ne pas
 +risquer de la perdre ;
 +- l'utiliser sur un serveur pour avoir accès à plusieurs shells
 +sans lancer de multiples connexions/utiliser plusieurs fenêtres de
 +terminaux ;
 +- l'utiliser en local pour faire persister un processus après avoir
 +fermé un terminal ;
 +- l'utiliser en local comme un gestionnaire de fenêtres terminal.
 +
 +<bootnote>
 +tmux est contrôlé de deux manières : avec des raccourcis et avec des
 +commandes. Les deux sont équivalents mais leur utilisation peut être
 +plus ou moins adaptée selon le contexte (e.g. script vs utilisation
 +interactive). Les raccourcis utilisent un préfixe, similaire en concept
 +à la touche `<Leader>` de Vim, qui est par défaut `C-b` (Ctrl-b).
 +</bootnote>
 +
 +Les commandes tmux peuvent être abrégées tant qu'elles sont
 +déterminables avec la version raccourcie. Ainsi `tmux a` et `tmux
 +attach-session` sont équivalents, comme `tmux detach` et `tmux det`.
 +
 +## Gestion de sessions
 +
 +Il suffit de lancer `tmux` sur un hôte pour créer une session utilisant
 +`$SHELL`. Une barre de statut apparaît alors, comportant des
 +informations sur la session comme son nom, celui du processus courant,
 +le nom de l'hôte et la date. Si le terminal est fermé, cette session
 +n'est pas perdue. Pour la récupérer, il suffit de lancer `tmux attach`
 +sur le même hôte.
 +
 +Il est également possible de passer explicitement une session en
 +arrière-plan avec `tmux detach` ou le raccourci `C-b d`. Les processus
 +de cette session persistent et on peut à nouveau se rattacher à la
 +session avec `tmux attach`.
 +
 +Il est possible d'avoir plusieurs sessions en parallèle. Elles sont
 +alors listables avec `tmux ls` ou `C-b s`. Pour se connecter à une
 +session en particulier, il suffit d'utiliser `tmux attach -t <name>` ou
 +d'utiliser le menu de `C-b s`. L'id d'une session peut-être changé avec
 +`tmux rename <new-name>` ou `C-b $`.
 +
 +`tmux kill-session` permet de terminer une session.
 +
 +Il est à noter que la plupart des commandes `tmux` agissent sur la
 +session courante, mais qu'il est possible d'en cibler une autre avec
 +l'option `-t` (pour *target*).
 +
 +## Multiplexage
 +
 +tmux permet également de présenter à l'utilisateur plusieurs fenêtres et
 +panneaux dans un même terminal. Une fenêtre est un ensemble de panneaux,
 +occupant chacun une partie du terminal. On pourrait par exemple avoir au
 +sein d'une même session :
 +
 +- une fenêtre avec deux panneaux : un à gauche avec Vim et un droite
 +avec mutt
 +- une autre avec trois panneaux : un un gauche avec top, un en haut à
 +droite avec bash et un en bas à droite avec le tail d'un journal
 +
 +Il est possible de créer un panneau vertical avec `C-b %`, un horizontal
 +avec `C-b "`, de changer de panneau avec `C-b o`, d'en supprimer un avec
 +`C-b x`, de créer une fenêtre avec `C-b c` et d'en changer avec `C-b n`.
 +
 +## Recommandations
 +
 +<bootnote critical>
 +Nous encourageons fortement l'utilisation de tmux au sein des connexions
 +SSH, surtout lors de l'exécution de commandes ayant un impact important
 +sur le système ou si la qualité de la connexion est faible. Cela réduit
 +par exemple le risque de laisser le système dans un état instable si la
 +connexion SSH tombe pendant une mise à jour.
 +</bootnote>
 +
 +## Aller plus loin
 +
 +La page man de tmux contient d'autres commandes et raccourcis permettant
 +une utilisation plus avancée ainsi que des explications sur sa
 +configuration. Il est notamment possible d'utiliser des raccoucis par
 +défaut inspirés par `vi` plutôt qu'Emacs, de configurer la barre de
 +statut et de personnaliser les différents raccourcis.
  
  • technique/tips/tmux.txt
  • de qduchemi