I keep aliases in
Terminal and iTerm 2 open new shells as login shells by default. When bash is invoked as an interactive login shell, it reads
~/.bash_profile but not
~/.bashrc. The terminal emulators on other platforms often open new shells as non-login shells, so for example bash reads
~/.bashrc but not
~/.bash_profile. OS X users often use
~/.bash_profile as the personal configuration file corresponding to
~/.bashrc on other platforms, but it is also possible to source
~/.bash_profile or to tell Terminal or iTerm 2 to open new shells as non-login shells.
~/.bash_profile exist, bash only reads
~/.bash_profile when it is invoked as an interactive login shell.
~/.profile is also used by other shells and programs that might not understand the same configuration options as bash.
/etc/bashrc is owned by root, and it might get replaced when you upgrade OS X.
man bash|less +^INVOCATION or https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html for more information.