The shell program /bin/bash (hereafter
referred to as “the shell”) uses a collection of startup
files to help create an environment to run in. Each file has a
specific use and may affect login and interactive environments
differently. The files in the /etc
directory provide global settings. If an equivalent file exists in the
home directory, it may override the global settings.
An interactive login shell is started after a successful login,
using /bin/login, by reading the
/etc/passwd
file. An interactive non-login shell
is started at the command-line (e.g.,
[prompt]$
/bin/bash). A
non-interactive shell is usually present when a shell script is
running. It is non-interactive because it is processing a script and
not waiting for user input between commands.
For more information, see info bash under the Bash Startup Files and Interactive Shells section, and Bash Startup Files in CBLFS.
The files /etc/profile
and
~/.bash_profile
are read when the shell is
invoked as an interactive login shell. In the next section, a base
/etc/profile
will be created to set up locale
information.