web-dev-qa-db-fra.com

iTerm / zsh ne lit pas .bashrc OR .bash_profile

Dans ~/.bash_profile j'ai:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

Dans ~/.bashrc j'ai des alias

Lorsque je charge une nouvelle fenêtre iTerm, mes alias ne fonctionnent pas. Si je source ~/.bashrc ils travaillent. Si je source ~.bash_profile ils travaillent.

Au moins un de ceux-ci n'est-il pas supposé provenir automatiquement?

Qu'est-ce qui pourrait l'empêcher de fonctionner correctement?

22
Damon

La réponse est simple, presque évidente dans la question. Voici pourquoi:

Le shell zsh n'est pas bash, c'est un shell différent. zsh n'utilisera pas les fichiers par défaut générés pour bash: .bashrc ou .bash_profile. Ces deux fichiers sont des fichiers de configuration de démarrage pour bash. zsh a ses propres fichiers de configuration de démarrage.

Vous pouvez en savoir plus à leur sujet ici sur la page d'introduction zsh :

Zsh lira les commandes à partir de cinq fichiers de démarrage:

$ZDOTDIR/.zshenv
$ZDOTDIR/.zprofile
$ZDOTDIR/.zshrc
$ZDOTDIR/.zlogin
$ZDOTDIR/.zlogout

Vous avez mentionné que vos alias ne fonctionnent pas. Pour résoudre ce problème, appliquez vos alias ici comme suit:

~/.zshrc

alias sz='source ~/.zshrc'     # Easily source your ~/.zshrc file.
alias ls='pwd; ls --color'     # Alias 'ls' to: pwd + ls + color.
41
projectdp

Si vous utilisez zsh, forcez le code source .bash_profile

dans ~/.zshrc ajouter la ligne ci-dessous

source ~/.bash_profile

P.S - Je n'ai pas cherché à savoir si cela pouvait causer un problème.

2
Alok Swain