See https://www.gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files
When Bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile
, if that file exists. After reading that file, it looks for ~/.bash_profile
, ~/.bash_login
, and ~/.profile
, in that order, and reads and executes commands from the first one that exists and is readable. The --noprofile option may be used when the shell is started to inhibit this behavior.
Note, no mention of ~/.bashrc
above.
When an interactive shell that is not a login shell is started, Bash reads and executes commands from ~/.bashrc
, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force Bash to read and execute commands from file instead of ~/.bashrc.
Check your terminal application's preferences to see if it launches a login shell or not.
Alternately, you can add this to your ~/.bash_profile
[[ -f ~/.bashrc ]] && . ~/.bashrc