~/.profile, ~/.bashrc et ~/.bash_profile ne s'exécutent pas au démarrage d'un nouveau terminal

StackOverflow https://stackoverflow.com//questions/25025799

Question

J'essaie de créer un alias permanent pour mon terminal.J'ai mis l'alias dans mes fichiers ~/.profile, ~/.bashrc et ~/.bash_profile, auparavant vides.Lorsque je démarre un nouveau terminal, bash ne reconnaît pas l'alias, mais si j'en recherche un, c'est le cas.Pourquoi ne s'exécutent-ils pas lorsque j'ouvre un terminal ?Je suis sous OSX.

Était-ce utile?

La solution

Deux choses doivent se produire ici lors de l'utilisation iTerm pour que le chargement des fichiers dot fonctionne.

Vous devez d'abord ajouter ce qui suit à votre .bash_profile

[[ -s ~/.bashrc ]] && source ~/.bashrc

Deuxièmement, vous devrez vous assurer qu'en iTerm préférences, votre terminal est configuré pour lancer un shell de connexion.

iTerm Preferences

J'espère que cela t'aides!

Autres conseils

Utilisation du terminal Mac par défaut, qu'est-ce qui a fonctionné pour moi devait ajouter une commande pour exécuter le démarrage pour la source mon .bash_profile.

Préférences> Profil> Startup> Ajouter une commande 'Source ~ / .bash_profile'

Capture d'écran de préférences de terminal Mac

Peut être considéré comme un peu hacky, mais cela fait l'affaire.

comme de haute sierra, le terminal et Ivererm veulent charger ~ / .profile en premier.Je vous suggère donc de mettre une ligne dans votre .profile pour que votre mac travaille comme d'autres Unix:

source ~ / .bash_profile

En modifiant ce fichier, vous n'aurez pas à rechercher dans les menus de plusieurs applications pour remplacer le comportement bizarre d'Apple dans chacun.

Ajouter source ~/.profile à mon .bash_profile a fonctionné pour moi.

Pourquoi les fichiers d'initialisation de votre shell ne se chargent-ils pas ?

Comme pour la plupart des choses, ça dépend ™

J'ai récemment vécu le même phénomène et j'ai fait l'exercice suivant pour le résoudre :

J'utilise iTerm.iTerm exécute un shell de connexion par défaut.Vérifiez dans les préférences ITerm> Général> Commande> (*) Shell de connexion Par conséquent, je sais que ~ / .bash_profile sera toujours appelé.

Sachant cela, j'ai mis ce qui suit dans mon fichier ~/.bash_profile :

for file in ~/.{bashrc,bash_exports,bash_aliases,bash_functions}; do
    [ -r "$file" ] && source "$file"
done
unset file

Notez que j'utilise des fichiers séparés pour .bashrc, .bash_exports, etc.Cela garde les choses séparées et simples.

Notez également que /etc/profile est chargé en premier, mais comme je n'ai jamais utilisé ce fichier d'initialisation à l'échelle du système, je savais que ce n'était pas mon problème.Pour plus de détails, consultez $ man bash

J'ai donc commencé avec mon fichier ~/.bash_profile.

J'ai découvert ça en installant Auvent Express que son programme d'installation a remplacé le contenu de mon fichier ~/.bash_profile par le contenu suivant :

# Added by Canopy installer on 2017-04-19
# VIRTUAL_ENV_DISABLE_PROMPT can be set to '' to make the bash prompt show that Canopy is active, otherwise 1
alias activate_canopy="source '/Users/lex/dev/python/User/bin/activate'"
# VIRTUAL_ENV_DISABLE_PROMPT=1 source '/Users/lex/dev/python/User/bin/activate'

p.s.Canopy est un excellent IDE Python gratuit, que je recommande vivement.

Heureusement, j'ai sauvegardé mes fichiers ~/.bash*, ce qui a permis de restaurer facilement et rapidement mon problème.

Mon conseil serait de comprendre l'ordre des appels à vos fichiers d'initialisation, de commencer par le premier et de les parcourir jusqu'à ce que vous trouviez le problème.

Oh, et vous voudrez peut-être vérifier quel shell vous utilisez (j'utilise bash) :

~ $ echo $SHELL
/usr/local/bin/bash

Je suppose que vous pouvez utiliser un autre shell, tel que bash, tcsh, sh, zsh etc.

Mettre source .bash_profile dans votre fichier 'bashrc' approprié, le chargement automatique sera récupéré, c'est-à-dire

.login pour tcsh, .bash_profile pour bash, .zshrc pour zsh

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top