Linux customiser son bash shell

Le shell est l’invite de commande du terminal Linux (ou Unix), c’est cet écran noir qui fait un peu peur au début, mais qui est très puissant, et quand vous aurez commencé à le maitriser, vous ne pourrez plus vous en passer, et sera une arme à votre trousse d’outils de développeur.

Contenu

Où se trouve le fichier de customisation du shell?

Le fichier s’appelle ou .bash_profile (ou .bashrc) et se trouve dans le répertoire home de l’utilisateur. Mais attention au démarrage du shell, le fichier .bashrc n’est pas lu pour plus d’informations voir cette source.

Que customiser ?

Le $PATH

Le $PATH est l’ensemble des chemins de fichiers vers des exécutables, voici un extrait :

export PATH="~/.composer/vendor/bin"
alias composer="php /usr/local/bin/composer.phar"
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin:$PATH
 

Note : J’ai passé pas mal de temps sur MacOS à faire marcher le path pour Mysql, j’avais le fichier comme ceci :

export PATH=/usr/local/mysql/bin:$PATH
export PATH="~/.composer/vendor/bin"
alias composer="php /usr/local/bin/composer.phar"
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/mysql/bin:$PATH

Je n’ai jamais réussi à faire marche le PATH de cette façon, il a fallu que je l’incorpore dans la dernière ligne pour la mettre à la suite des autres déclaration pour que le shell en tienne compte.

Pour confirmer que la variable $PATH contient bien les chemin, faites la commande :

echo $PATH

Notez que si vous venez de faire le changement dans le fichier .bash_profile, quand vous sortez de l’éditeur texte, les changements ne sont pas appliqué, il vous faut sour ouvrir un nouveau shell (ce qui aura pour effet de lire le fichier .bash_profile), ou alors si vous voulez appliquer les changemnet dans la fenêtre courante :

source ~/.bash_profile
. ~/bash_profile (version courte)

Changer la couleur du prompt

Par défaut dans le bash, il y a deux couleurs, une couleur PS1 lorsque le shell est prêt à lire une commande, et une couleur PS2 quand le prompt attend un argument à la commande. Le bash permet de customiser ces couleurs. Regardons ce que donne l’écho de la variable d’environnement PS1 :

echo $PS1

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$

Que signifient les caractères anti slashés?

\h : le nom du host

\u : le user name

\w : le répertoire courant

\$ :  affiche # si le user est root, UID = 0, sinon affiche $

Pour changer la couleur du prompt tapez cette commande :

export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

Le 0;31 est la couleur rouge, pour le vert c’est le 0;32, vraiment pas facile à se rappeler, n’oubliez pas que ça date tout ça ! Pour avoir la version couleur plus light, rouge light  : 1;31.

L’autocomplétion

L’autocomplétion peut se paramétrer pour l’utilisateur non root en touchant au fichier /etc/passwd

Ce fichier qui n’est modifiable que par root contient les mot de passe de chaque utilisateur, et aussi son shell. Pour l’utilisateur apache le shell est nologin, ce qui veut dire que que cet utilisateur ne peut pas se logger. L’utilisateur root est /bin/bash, les autres utilisateurs sont souvent en /bin/sh, qui ne proposent pas l’autocomplétion. Donc il vous suffit de modifier en /bin/bash pour avoir l’autocomplétion.

Navigation dans l’historique

Saviez vous qu’il n’était pas utile de retaper une commande si vous l’avez déjà tapé? pour ce faire il vous suffit d’utiliser les toucher fléchées, HAUT et BAS pour naviguer entre les commandes déjà tapées. L’historique bash se trouve dans un fichier .bash_history.

Retour en haut