doublon possible:
Différence entre .bashrc et .bash_profile
Quelle est la différence entre .profile
et .bash_profile
et quand configurez-vous lequel?
Ie si je configure le .bash_profile
, dois-je quand même configurer .profile
?
En supposant que bash
est votre shell par défaut, les différences sont décrites dans la page de manuel bash
(man bash
):
When bash is invoked as an interactive login Shell, or as a non-interac-
tive Shell with the --login option, it first reads and executes commands
from the file /etc/profile, if that file exists. After reading that file,
it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that
order, and reads and executes commands from the first one that exists and
is readable. The --noprofile option may be used when the Shell is started
to inhibit this behavior.
Il y a plus de détails dans la page de manuel qui couvre le mode de compatibilité POSIX-Shell, d'où provient .profile
. Lisez toute la section de la page de manuel pour tous les détails.
Si vous configurez .bash_profile
, vous n'aurez également pas besoin de configurer .profile
.
J'aime conserver mes propres alias et commandes dans .profile
. Ainsi, si je gâche quelque chose, je sais que je peux toujours supprimer le .profile
sans affecter le système en général ni les autres applications qui modifient .bash_profile
(comme MacPorts).
Pour utiliser un .profile
, vous devrez peut-être inclure la ligne source ~/.profile
dans votre .bash_profile
afin que le fichier .profile
soit lu (voir la réponse de Ned Deily).
.profile est exécuté par bash lorsque vous obtenez un processus Shell normal - par exemple. vous ouvrez un outil terminal. .bash_profile est exécuté par bash pour les shells de connexion - c’est donc le cas lorsque vous telnet/ssh dans votre machine à distance, par exemple. Par exemple, si vous utilisez ssh à distance dans une machine (disons que vous ouvrez un terminal X), vous obtiendrez initialement .bash_profile. Si dans ce XTerminal vous tapez "xterm" et créez un autre terminal X, alors .profile sera exécuté pour la deuxième instance de XTerminal. Les fichiers résident dans votre répertoire personnel (~). Si je ne me trompe pas par défaut, ils exécutent tous deux ~/.bashrc pour que vous puissiez le modifier afin de configurer les paramètres/variables communs pour les shells de connexion et non de connexion (par exemple, en définissant PATH, certains alias/raccourcis, etc.). Vous voudrez peut-être parfois configurer certaines choses différemment pour ces 2 mais je n’ai jamais rencontré ce besoin - cependant, la possibilité existe.
pour une configuration simple et rapide (où vous ne voulez pas compliquer les choses), configurez simplement tout dans votre fichier ~/.profile. Ce n'est que lorsque vous rencontrez des problèmes (mais que vous ne le rencontrerez probablement jamais) que vous en apprendrez davantage sur .bash_login ou .bash_profile;)
Je suis aussi sur OS X, et n'ai jamais eu besoin de .bash_profile ou .bash_login et n'utilise que .profile, mais votre kilométrage peut varier ...