TUTOS.EU

Différence entre bashrc et bash_profile sous Linux

A la lecture de it-connect.fr ou de cet article de linuxize.com, on comprend que quand bash est lancé en tant "qu'interactive login shell" lors d'une ouverture de session, quand on saisit un login/mot de passe. C'est le cas quand on ouvre une session ssh par exemple.

 

Bash regarde alors dans l'ordre :

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

 

~/.bash_profile est utilisé pour les commandes qui ne doivent être jouées qu'une fois, pour modifier le path par exemple ou pour afficher un message de bienvenue.

 

~/.bashrc est lancé en tant que non-login shell interractif. Il est exécuté à chaque fois que l'on lance un shell. On y place les alias, fonctions ou personnalisations de l'historique.

 

~/.bash_profile lance lui même ~/.bashrc via ces lignes :

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

 

~/.profile est lu par tous les shells alors que ~/.bash_profile n'est lu que par Bash.

 

 

Si vous voulez que votre modification touche tous les utilisateurs (system-wide) :

/etc/bashrc est l'équivalent de ~/.bashrc mais il est préférable de mettre les modifications dans un fichier custom.sh dans /etc/profile.d/

/etc/profile est l'équivalent de ~/.bash_profile, mais il est préférable de mettre les modifications dans un fichier avec un nom en .sh dans /etc/profile.d/

 


2