TMUX
Fiche pratique pour tmux
Les sessions
- Démarrer une session :
tmux
- Démarrer une session en mode 256 couleurs :
tmux -2
- Détacher une session :
^b d
- Démarrer tmux en détachant une session préalablement détachée :
tmux attach
- Afficher la liste des sessions :
tmux ls
- Afficher la liste des sessions depuis tmux :
^b s
Les fenêtres
- Renommer une fenêtre :
^b , nomdelafenêtre
- Afficher la liste de fenêtres :
^b w
- Aller à la fenètre n°2 :
^b 2
- Couper la fenêtre en 2 panneaux horizontaux :
^b"
- Couper la fenêtre en 2 panneaux verticaux :
^b %
- Renommer automatiquement la fenêtre en fonction du programme lancé :
setw -g automatic-rename
- Faire un racourci pour aller à la précédente fenètre :
bind-key C-a last-window
- En mode normal, vous ferez
^b ^a
pour retourner à la précédente fenètre active.
Les panneaux
- Fermer le panneau courant :
^b x
- Fermer tout les panneaux sauf celui où l’on est :
^b !
- Aller au panneau suivant :
^b o
- Déplacer un shell vers l’autre panneau :
^b ^o
- Echanger la place de deux panneaux :
- entre le panneau courant et le suivant :
^b }
- entre le panneau courant et le précédent :
^b {
- entre le panneau courant et le suivant :
- Afficher l’heure dans un panneau :
^b t
- Afficher le numero de panneau :
^b q
- Maximiser/Restaurer le panneau actif :
^b z
- Revenir au precedent panneau actif :
^b ;
Effectuer une recherche dans la fenetre
Tmux stock l’affichage d’une fenêtre dans un buffer. Il est donc possible d’y effectuer des recherches.
Il suffit de passer en mode copie (par defaut ctrl-b [
)
- Chercher un motif en arrière :
?
- Chercher un motif en avant
/
- Aller à l’occurence suivante :
n
- Aller à l’occurence précédente :
N
Copier & Coller
-
Mettre tmux en mode vi :
set -g mode-keys vi
-
Mapper la touche esc à la place de la touche [ pour basculer en mode copie
unbind [ bind Escape copy-mode
-
Mapper la touche p en touche de coller le buffer
unbind p bind p paste-buffer
-
Affecte la touche v en mode début de la selection :
bind-key -t vi-copy 'v' begin-selection
-
Affecte la touche v en mode copie de la selection :
bind-key -t vi-copy 'y' copy-selection
Le workflow devient :
- on entre en mode copie :
Ctrl-b Escape
- déplacer le curseur vers la zone à sélectionner
- active la sélection :
v
- déplacer le curseur sur l’ensemble du texte à copier
- copie dans le buffer la sélection :
y
- coller la sélection:
Ctrl-b p
La barre
On peut changer plusieurs choses, comme les couleurs.
- La liste des couleurs disponible est :
- Color
- Black
- Red
- Green
- Yellow
- Blue
- Magenta
- Cyan
- White
- Changer la couleur de fond de la barre pour du noir :
set -g status-bg
- Changer la couleur des caractères :
set -g status-fg white
- Ajouter un affichage sur la gauche de votre barre :
set -g status-left '#[fg=green]#H'
- On peut demander à tmux d’afficher le premier résultat d’une commande shell. Par exemple #(date)# Affichera le premier champ, le jour, que renvois la commande date, lorsque’elle est tappée dans un shell.
- On peux aussi choisir une des commandes prédéfinies dans tmux :
#H
équivaut au hostname de la machine locale - On peux aussi spécifier des attributs particuliers, comme la couleur des caractères ou du fond (et ainsi les différencier du reste de la barre de status). Pour se faire il suffit de faire précéder la commande de
#attribut=couleur
- Il est possible de configurer plusieurs attributs à la suite, en les séparant par une virgule.
Afficher à gauche la date au format JJ/MM/AA en jaune et gras :
set -g status-left '#[fg=yellow,bold]#(date '+%d/%m/%Y')'
Mettre en rouge la fenètre active
set-window-option -g window-status-current-bg red
Il est possible d’avoir la même chose mais du côté droit: set status-left (...)
Afficher un message lorsqu’une fenêtre évolue (s’il y a de l’activité par chez elle). On va faire ça en deux étape.
La première on va demander à tmux de surveiller s’il y a du mouvement dans une de nos fenêtre :
setw -g monitor-activity on
Et ensuite on lui demande, le cas échéant de nous prévenir :
set -g visual-activity on
Utiliser un script shell pour initialiser une session tmux :
|
|
tmux new-session -d -s masession
: crée une nouvelle session tmux, nommée masession, et la détache immediatement. Elle se trouve donc en arrière plan.
Les 3 commandes new-window(…) crées 3 fenêtres dans la session tmux nommée masession, les nouvelles fenêtres sont nommées serveur1 2 et 3, et y exécutent une connexion ssh
tmux select-window -t masession:1
: la fenêtre 1 de la session masession sera la session active
tmux -2 attach-session -t masession
: maintenant que notre environnement masession est initialisé, on va le rattacher à notre terminal en utilisant le mode 256 couleurs
Exécuter des commandes tmux
L’option -g est utile uniquement lorsque l’on exécute la commande au sein de tmux, pour l’appliquer à l’ensemble des fenètres en cours.