240 votes

Choisir entre .bashrc, .profile, .bash_profile, etc.

C'est embarrassant, mais après de nombreuses années d'utilisation de systèmes POSIX à plein temps, j'ai encore du mal à savoir si une personnalisation Shell doit aller dans .bashrc , .profile ou ailleurs. Sans parler de certains fichiers de configuration spécifiques au système d'exploitation, tels que .pam_environment .

Oui, je sais comment lire la documentation et apprendre quand chaque fichier est ou n'est pas chargé. Ce que je me demande, c'est si quelqu'un a déjà établi des directives complètes sur la façon de décider dans quel fichier placer un type de personnalisation donné.

8 votes

Cette question ne devrait pas être marquée comme dupliquée, la raison étant que le profil n'est pas disponible dans la question ajoutée.

0 votes

-1voto

Hannie Points 41

Mettez tout dans .bashrc et ensuite la source .bashrc de .profile

Depuis la page de manuel de bash (sur OS X 10.9) :

Lorsqu'un Shell interactif qui n'est pas un Shell de connexion est lancé, bash lit et exécute les commandes de ~/.bashrc, si ce fichier existe. Ceci peut être inhibé en utilisant l'option --norc. L'option --rcfile file forcera bash à lire et exécuter les commandes du fichier au lieu de ~/.bashrc.

Le texte ci-dessus est la raison pour laquelle tout est mis dans .bashrc . Cependant, il y a un comportement un peu différent lorsque vous avez affaire à un login Shell. Encore une fois, je cite la page de manuel :

Lorsque bash est invoqué comme un Shell interactif de connexion, ou comme un Shell non interactif avec l'option --login, il lit et exécute d'abord les commandes du fichier /etc/profile, si ce fichier existe. Après avoir lu ce fichier, il recherche ~/.bash_profile, ~/.bash_login, et ~/.profile, dans cet ordre, et lit et exécute les commandes du premier fichier qui existe et qui est lisible. L'option --noprofile peut être utilisée lorsque le Shell est lancé pour inhiber ce comportement.

.profile est lu pour les shells de connexion, mais .bashrc ne l'est pas. Dupliquer tout ça dans .bashrc est bad™ donc nous avons besoin de la source en .profile pour que le comportement reste cohérent.

Cependant, vous ne voulez pas vous approvisionner .bashrc de .profile sans condition. Veuillez consulter les commentaires et les autres réponses pour plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X