Quelle est la différence entre .profile et .bash_profile, et quand configurez-vous lequel? (Mac) [dupliquer]


23

Duplicata possible:
différence entre .bashrc et .bash_profile

Quelle est la différence entre .profileet .bash_profileet quand configurez-vous laquelle?

Autrement dit, si je configure le .bash_profile, ai-je encore besoin de le configurer .profile?

Réponses:


12

En supposant que bashc'est votre shell par défaut, les différences sont décrites dans la bashpage de manuel ( 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é shell POSIX, d'où il .profilevient. Lisez la section entière de la page de manuel pour tous les détails.


dans Ubuntu 18.04, l'ouverture d'une nouvelle fenêtre de terminal n'appelle pas .profileseulement .bashrc:(
CpILL

5

Si vous configurez .bash_profile, vous n'aurez pas non plus besoin de configurer .profile.

J'aime garder mes propres alias et commandes .profileafin que si je gâche quelque chose, je sais que je peux toujours supprimer le .profilesans affecter le système dans son ensemble ou d'autres applications qui modifient .bash_profile(comme MacPorts).

Pour utiliser un .profile, vous devrez peut-être inclure la ligne source ~/.profiledans votre .bash_profileafin que le .profilefichier soit lu (voir la réponse de Ned Deily).


3

.profile est exécuté par bash lorsque vous obtenez un processus shell normal - par exemple, vous ouvrez un outil de terminal. .bash_profile est exécuté par bash pour les shells de connexion - c'est donc lorsque vous telnet / ssh dans votre machine à distance par exemple. Par exemple, si vous utilisez ssh à distance sur une machine (disons que vous ouvrez un terminal X), vous obtiendrez initialement .bash_profile exécuté. Si dans ce XTerminal vous tapez "xterm" et générez un autre X Terminal, 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 les deux ~ / .bashrc afin que vous puissiez les modifier pour configurer des paramètres / variables communs pour les shells de connexion et non de connexion (par exemple, en définissant PATH, certains alias / raccourcis, etc.).


dans Ubuntu 18.04 ouvrir une nouvelle fenêtre de terminal n'appelle pas .profile?
CpILL

1

pour la configuration rapide et simple (où vous ne voulez pas compliquer les choses), configurez simplement tout dans votre ~ / .profile. Ce n'est que lorsque vous rencontrez des problèmes (mais probablement jamais) que vous en apprendrez plus sur .bash_login ou .bash_profile;)

Je suis également sous OS X et je n'ai jamais eu besoin de .bash_profile ou .bash_login et j'utilise uniquement .profile, mais votre kilométrage peut varier ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.