iTerm/zsh not reading .bashrc OR .bash_profile

43

13

In ~/.bash_profile I have :

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

In ~/.bashrc I have some aliases

When I load a new iTerm window, my aliases do not work. If I source ~/.bashrc they work. If I source ~.bash_profile they work.

Isn't at least one of these supposed to be sourced automatically?

What might be causing it not to work properly?

Damon

Posted 2015-01-19T15:50:53.660

Reputation: 2 119

Answers

62

The answer is simple, almost evident in the question. Here's why:

The shell zsh is not bash, it is a different shell. zsh will not use the default files built for bash: .bashrc or .bash_profile. These two files are startup configuration files for bash. zsh has its own startup configuration files.

You can find out more about them here on the zsh intro page:

There are five startup files that zsh will read commands from:

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

You had mentioned your aliases don't work, to fix this, apply your aliases here like so:

~/.zshrc

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

projectdp

Posted 2015-01-19T15:50:53.660

Reputation: 1 179

Thank you. Note that ls --color gave me illegal option in both bash and zsh on OSX 10.10, but not on Linux -- I'll look into it. Cheers. – Bradley Flood – 2015-07-10T02:18:40.873

I don't have a Mac to test on but I think this has to do with the ls implementation on OS X, I don't think it has the - -color argument. If I remember I'll look it up. – projectdp – 2015-07-10T02:25:08.873

1"... zsh has its own startup configuration files." this is what he probably asks for huh? just say "dude, it is ~/.zshrc". – eyurdakul – 2018-10-15T12:32:36.607

+1 great tips in the answer for macOS Catalina now using zsh officially. Thank you. – therobyouknow – 2019-11-13T13:59:23.987

22

If you are using zsh then to force source .bash_profile

in ~/.zshrc add the line below

source ~/.bash_profile

P.S - I havent investigated whether this can cause any problem.

Alok Swain

Posted 2015-01-19T15:50:53.660

Reputation: 321

2I guess this answer would be helpful after release of macOS 10.5 Catalina in order to port bash_profile from bash to zsh. – Oleksii Kyslytsyn – 2019-09-29T12:23:19.373

Fast and effective! – Roberto Manfreda – 2019-10-14T12:34:20.820

Note this is very bad idea if your .bash_profile calls source .bashrc. Then you'll have a zsh shell loading a bunch of bash code and probably do weird behavior. – cgnorthcutt – 2020-02-19T23:33:56.130

0

Copy the lines from ~/.bash_profile to ~/.zshrc

cat ~/.bash_profile > ~/.zshrc

And open a new terminal tab/window or use source ~/.zshrc

I Don't Exist

Posted 2015-01-19T15:50:53.660

Reputation: 101