GNU/Linux >> Tutoriels Linux >  >> Linux

Quelles sont les différences fonctionnelles entre .profile .bash_profile et .bashrc

Solution 1 :

.bash_profile et .bashrc sont spécifiques à bash , alors que .profile est lu par de nombreux shells en l'absence de leurs propres fichiers de configuration spécifiques au shell. (.profile était utilisé par le shell Bourne d'origine.) .bash_profile ou .profile est lu par les shells de connexion, avec .bashrc; sous-shell en lecture seule .bashrc . (Entre le contrôle des tâches et les systèmes de fenêtrage modernes, .bashrc en soi ne s'utilise pas beaucoup. Si vous utilisez screen ou tmux , les écrans/fenêtres exécutent généralement des sous-shells au lieu des shells de connexion.)

L'idée derrière cela était que la configuration unique était effectuée par .profile (ou sa version spécifique au shell), et les éléments par shell par .bashrc . Par exemple, vous ne voulez généralement charger les variables d'environnement qu'une seule fois par session au lieu de les faire écraser chaque fois que vous lancez un sous-shell dans une session, alors que vous voulez toujours vos alias (qui ne sont pas propagés automatiquement comme le sont les variables d'environnement).

Autres fichiers de configuration shell notables :

/etc/bash_profile (recours /etc/profile ) est lu avant le .profile de l'utilisateur pour la configuration à l'échelle du système, et de même /etc/bashrc dans des sous-shells (pas de repli pour celui-ci). De nombreux systèmes, y compris Ubuntu, utilisent également un /etc/profile.d répertoire contenant les scriptlets shell, qui sont . (source )-ed de /etc/profile; les fragments ici sont par shell, avec *.sh s'appliquant à tous les shells compatibles Bourne/POSIX et autres extensions s'appliquant à ce shell particulier.

Solution 2 :

.profil

.profile est pour les choses qui ne sont pas spécifiquement liées à Bash , comme les variables d'environnement PATH et amis, et devrait être disponible à tout moment.

Par exemple, .profile doit également être chargé lors du démarrage d'une session de bureau graphique.

.bashrc

.bashrc est pour la configuration de l'utilisation interactive de Bash, comme Bash aliases , en définissant votre editor favori , en définissant le Bash prompt , etc.

.bash_profile

.bash_profile sert à s'assurer que les deux choses dans .profile et .bashrc sont chargés pour login shells .

Par exemple, .bash_profile pourrait être quelque chose de simple comme

. ~/.profile
. ~/.bashrc

Si vous deviez omettre .bashrc , seulement .profile serait chargé.

Solution 3 :

Selon la page de manuel bash, .bash_profile est exécuté pour les shells de connexion, tandis que .bashrc est exécuté pour les shells interactifs sans connexion.

Alors, qu'est-ce qu'un shell de connexion ou non ?

Lorsque vous vous connectez (tapez nom d'utilisateur et mot de passe) via la console, soit assis devant la machine, soit à distance via ssh :.bash_profile est exécuté pour configurer votre shell avant l'invite de commande initiale. Mais, si vous êtes déjà connecté à votre machine et ouvrez une nouvelle fenêtre de terminal (xterm) dans Gnome ou KDE, alors .bashrc est exécuté avant l'invite de commande de la fenêtre. .bashrc est également exécuté lorsque vous démarrez une nouvelle instance bash en tapant /bin/bash dans un terminal.

Une exception aux directives de la fenêtre de terminal est Terminal.app de Mac OS X, qui exécute un shell de connexion par défaut pour chaque nouvelle fenêtre de terminal, en appelant .bash_profile au lieu de .bashrc . D'autres émulateurs de terminaux GUI peuvent faire la même chose, mais la plupart ont tendance à ne pas le faire.

Plus ici.


Linux
  1. MySQL vs MariaDB :quelles sont les principales différences entre eux

  2. Quelles sont les principales différences entre Bsd et Gnu/linux Userland ?

  3. Quelles sont les différences entre le sous-domaine, le domaine parqué et le domaine complémentaire ?

  4. Quelles sont les différences entre `chattr +i FILE` et `chmod -w FILE` ?

  5. Quelles sont les différences entre les fichiers Linux et Windows .txt (encodage Unicode)

Quelle est la différence entre Linux et Unix ?

Quelles sont les différences entre cPanel et WHM ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?

Quelles sont les différences entre rdesktop et xfreerdp ?

Quelle est la différence entre unlink et rm ?