Prompt

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Convention visuelle du prompt shell
Fichier ~/.bashrc
Objectif Repérer d'un coup d'œil l'environnement (prod/recette/dev) pour éviter une commande destructrice au mauvais endroit
Codes couleur Rouge = prod · Magenta = recette · Vert = dev
Voir aussi Bashrc (script de prompt complet)

Le mécanisme du prompt personnalisé (fonction bash_prompt, troncature du chemin, variable PROMPT_COMMAND) est déjà détaillé dans Bashrc. Cette page se limite à une astuce complémentaire : coder la couleur du prompt par environnement plutôt que (ou en plus) par utilisateur, pour distinguer visuellement prod/recette/dev.

Convention par environnement

Là où Bashrc distingue root (rouge) d'un utilisateur normal (couleur neutre), on peut étendre la même logique pour distinguer l'environnement du serveur lui-même, en fixant la couleur directement dans le script plutôt qu'en la déduisant de $UID :

Environnement Couleur Variable ANSI (voir palette dans Bashrc)
Production Rouge $R
Recette Magenta $M
Développement Vert $G

Dans la fonction bash_prompt (script complet dans Bashrc), il suffit de remplacer l'affectation de UC par la couleur voulue pour ce serveur, au lieu de la déduire du rôle de l'utilisateur connecté :

# Au lieu de :
#   local UC=$W
#   [ "$UID" -eq 0 ] && UC=$R
#
# fixer une couleur par serveur/environnement (à adapter à chaque machine) :
local UC=$R    # ce serveur est en prod : prompt rouge quel que soit l'utilisateur

⚠️ Cette convention par environnement et la convention par utilisateur (Bashrc, root en rouge) se recouvrent sur la couleur rouge : si les deux sont combinées sur un même serveur, choisir un signal distinct pour root (par exemple un fond de couleur en plus du texte, cf. les variables BG* listées dans le script de Bashrc) pour ne pas confondre « ce serveur est en prod » et « je suis root ».

Voir aussi

  • Bashrc — script de prompt complet (troncature du chemin, titre de fenêtre, palette de couleurs ANSI), personnalisation de PS1