bash settings
Bash Startup Files
When invoked as an interactive login shell, Bash looks for the
/etc/profile
file, and if the file exists , it runs the commands listed in the file. Then Bash searches for
~/.bash_profile
,
~/.bash_login
, and
~/.profile
files, in the listed order, and executes commands from the first readable file found.
When Bash is invoked as an interactive non-login shell, it reads and executes commands from
~/.bashrc
, if that file exists, and it is readable.
Difference Between .bashrc and .bash_profile
.bash_profile
is read and executed when Bash is invoked as an interactive login shell, while
.bashrc
is executed for an interactive non-login shell.
Use
.bash_profile
to run commands that should run only once, such as customizing the
$PATH
environment variable .
Put the commands that should run every time you launch a new shell in the
.bashrc
file. This include your aliases and functions , custom prompts, history customizations , and so on.
tldr
.bash_profile
is read and executed on interactive login shells, while
.bashrc
on non-login shells.