De acordo com man bash :
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.
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
Existe também /etc/bashrc ( /etc/bash.bashrc no Linux baseado em Debian) que contém System wide functions and aliases . Por padrão, isso é definido mesmo para shells não interativos e não-login.
EDITAR:
O tilde nos caminhos indica o home directory do usuário atualmente conectado. O Bash só pode usar um ~/.bash_profile, ~/.bash_login, or ~/.profile (por usuário atualmente logado), nessa ordem, para ler e executar comandos. (Geralmente, os sistemas operacionais baseados no Debian não têm ~/.bash_profile or ~/.bash_login. . Eles usam o arquivo ~/.profile . Esse arquivo explica que ele será lido e usado, a menos que ~/.bash_profile or ~/.bash_login seja criado.
#~/.profile: executed by the command interpreter for login shells.
#This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
exists.