Recherche de site Web

Comment personnaliser les couleurs et le contenu Bash dans l'invite du terminal Linux


Aujourd'hui, Bash est le shell par défaut dans la plupart (sinon la totalité) des distributions Linux modernes. Cependant, vous avez peut-être remarqué que la couleur du texte dans le terminal et le contenu de l'invite peuvent être différents d'une distribution à l'autre.

Lecture suggérée : 5 shells open source les plus fréquemment utilisés pour Linux

Si vous vous demandez comment personnaliser cela pour une meilleure accessibilité ou pour un simple caprice, continuez à lire – dans cet article, nous vous expliquerons comment procéder.

La variable d'environnement PS1 Bash

L'invite de commande et l'apparence du terminal sont régies par une variable d'environnement appelée PS1. Selon la page de manuel Bash, PS1 représente la chaîne d'invite principale qui s'affiche lorsque le shell est prêt à lire une commande.

Le contenu autorisé dans PS1 se compose de plusieurs caractères spéciaux avec barre oblique inverse dont la signification est répertoriée dans la section INVITE de la page de manuel.

Pour illustrer, affichons le contenu actuel de PS1 dans notre système (cela peut être quelque peu différent dans votre cas) :

echo $PS1

[\u@\h \W]$

Nous allons maintenant vous expliquer comment personnaliser la PS1 selon nos besoins.

Personnalisation du format PS1

Selon la section PROMPTING de la page de manuel, voici la signification de chaque caractère spécial :

  1. \u : le nom d'utilisateur de l'utilisateur actuel.
  2. \h : le nom d'hôte jusqu'au premier point (.) du nom de domaine complet.
  3. \W : le nom de base du répertoire de travail actuel, avec $HOME abrégé par un tilde (~).
  4. \$ : Si l'utilisateur actuel est root, affichez #, $ sinon.

Par exemple, nous pouvons envisager d'ajouter \! Si nous voulons afficher le numéro d'historique de la commande en cours, ou \H si nous voulons afficher le FQDN au lieu de le nom court du serveur.

Dans l'exemple suivant, nous importerons les deux dans notre environnement actuel en exécutant cette commande :

PS1="[\u@\H \W \!]$"

Lorsque vous appuyez sur Entrée, vous verrez que le contenu de l'invite change comme indiqué ci-dessous. Comparez l'invite avant et après l'exécution de la commande ci-dessus :

Allons maintenant plus loin et changeons la couleur de l'utilisateur et du nom d'hôte dans l'invite de commande - à la fois le texte et son arrière-plan.

En fait, nous pouvons personnaliser 3 aspects de l'invite :

Text Format Foreground (text) color Background color
0: normal text 30: Black 40: Black
1: bold 31: Red 41: Red
4: Underlined text 32: Green 42: Green
33: Yellow 43: Yellow
34: Blue 44: Blue
35: Purple 45: Purple
36: Cyan 46: Cyan
37: White 47: White

Nous utiliserons le caractère spécial \e au début et un m à la fin pour indiquer que ce qui suit est une séquence de couleurs.

Dans cette séquence, les trois valeurs (arrière-plan, format et avant-plan) sont séparées par des virgules (si aucune valeur n'est donnée, la valeur par défaut est supposée) .

Lecture suggérée : Apprenez les scripts Bash Shell sous Linux

De plus, étant donné que les plages de valeurs sont différentes, peu importe celle (arrière-plan, format ou premier plan) que vous spécifiez en premier.

Par exemple, le PS1 suivant fera apparaître l'invite dans un texte souligné en jaune avec un arrière-plan rouge :

PS1="\e[41;4;33m[\u@\h \W]$ "

Aussi belle que cela puisse paraître, cette personnalisation ne durera que pour la session utilisateur en cours. Si vous fermez votre terminal ou quittez la session, les modifications seront perdues.

Afin de rendre ces modifications permanentes, vous devrez ajouter la ligne suivante à ~/.bashrc ou ~/.bash_profile selon votre distribution :

PS1="\e[41;4;33m[\u@\h \W]$ "

N'hésitez pas à jouer avec les couleurs pour trouver celle qui vous convient le mieux.

Résumé

Dans cet article, nous avons expliqué comment personnaliser la couleur et le contenu de votre invite Bash. Si vous avez des questions ou des suggestions concernant cet article, n'hésitez pas à utiliser le formulaire de commentaires ci-dessous pour nous contacter. Nous avons hâte d'avoir de tes nouvelles!