Bash reads one or more startup files. Some of the files are read only when a shell is a login shell.
The startup files are, in the order they are read:
/etc/profile. Executed automatically at login.
The first file found from this list: ~/.bash_profile, ~/.bash_login, or ~/.profile. Executed automatically at login.
~/.bashrc is read by every shell, after the login files. However, if invoked as sh, Bash instead reads $ENV.
The getpwnam ( ) and getpwuid ( ) functions are the sources of home directories for ~name abbreviations. (On single-user systems, the user database is stored in /etc/passwd. However on networked systems, this information may come from NIS, NIS+, or LDAP—not your workstation password file.)