L'invite est le texte qui est présent dans le terminal avant chaque commande. Celui par défaut ressemble à celle la:
[xenom@nomdemachine ~]$

Avec entre crochets le nom d'utilisateur@le nom de la machine, un espace et le dossier courant. Puis un "$" montrant que vous êtes connecté en utilisateur normal. Si vous êtes connecté en tant que root ce ne sera plus "$" mais "#".

Comment personnaliser cette invite ?


La variable d'environnement PS1 permet de définir le format de l'invite.La variable PS2 permet de modifier l'invite de continuation (celle qui apparait quand le shell attend d'autres instructions, par defaut ">").

Pour la mise en forme nous disposons de caractères spéciaux :

L'invite par défaut a cette forme :
[\u@\h \W]\$

  • \u : nom de l'utilisateur.
  • \h : nom de la machine.
  • \W : nom du dossier courant.
  • \$ : affiche $ pour un utilisateur et # pour root.


En voici d'autres :

  • \w : chemin complet du répertoire de travail.
  • \d : date format texte ("sam. janv. 31").
  • \A : heure format 24h sans secondes.
  • \t : heure format 24h avec les secondes.
  • \T : heure format 12h avec les secondes.
  • \@ : heure format 12H sans secondes.
  • \D{%d-%m-%Y %H:%M:%S%z} : Date et heure dans un format personnalisable (ici jour-mois-année sur 4 chiffres heure:minute:seconde fuseau horaire).


/!\ Attention la date et l'heure sont celles lors de l'apparition du prompt! L'heure ne défile pas!

  • $? : code de retour de la dernière commande (0 si OK, 1 si erreur).
  • `commande_ou_fonction` : lance la commande ou fonction.
  • \j : nombre de tache en cours dans le terminal (pratique si vous lancez des tâches en arrière plan).
  • \# : le numéro de la commande.
  • \v : version de bash.
  • \n : nouvelle ligne.

Et maintenant la couleur!


On peut mettre en couleur l'invite et les commandes qui suivent.

Avec le code "\e[0;34m" la suite du texte sera en couleur. Il suffit de remplacer "0;34" par le code couleur voulu. Pour définir la fin de la mise en couleur : "\e[0m". Si vous ne mettez pas de fin, toute la suite sera en couleur (même les résultats des commandes).

Codes couleurs :

  • Noir 0;30    
  • Gris foncé 1;30
  • Bleu 0;34
  • Bleu clair 1;34
  • Vert 0;32
  • Vert clair 1;32
  • Cyan 0;36
  • Cyan clair 1;36
  • Rouge 0;31
  • Rouge clair 1;31
  • Violet 0;35
  • Violet clair 1;35
  • Brun 0;33
  • Jaune 1;33
  • Gris clair 0;37
  • Blanc 1;37


En fait, le premier nombre correspond au type de la couleur : 0 foncé, 1 clair, 4 souligné, 7 fond, 9 barré.

Et des exemples d'invite :

export PS1="\u@\h \A> "
xenom@hostname 14:13>
Nom_d'utilisateur@Nom_de_la_machine heure>

export PS1='\e[0;31m\u@\h \e[0;35m\w > \e[1;34m'
xenom@hostname /home >
Affichera le nom d'utilisateur et le nom de machine en rouge, le dossier courant en violet et le reste de la commande en bleu.

export PS1='\u@\h [`ps ax | wc -l`(\j)] \$ '
xenom@myhost [109(0)] $
Nom_d'utilisateur@Nom_de_la_machine [Commande_pour_compter_le_nombre_de_processus (tâches_en_arrière_plan)] $

Pour sauvegarder l'invite :

Pour modifier l'invite, il suffit de rentrer dans le terminal :

export PS1="Ce_que_vous_voulez_comme_invite"

Mais dans ce cas, l'invite ne sera modifiée que pour le terminal courant.

Pour le sauvegarder de façon définitive, il suffit de rajouter :

PS1="Ce_que_vous_voulez_comme_invite"

dans le fichier ~/.bashrc.

Autres astuces :

D'autres articles sur génération-linux ont déjà parlé de personnalisation du terminal, je vous invite à les lire (ou relire ;) ) :

$PATH, qu'est-ce que c'est, comment changer les dossiers par défaut ?
Une astuce tres pratique pour le terminal : ajouter un alias
Marre de votre terminal terne et sans vie?

Je vous conseille aussi la lecture de Bash, le livre de recettes par Carl Albing, JP Vossen & Cameron Newham, édition O'Reilly qui m'a aidé pour cet article et beaucoup d'autres choses.