I know that in linux(usually) such initialization file will be .bashrc (bash is the default shell), for OSX it will be .bash_profile. But there are also different shells, like zsh.So I wonder, if I will have bash as the default shell, with it's configuration in .bashrc, and then I'll decide to run exec zsh - what file would I need to edit to specify the initialization steps for zsh specifically? Are there separate files for different kinds of shells that are running while initialization a new terminal? I tried to add some aliases before to my .bashrc to achieve the same result: alias switch_to_zsh=exec zsh; source zsh_config.shBut after switching to zsh it forgets about source zsh_config.sh part.
Shells initialization files
bash;shell script;shell;zsh
from zsh manual:   Commands are then read from $ZDOTDIR/.zshenv.  If the shell is a  login   shell,  commands  are  read  from  /etc/zsh/zprofile  and  then  $ZDOT   DIR/.zprofile.  Then, if the shell is interactive,  commands  are  read   from /etc/zsh/zshrc and then $ZDOTDIR/.zshrc.  Finally, if the shell is   a login shell, /etc/zsh/zlogin and $ZDOTDIR/.zlogin are read.