Console

Personnaliser le shell bash : alias, historique, prompt

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Introduction




Le shell (bash ou autre) est personnalisable via un fichier de configuration.

Pour BASH, il s'agit du fichier .bashrc. Il se situe dans le dossier /home/$USER/.bashrc. Il est lu à chaque ouverture de console par l'utilisateur $USER.

Il est possible de saisir des alias dedans de la forme:

Code BASH :
alias code="commande"


Le but est de rajouter ses propres alias pour se simplifier l'utilisation quotidienne.

Il suffira de saisir l'alias pour lancer la commande associée.

S'il n'est pas lu, vérifier que le fichier soit exécutable, et vérifier aussi la présence de .bash_profile qui doit contenir :

Code BASH :
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
 


Pour le shell CSH , il s'agit du fichier .cshrc. Il se situe dans le dossier /home/$USER/.cshrc. Il est lu à chaque ouverture de console par l'utilisateur $USER.

Avec BASH




Quelques exemples d'alias




Mettre à jour son système avec su sur une Mageia en tapant maj :

Code BASH :
alias maj="su -lc 'urpmi --auto-update --download-all --split-length=0'"


Afficher les températures du système toutes les 2 secondes en tapant tt :

Code BASH :
alias tt="watch sensors"


Voir les statistiques réseau d'une machine donnée

Code BASH :
alias flic="nmap -v -Pn -A"


Il suffit par la suite d'appeler la commande via flic 10.0.0.1 par exemple.

D'autres alias que j'utilise :

Code BASH :
alias gg="ping google.fr"
alias log="tail -f /var/log/messages"




Personnalisation du prompt




Le prompt est personnalisable directement dans le .bashrc.

Pour afficher le prompt d'un utilisateur en vert, avec la date, on peut y ajouter ceci:

Code BASH :
PS1="\# \[\e[0;36m\][\t]\[\e[0;m\] \[\e[0;32m\]\u@\h\[\e[0;m\]: \[\e[1;35m\]\w\[\e[0;m\] \[\e[1;32m\] \\$\[\e[0;m\] "


Pour l'utilisateur root, on peut changer la couleur pour du rouge:

Code BASH :
PS1="\# \[\e[0;36m\][\t]\[\e[0;m\] \[\e[0;31m\]\u@\h\[\e[0;m\]: \[\e[1;35m\]\w\[\e[0;m\] \[\e[1;31m\] \\$\[\e[0;m\] "




Ou un prompt tout simple (Comme sur Gentoo) mais coloré :

Pour root en rouge :

Code BASH :
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '


Ou pour les utilisateurs :

Code BASH :
PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] '




Pour harmoniser les prompts des utilisateurs, on peut créer ce script pour choisir la couleur en fonction de l'utilisateur (root ou non) :

Code BASH :
if [[ ${EUID} == 0 ]] ; then
        #Prompt de root
else
        #Prompt de l'utiliateur
fi


Mettre ce morceau de code dans les fichers ~/.bashrc des utilisateurs concernés.

On peut aussi créer un script colorprompt.sh par exemple et le placer dans /etc/profile.d et le rendre exécutable. Il sera automatiquement exécuté à chaque ouverture de shell.

Avec CSH




Les alias avec CSH


Au travail, nous utilisons le shell CSH (Le C Shell).

Pour les alias, ça se passe un peu différemment au niveau de la syntaxe :

Code BASH :
alias nom "commande"