Tmux : fiche memo

Fiche mémo ou fiche pratique sur tmux

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 {
  • 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 :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
 
#!/bin/sh
tmux new-session -d -s masession
 
tmux new-window -t masession:1 -n 'Server1' 'ssh root@10.x.x.x'
tmux new-window -t masession:2 -n 'Server2' 'ssh root@10.x.x.x'
tmux new-window -t masession:3 -n 'Server3' 'ssh root@10.x.x.x'
 
tmux select-window -t masession:1
tmux -2 attach-session -t masession
  • 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.

comments powered by Disqus
Généré avec Hugo
Thème Stack conçu par Jimmy