Formation PUB100 : Travailler avec un Mac, 2020 Opérations diverses

11.25 Changer la couleur de l'invite dans le Terminal


Lorsque vous travaillez dans une fenêtre Terminal sous MacOS, certaines commandes fournissent beaucoup d'information. Il devient alors difficile de remonter la fenêtre pour retrouver le début du texte fourni par la dernière commande entrée.

Pour me faciliter la tâche, j'aime changer l'invite (le texte qui se termine par $ ou par % et qui vous invite à entrer une commande) afin qu'elle soit d'une couleur différente, ce qui permet de la localiser plus facilement quand je fais défiler l'écran.

Passer à zsh

Pour que les instructions de cet article fonctionnent, vous devez utiliser l'invite de commande (en anglais : shell) nommé zsh. C'est le cas par défaut pour tous les comptes d'utilisateur créés sous macOS Catalina ou plus récent.

Si votre compte a été créé avant, vous avez probablement l'invite de commande bash.

Pour connaître votre configuration, entrez ces commandes dans une fenêtre Terminal. Celle qui correspond à votre configuration affichera un numéro de version.

Terminal

echo $BASH_VERSION
echo $ZSH_VERSION

Ici, on voit que l'invite utilise bash.

Résultat à l'écran

MacBook-Pro-de-MonNom:~ monnom$ echo $BASH_VERSION
3.2.57(1)-release
MacBook-Pro-de-MonNom:~ monnom$ echo $ZSH_VERSION

 

De plus, si vous utilisez autre chose que zsh, vous verrez un avertissement lors de l'ouverture d'une fenêtre Terminal.

Terminal

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

Si vous utilisez bash, vous pouvez passer à zsh comme suit :

Terminal

chsh -s /bin/zsh

Vous devez fermer la fenêtre Terminal puis la réouvrir pour que la modification prenne effet.

Vous remarquerez notamment que l'invite se termine maintenant par %.

Connaître la configuration actuelle de l'invite

Tout d'abord, pour connaître la configuration actuelle de l'invite, entrez cette commande dans une fenêtre Terminal :

Terminal

echo $PROMPT

Résultat à l'écran

monnom@MacBook-Pro-de-MonNom ~ % echo $PROMPT
%n@%m %1~ %#

Ceci indique que l'invite affiche :

  • %n : nom d'usager
  • @ : symbole @
  • %m : le nom de l'hôte (nom de votre ordinateur)
  • %1~ : dossier actif ou ~ s'il s'agit du dossier personnel de l'usager
  • %# : signe # pour l'usager root, signe % pour tous les autres usagers

Il est possible de configurer l'invite pour qu'il affiche autre chose.

Parmi les options disponibles, notons :

  • %D : date actuelle au format aa-mm-jj
  • %W : date actuelle au format mm/jj/aa
  • %T : heure actuelle au format 24h
  • %t : heure actuelle au format am/pm
  • %* : heure actuelle au format 24h avec secondes
  • %F{...} ... %f : toutes les informations entre ces symboles apparaîtront dans la couleur spécifiée entre accolades (voir plus bas)
  • %K{...} ... %k : toutes les informations entre ces symboles apparaîtront surlignées dans la couleur spécifiée entre accolades
  • %B ... %b : toutes les informations entre ces symboles apparaîtront en gras
  • %U ... %u : toutes les informations entre ces symboles apparaîtront en souligné

La liste complète des symboles est disponible sur ce site : https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html#Prompt-Expansion

Tester la configuration de l'invite

Avant de modifier l'invite de façon permanente, il est possible de la tester en définissant une variable PROMPT.

La configuration sera active immédiatement mais disparaîtra dès que la fenêtre Terminal sera fermée.

Terminal

PROMPT="%D $1~ %#"

Invite en couleur

Si la configuration de l'invite contient les codes %F et %f, tout ce qui est spécifié entre ces symboles sera coloré.

La couleur, qui est indiquée entre accolades, peut être l'une des constantes supportées (valeur numérique équivalente entre parenthèses) :

  • black (0)
  • red (1)
  • green (2)
  • yellow (3)
  • blue (4)
  • magenta (5)
  • cyan (6)
  • white (7)

ou encore une valeur numérique située entre 0 et 256 : https://www.ditig.com/256-colors-cheat-sheet

Terminal

PROMPT="%F{cyan}%n@%m %1~ %#%f"

ou

Terminal

PROMPT="%F{6}%n@%m %1~ %#%f"

Invite cyan

Il est possible d'utiliser plusieurs couleurs dans l'invite :

Terminal

PROMPT="%F{13}%n@%m%f %F{14}%1~%f %F{10}%#%f"

Invite de couleur

Modifier l'invite de façon permanente

Une fois les tests satisfaisants, il est possible de rendre le tout permanent.

Il faut pour cela éditer un petit fichier texte nommé .zshrc placé sous votre dossier personnel (~). Ce fichier n'existe pas à la base. Il sera créé à l'aide des commandes qui suivent.

Le fichier peut être édité à l'aide de l'outil texte de votre choix à condition que ce soit un outil texte simple (pas Word). J'utilise ici nano.

Terminal

sudo nano ~/.zshrc

Copiez dans le fichier la configuration que vous avez testée plus tôt.

Fichier ~/.zshrc

PROMPT="%F{cyan}%n@%m %1~ %#%f"

Appuyez sur Ctrl + X puis O (ou Y si votre OS est en anglais) pour enregistrer les modifications.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre