Lorsque je démarre un terminal bash, mon fichier .profile n'est pas en cours d'exécution. Je n'ai ni ~ / .bash_profile ni ~ / .bash_login, donc .profile est censé s'exécuter, n'est-ce pas? Quoi d'autre pourrait-être faux?
Lorsque je démarre un terminal bash, mon fichier .profile n'est pas en cours d'exécution. Je n'ai ni ~ / .bash_profile ni ~ / .bash_login, donc .profile est censé s'exécuter, n'est-ce pas? Quoi d'autre pourrait-être faux?
Réponses:
Ce n'est pas un shell de connexion.
Si un shell est un shell de connexion, il recherchera .bash_profile s'il existe, puis .profile. D'autres coquilles recherchent .bashrc
Donc, vous pouvez mettre les objets que vous voulez dans chaque instance de shell dans .bashrc et éventuellement avoir une référence qui code .bashrc dans .profile.
Donc: .bashrc:
stuff you want
fin de .profile:
[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc
bash --login
. Dans votre cas, il semble que vous exécutiez bash, ce qui par défaut ne déclenchera pas un shell de connexion
Si vous utilisez un bureau graphique, le fichier .profile doit être généré par votre gestionnaire de bureau. Lightdm crée le fichier .profile maintenant, du moins sur Ubuntu. Voir: https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/794315
Avec kdm et Kubuntu-12.04, le fichier / etc / kde4 / kdm / Xsession est recherché, ce qui inclut le fichier .profile. Kubuntu-12.10 utilisera probablement lightdm. Ubuntu 12.04 utilise lightdm pour que / usr / sbin / lightdm-session sources .profile.
Je pense que la solution consiste à (1) définir / exporter les paramètres d'environnement dans ~ / .profile et (2) à obtenir un .profile créé par .bash_profile:
[[ -f ~/.profile ]] && . ~/.profile
(et ne pas avoir .bashrc obtenu par .profile ou .bash_profile).
Voir également:
.profile
code source lors de la connexion, mais il se demande en fait comment obtenir bash
le code source lorsqu'il lance un terminal (pas lors de la connexion)