Select the color which matches the steps before filenames ((non-)login and (non-)interactive), then follow that arrow the rest of the way. There’s more colors in Bash because Bash makes a distinction between remote and local shells.
Another way to look at the same data for Zsh (note: $ZDOTDIR will be used instead of $HOME if it’s defined at any step along the way):
Select the color which matches the steps before filenames ((non-)login and (non-)interactive), then follow that arrow the rest of the way. There’s more colors in Bash because Bash makes a distinction between remote and local shells.
Another way to look at the same data for Zsh (note:
$ZDOTDIR
will be used instead of$HOME
if it’s defined at any step along the way):/etc/zshenv
${ZDOTDIR:-$HOME}/.zshenv
${ZDOTDIR:-$HOME}/.zprofile
${ZDOTDIR:-$HOME}/.zshrc
${ZDOTDIR:-$HOME}/.zlogin
${ZDOTDIR:-$HOME}/.zlogout
One confusion on the Bash side of the diagram is that you see branching paths into
~/.profile
,~/.bash_profile
and~/.bash_login
. Bash will use for~/.bash_profile
,~/.bash_login
, and~/.profile
, in that order, and execute only the first one that exists and is readable.