J'ai trouvé que ce sont .bash_profile , .bashrc , .bash_login , .profile .
Quelle est la séquence de lecture entre eux ?
Réponse acceptée :
Fondamentalement, s'il s'agit d'un shell de connexion, il source /etc/profile puis .bash_profile . Si ce n'est pas un shell de connexion, mais que vous êtes sur un terminal, il source /etc/bash.bashrc puis .bashrc .
Mais c'est en fait beaucoup plus compliqué.
La façon dont je lis la page de manuel :
if bash_mode; then
if login_shell; then
if test -e /etc/profile; then source /etc/profile; fi
if test -e .bash_profile; then source .bash_profile
elif test -e .bash_login; then source .bash_login
elif test -e .profile; then source .profile; fi
elif interactive_shell || remote_shell; then
if test -e /etc/bash.bashrc; then source /etc/bash.bashrc
if test -e .bashrc; then source .bashrc; fi
elif test -n "$BASH_ENV"; then
source "$BASH_ENV"
fi
elif sh_mode; then
if login_shell; then
if test -e /etc/profile; then source /etc/profile; fi
if test -e .profile; then source .profile; fi
elif interactive_shell; then
if test -n "$ENV"; then
source "$ENV"
fi
fi
fi
C'est un shell de connexion chaque fois que le shell est exécuté en tant que -bash (notez le signe moins) ou avec le -l option. Cela se produit généralement lorsque vous vous connectez en utilisant le login commande (les consoles virtuelles Linux le font), via ssh, ou si votre émulateur de terminal a l'option "login shell" activée.
C'est un shell interactif chaque fois que l'entrée standard est un terminal ou que bash a été démarré avec le -i option. Notez que si le shell est également un shell de connexion, bash ne vérifie pas si le shell est interactif. Pour cette raison, .bash_profile contient généralement du code vers la source .bashrc , afin que vous puissiez partager les mêmes paramètres entre les shells interactifs et de connexion.