Linux

Le prompt

La variable PS1 permet de changer l'invite de commande.
L'invite de commande, ou prompt, est représenté sous MS-DOS par "C:\" (la lettre dépend de l'unité de stockage). Sous Linux elle est personnalisable et ne dépend que de vos envie. Par défaut elle peut être "[utilisateur@nom_de_la_machine]$", tout dépend de la distribution.

Pour changer le prompt temporairement, il suffit de faire comme suit :

$ PS1='Linux : ' Résultat : Linux : echo 'le prompt est maintenant modifié mais seulement temporairement'
le prompt est maintenant modifié mais seulement temporairement
Linux : cat
cela offre une personnalisation agréable
Mais outre le fait que vous pouvez mettre le texte que vous désirez, cet variable peut prendre divers forme qui seront traité pour afficher des informations interressantes tel que la date par exemple.

\! numéro de la commande depuis l'installation
\$ affichera # lorsque l'utilisateur seras en root, $ sinon.
\d affiche la date
\h affiche le nom de la machine (hostname)
\n saut de ligne
\r efface la lettre précédente
\s affiche le nom du shell en cours d'utilisation
\t affiche l'heure
\u affiche le nom d'utilisateur (user)
\v affiche la version du shell (version)
\w affiche le nom du repertoire courant.
$ PS1='Linux :\n\w \$ ' Résultat : Linux
/ $
cd etc/gnome
Linux$
/etc/gnome $
cat
Ce prompt sur deux ligne n'est pas forcément le plus lisible...
Pour une meilleur personnalisation, il y a aussi la couleur qui peut entrer dans la partie.

$ PS1='\033[numéro_de_la_couleurmtexte\033[0m'
Affichera texte avec la couleur choisis. Le \033[0m à la fin est utilisé pour retourner à la couleur d'origine du shell. Cependant vous pouvez l'ôter pour garder la couleur même lorsque vous taperez vos commandes.

Numéro des couleurs :

0 défaut
0;30 noir
0;31 rouge
0;32 vert
0;33 orange
0;34 bleu
0;35 violet
0;36 cyan
0;37 gris
0;38 blanc
0;40 fond noir texte blanc
0;41 fond rouge texte blanc
0;42 fond vert texte blanc
0;43 fond orange texte blanc
0;44 fond bleu texte blanc
0;45 fond violet texte blanc
0;46 fond turquoise texte blanc
0;47 fond gris texte blanc
1;30 gris foncé
1;31 rouge clair
1;32 vert clair
1;33 orange clair
1;34 bleu clair
1;35 violet clair
1;36 turquoise
1;37 gris
1;38 gris
1;39 gris
7;30 fond blanc texte noir
7;31 fond blanc texte noir
7;32 fond blanc texte noir
7;33 fond blanc texte noir
7;34 fond blanc texte noir
7;35 fond blanc texte noir
7;36 fond blanc texte noir
7;37 fond blanc texte noir
7;40 fond blanc texte noir
7;41 fond blanc texte rouge
7;42 fond blanc texte vert
7;43 fond blanc texte orange
7;44 fond blanc texte bleu
7;45 fond blanc texte violet
7;46 fond blanc texte turquoise
7;47 fond blanc texte gris


- Si vous utilisez un shell en mode graphique et que le fond est noir, alors pour certaine option le noir pourra être remplacé par le blanc et vice-vers-ça.
- Par défaut la couleur du shell n'est pas blanc mais gris clair.
- Sur un shell graphique, l'utilisation de 0;38 peut souligner le texte au lieux de le mettre en blanc.
- Bien sur les options (\t, \d, \u...) fonctionnent toujours, elle seront juste colorisé !
- Vous pouvez associer deux options tel que :
    7;42;35 donnera un texte vert et un fond violet.
    0;42;35 donnera un texte violet et un fond vert.

Exemple : $ PS1='\033[0;31mprompt\033[0m ' Affiche prompt en rouge.

$ PS1='\033[0;31;43mprompt ' Affiche prompt en rouge avec un fond orange et les commandes seront inscrite avec les mêmes couleurs car "\033[Om" qui permet un retour aux couleurs par défaut à été supprimé.


Vous voulez sauvegarder votre variable PS1 pour que le prompt soit toujours de la même façon à chaque fois que vous allumez votre ordinateur ? Alors ajoutez une ligne au fichier .bash_profile ou .bashrc qui se trouve dans votre répertoire utilisateur avec :
PS1='vos paramètres'

Ensuite dans l'interpéteur de commandes tapez source .bash_profile ou source .bashrc selon le cas et savourez le résultat. Si vous quittez votre session vous retrouverez toujours la même configuration.

Il existe aussi une variable PS2 qui est utilisé comme second prompt lorsque vous faîte par exemple : $ echo 'texte
> fin'
Il y a eu un prompt différent > personnalisable grâce à la variable PS2 de la même manière que PS1.