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.