From 54d5ea2e1cd8ffdf298624b1349b631595f63f4a Mon Sep 17 00:00:00 2001 From: Alexandre Lucazeau Date: Thu, 1 Apr 2021 22:01:38 +0200 Subject: [PATCH] ADD : apropos ADD : tmux.md changement de post en posts --- apropos.md | 11 +++ {post => posts}/hugo-BP.md | 0 posts/tmux.md | 138 +++++++++++++++++++++++++++++++++++++ 3 files changed, 149 insertions(+) create mode 100644 apropos.md rename {post => posts}/hugo-BP.md (100%) create mode 100644 posts/tmux.md diff --git a/apropos.md b/apropos.md new file mode 100644 index 0000000..8f0bd85 --- /dev/null +++ b/apropos.md @@ -0,0 +1,11 @@ ++++ +title = "A propos" +date = "2021-04-01" +menu = "main" +weight = "20" +meta = "false" ++++ + +Site Bloc Notes. On verra bien ce qu'on y mettra ;-) + +En attendant c'est hébergé chez Online et généré par hugo diff --git a/post/hugo-BP.md b/posts/hugo-BP.md similarity index 100% rename from post/hugo-BP.md rename to posts/hugo-BP.md diff --git a/posts/tmux.md b/posts/tmux.md new file mode 100644 index 0000000..2f35236 --- /dev/null +++ b/posts/tmux.md @@ -0,0 +1,138 @@ +--- +title: "Tmux : fiche memo" +date: 2021-04-01T11:48:56+02:00 +tags: +- tmux +- cheatsheet +categories : +- commandline +draft: false +description : "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 : +{{< highlight bash >}} +#!/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 +{{< /highlight >}} + + * `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.