J'installe une nouvelle machine Linux que j'ai obtenue de notre service informatique, et .profile
j'ai remarqué qu'elle n'est pas chargée lorsque je démarre une nouvelle session de terminal. Le shell actuel est Bash , bien que je l'aie changé par rapport au sh par défaut fourni. Comment le charger .profile
au démarrage?
J'accéder au shell via SSH : ssh myusername@remotemachine
. J'ai des privilèges d'administrateur dessus.
Réponses:
Lorsque Bash démarre en tant que shell de connexion interactif, l'un des fichiers qu'il peut traiter est
~/.profile
.Lorsqu'il démarre en tant que shell interactif sans connexion, il ne le fait pas. Il traite
/etc/bash.bashrc
(si ce fichier ou un fichier similaire est activé dans votre version de Bash) et~/.bashrc
.Vous pouvez ajouter ce qui suit à votre
~/.bashrc
(mais faites attention aux boucles ou aux valeurs modifiées par inadvertance):la source
[ -z "$SOME_VAR_SET_IN_PROFILE" ] && . ~/.profile
Cela dépend de la façon dont vous démarrez votre shell. Comme d'autres l'ont dit, un shell de connexion chargera votre profil (il recherchera d'abord .bash_profile, puis essaiera .profile). S'il en trouve un, il les charge. Un shell sans connexion (interactif ou non interactif) générera .bashrc.
Je suggère de tout mettre dans .bashrc. La division .profile / .bashrc était un peu arbitraire et avait plus de sens dans les vieux jours d'UNIX quand tty n'était pas seulement un nom de périphérique et signifiait un TeleType réel. Il était destiné à démarrer certaines choses (comme vérifier le courrier) sur la connexion `` principale '' à un serveur, et juste des trucs de configuration normaux pour d'autres shells. Dans la plupart des Linux, vous vous connecterez maintenant, vous ne vous connectez pas vraiment à un shell, car vous vous connectez à une interface graphique (KDE, gnome, CDE 'shudder'). Le "processus de connexion au spawn" est désormais pris en charge par votre gestionnaire de session. C'est beaucoup moins pertinent maintenant.
Ma suggestion: faites en sorte que votre profil soit composé uniquement de:
en tant que première ligne de .bashrc, évitez les choses étranges qui se produisent lors de l'exécution d'un script bash en sautant tôt:
la source
.profile
devrait être maintenu agnostique bash. Je suggère de configurer.bash_profile
pour charger.profile
puis charger.bashrc
. ne mettre que des trucs agnostiques bash.profile
, commePATH
et lesLC_*
trucs. Mettez le reste.bashrc
.