Contactez-nous
Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81
Débrider son terminal avec tmux
Introduction
Tmux est un multiplexeur de terminal qui vous permettra d'augmenter significativement votre productivité, que ce soit en local sur son poste ou même sur un serveur distant.
Mais plus exactement qu'est-ce-qu'un multiplexeur de terminal ? Pour reprendre le site web de tmux :
It lets you switch easily between several programs in one terminal, detach them (they keep running in the background) and reattach them to a different terminal
Cela va donc nous permettre d'avoir de multiples programmes ouverts dans un seul terminal, de pouvoir basculer des uns aux autres et pas mal d'autres choses.
Tmux fonctionne également sur le modèle client / serveur, on va donc pouvoir avoir plusieurs utilisateurs sur un même terminal.
Installation
Le code source de tmux est hébergé sur Github.
Vous pourrez trouver tmux dans la majorité des package manager, dans ce tutorial nous allons travailler sur debian.
Voici donc la commande pour l'installer depuis apt :
$ sudo apt-get install tmux
Utilisation basique
Pour lancer une nouvelle session tmux il suffit simplement de taper :
$ tmux
Interface
Vous deviez retrouver votre shell favori, mais cette fois-ci vous remarquerez la barre de status de tmux en bas.
Dans l'ordre de gauche à droite :
- [1] : Le numéro de la session active entre crochets (ici 1).
- 0:~* : Une fenêtre ouverte (fonctionne comme des onglets) avec le titre (ici ~, je suis dans mon homedir et je n'ai pas explicitement donné de nom) ainsi que * qui signifie que la fenêtre est active.
- elie-N750JK : le nom d'hôte de la machine
- La date courante
Cette barre est bien sur personnalisable, nous ne nous attarderons pas sur ce point dans ce tutorial.
Commandes de base
La gestion de tmux se fait essentiellement via des raccourcis clavier qui commencent tous par une hotkey (Control+b par défaut), voici la liste des commandes utiles sous tmux :
- c : Créer une nouvelle fenêtre dans la session tmux active
- n : Switcher entre les différentes fenêtres de la session
- 0 : Switcher sur la fenêtre 0
- d : Détacher la session (la session est mise en arrière-plan mais n'est pas fermée)
- , : Renomme la fenêtre courante
- w : Affiche la liste des fenêtres (ce qu'on va retrouver dans la statusbar)
- t : Afficher l’heure
- & : Ferme la fenêtre
- ? : Affiche les commandes disponibles
- : : Affiche le prompt tmux
Commandes des split
Il est possible de découper une fenêtre en multiples panneaux avec les commandes suivantes :
- " : Split vertical du terminal courant
- % : Split horizontal du terminal courant
- x : Ferme le panneau
Utilisation avancée
Attach & detach
Il est possible de passer toute une session tmux en arrière plan ou de rejoindre une session en cours.
Pour cela 3 commandes utiles :
- attach : permet de s'attacher à une session
- detach : permet de passer la session courante en arrière-plan
- list-sessions : permet de lister les sessions actives
On peux aussi utiliser le raccourci Ctrl+b + d pour détacher la session.
On peux également attacher plusieurs clients à la même session !
Configuration
Avec une configuration avancé on peux utiliser la souris pour gérer les panneaux et les fenêtres.
Dans cette configuration on peux aussi s'amuser à customiser la statusbar.
Nous n'allons pas rentrer dans les détails de la configuration, pour en savoir plus se référer à la documentation de tmux.
Voici une configuration basique mais assez complète sans être trop intrusive : https://gist.github.com/eliecharra/50a0214d4623d25ecd1c
# Terminal # -------- # fireworks set-option -g default-terminal "screen-256color" # Mouse # ----- set -g mode-mouse on set -g mouse-resize-pane on set -g mouse-select-pane on set -g mouse-select-window on # Windows # ------- # Split window horizontaly (legacy & 1.9+) bind-key '|' split-window -h #bind-key '|' split-window -h -c "#{pane_current_path}" # Split window verticaly (legacy & 1.9+) bind-key '-' split-window -v #bind-key '-' split-window -v -c "#{pane_current_path}" bind-key '_' split-window -v #bind-key '_' split-window -v -c "#{pane_current_path}" # Status bar # ---------- # Refresh every 5 seconds set-option -g status-interval 5 # Justify on left set-option -g status-justify left # Expect utf8 string set-option -g status-utf8 on
Cette configuration permet le contrôle de tmux à la souris pour :
- Changer de fenêtre par clic sur la statusbar
- Changer de panneau par simple clic
- Redimensionner les panneaux en attrapant les bords
- Scroller avec la molette
Copiez-collez le contenu dans ~/.tmux.conf puis lancez la commande suivante pour appliquer la configuration :
$ tmux source-file ~/.tmux.conf
Ressources
Petit aide mémoire des raccourcis https://gist.github.com/MohamedAlaa/2961058
Configuration tmux simple mais assez complète https://gist.github.com/eliecharra/50a0214d4623d25ecd1c
Commentaires
Note : on ne peut plus ajouter de commentaire sur ce site