Read man bash, section INVOCATION: * bashrc is not sourced for interactive login shells, only for non-login shells * profile is source for interfactive login shells As everything inherits from login shells, the place for $PATH setting is in a profile file (/etc/profile, /etc/bash_profile or ~/.profile, ~/.bash_profile) Then some distributions do not follow this, they source .bashrc within .profile but it's not a general rule.