Votre IP: 38.107.179.244 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 19-01-2008 10:21:39
Date de la dernière modification : 19-01-2008 15:51:33
Linux  Vous êtes dans : GNU/Linux Astuces / Shell Bash

Personnaliser l'invité de commande du Shell Bash

  1. Introduction
  2. Invité syntaxe
  3. Exemples
  4. Modifier PS1 de façon permanente
  5. Voir aussi

1. Introduction


L'invité de commande du Shell Bash est contenu dans la variable d'environnement PS1.

Le contenu de la variable PS1 a une valeur définie par défaut. Vous pouvez voir son contenu en tapant la commande echo $PS1.
Voici le contenu du  PS1 par défaut sur mon Debian (chez vous ce ne sera peut être pas la même chose, mais il n'y a pas de raisons de s'inquiéter pour autant).

lami20j@debian:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
lami20j@debian:~$


2. Invité syntaxe


Nous pouvons personnaliser l'invité grâce à certaines suites de caractères qui seront echappées avec un backslash (caractère oblique inverse - sur le clavier français c'est la combinaison de touches AltGr-8)

 Caractère Signification 
\a
 caractère ASCII d'alarme 
 \d  la date au format "Jour de la semaine Mois quantième" - sam jan 19
 \D{format}  la date avec un format personnalisé - \D{%d-%m-%Y} va afficher la date de jour avec le format jj-mm-aa (1)
 \e  le caractère d'échappement ASCII (033) - le backslash ou caractère oblique inverse
 \h  le nom de la machine jusqu'au premier point
 \H  le nom de la machine
 \j  le nombre de tâches gérées actuellement par le shell
 \l  le nom de la base du nom du périphérique de terminal
 \n  saut de ligne (new ligne)
 \r  retour chariot (carriage return)
 \s  le nom du shell
 \t  l'heure actuelle au format HH:MM:SS sur 24 heures
 \T  l'heure actuelle au format HH:MM:SS sur 12 heures
 \@  l'heure actuelle au format sur 12 heures HH:MM am/pm 
 \A  l'heure actuelle au format HH:MM sur 24 heures
 \u  le nom d'utilisateur
 \v  la version de bash
 \V  le numéro de version complet
 \w  le répertoire de travail courant ($HOME abregé avec ~ )
 \W  le nom de base du répertoire de travail courant ($HOME abregé avec ~ )
 \!  le numéro d'historique de la commande (permettra d'afficher le nombre des commandes sauvegarder dans l'historique, ce qui vous permettra de gérer votre historique de commandes)
 \#  le numéro de la commande
 \$  # si l'UID effectif est 0, $ sinon
 \nnn  le caratère de code en octal
 \\  le backslash (caractère oblique inverse)
 \[  début d'une suite de caractères non imprimables (pour inclure des caractères de contrôle de terminal)
 \]  fin d'une suite de caractères non imprimables


3. Exemples


Avant de chosir une personnalisation definitive de votre invité de commande vous pouvez tester directement dans le shell. Pour réaliser cela, nous allons d'abord sauvegarder le contenu par défaut de la variable PS1 dans une variable que nous appellerons PS1save

lami20j@debian:~$ PS1save=$PS1
lami20j@debian:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
lami20j@debian:~$ echo $PS1save
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
lami20j@debian:~$


La 1ère commande sauvegarde le contenu de PS1. Ensuite, pour vérification j'affiche le contenu de PS1 et de PS1save.
Voici quelqeus exemples pour vous montrer à quoi peut ressembler une invité personnalisée du shell (voir en gras dans les exemples). A vous de combiner les possibilités existantes.
Après l'exécution de chaque exemple nous restaurons l'invité par défaut.


lami20j@debian:~$ export PS1="\d \u@\h $ "
sam jan 19 lami20j@debian $ export PS1=$PS1save
lami20j@debian:~$


lami20j@debian:~$ export PS1="\D{%d-%m-%Y} \u@\h $ "
19-01-2008 lami20j@debian $ export PS1=$PS1save
lami20j@debian:~$


lami20j@debian:~$ export PS1="\d \t \u@\h $ "
sam jan 19 09:31:18 lami20j@debian $ export PS1=$PS1save
lami20j@debian:~$


lami20j@debian $export PS1="\@ \u@\h \n \$ "
09:33  lami20j@debian
 $
export PS1=$PS1save
lami20j@debian:~$
 

lami20j@debian:~$ export PS1="\@ \u@\h \n historique=\! \$ "
09:34  lami20j@debian
 historique=520 $
export PS1=$PS1save
lami20j@debian:~$


 lami20j@debian:~$ export PS1="\u@\h bash-\V \$ "
lami20j@debian bash-3.1.17 $ export PS1=$PS1save
lami20j@debian:~$


4. Modifier PS1 de façon permanente


Pour modifier de façon permanente l'invité de shell pour votre session utilisateur vous pouvez utiliser la méthode suivante :
  • sauvegarde de PS1 par défaut (au cas où vous voudriez revenir à la configuration par défaut
lami20j@debian:~$ echo "#export PS1='$PS1'" >> $HOME/.bashrc
lami20j@debian:~$ tail -1 $HOME/.bashrc
#PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
lami20j@debian:~$


  • utlisez le format personnalisé que vous avez choisi (dorénavant à chaque ouverture de terminal vous aurez votre invité personnalisé)
lami20j@debian:~$ echo 'export PS1="\D{%d-%m-%y} historique=\! \u\$ "' >> $HOME/.bashrc
lami20j@debian:~$ source $HOME/.bashrc
19-01-08 historique=539 lami20j$



Si vous voulez revenir à la configuration par défaut vous devrez faire comme ça :
  • suppression dans .bashrc de la ligne export PS1="\D{%d-%m-%y} historique=\! \u\$ "
  • supprimez le # de la ligne de sauvegarde de PS1 par défaut dans le .bashrc
    #export PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
  • exécutez la commande  source $HOME/.bashrc pour que les modifications soient prises en compte de suite ou redémarrer le shell



Pour modifier de façon permanente l'invité de shell pour tous les utilisateurs de système vous devrez utiliser le fichier /etc/profile

Voir aussi


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS