Linux : pimp my prompt

de | 2025-03-17

Aujourd’hui on va vous montrer comment en quelque lignes de commande on peut rendre son prompt plus agréable et plus lisible.
Le prompt, pour les néophytes, est cette ligne qui apparaît dans votre terminal, attendant vos instructions.

Par défaut, il affiche des informations basiques comme le nom d’utilisateur et le répertoire courant. Saviez-vous qu’il est possible de le personnaliser pour qu’il affiche des couleurs, l’heure, la charge du système, ou même la branche Git sur laquelle vous travaillez ?

3 Shell 3 manières de personnaliser son prompt :

Bash est le shell par défaut sur de nombreuses distributions Linux.

La variable PS1 contrôle l’apparence de votre prompt.

Vous pouvez la modifier dans votre fichier ~/.bashrc. Ou a la volée directement dans le prompt.

PS1=' \u@\h:\w\n\$ '
VariableDescription
\dLa date au format ‘Jour Mois Date’ (ex : « Tue May 26 »)
\hLe nom d’hôte du système jusqu’au premier « . »
\HLe nom d’hôte complet du système.
\tL’heure au format 24h HH:MM:SS.
\TL’heure au format 12h HH:MM:SS.
\@L’heure au format 12h am/pm.
\uLe nom d’utilisateur.
\wLe nom du répertoire courant.
\WLe chemin du répertoire courant.
\!Le numéro d’historique de cette commande.
\#Le numéro de la commande (augmente) chaque fois qu’on valide une commande.
\$Insère « $ » si vous n’êtes pas root et « # » si vous l’êtes.
\nInsère une nouvelle ligne.

On peut aussi y rajouter des couleurs en rajoutant [\e[0;32m\] et [\e[0m\] pour réinitialiser.

PS1= '\[\e[0;34m\]\u\[\e[33m\]@\[\e[31m\]\h:\[\e[0;58m\]\w\n\[\e[0m\]\$ '

Ou encore en gras [1;33m]

PS1= '\[\e[1;34m\]\u\[\e[33m\]@\[\e[31m\]\h:\[\e[0;58m\]\w\n\[\e[0m\]\$ '

KSH (KornShell) : Les éléments de base de KSH sont similaires à ceux de Bash, mais avec un peu moins de personnalisation native :

VariableDescription
$(print « \033[1;32m Pour activer le gras
${USER} Nom de l’utilisateur
${HOSTNAME}Nom de l’hôte
${PWD}Répertoire courant
\033[0;32mCode couleur pour le vert

On reprend la variable PS1 qui exportable dans le ~/.kshrc du profile

PS1='$(print "\033[1;3;32m")${USER}@${HOSTNAME}:$(print "\033[1;3;30m")${PWD}$(print "\033[1;3;0m") $ '

On obtient :

Zsh (Z Shell) est apprécié pour sa richesse en fonctionnalités, comme la complétion avancée, les globbing (utilisation des motifs pour la recherche de fichiers), et la personnalisation du prompt. Depuis quelques années, Zsh est devenu le shell par défaut sur macOS.

La variable PROMPT fonctionne de manière similaire que PS1, mais avec une syntaxe différente pour la coloration et les options de personnalisation.

Zsh permet des personnalisations encore plus avancées grâce à son système intégré de modificateurs de prompt.

%n : Nom de l’utilisateur.

VariableDescription
%nNom de l’utilisateur
%mNom de l’hôte
%~Répertoire courant
%F{color}Changer la couleur du texte
%BPour activer le gras
%IPour activer l’italique

Exemple de PROMPT dans Zsh avec personnalisation :

PROMPT='%F{green}%n@%f%F{cyan}%m%f:%F{white}%~%f%# '