03. Bash startup files .bash_profile, .bashrc

When the bash starts up, it reads configuration files to set up the environment. These files are known as startup files.

Startup files work by first loading the default environment shared by all users. Then it loads files in the user's home directory to give a more tailored experience per user.

Two types of shell logins

There are two types of shell logins: login and non-login shell sessions. Depending on which one you choose to boot your shell, a different group of startup files are executed.

Login shell sessions

For a login shell session, a username and password in necessary.

Here is the order in which the startup files are executed in a login shell.

Global configuration file that loads for all users.
Automatically read into shell if login shell.
Global configuration file that loads for all users.
The user's personal startup file.
Oftentimes the .bash_profile file contains code that executes the .bashrc file.
This file is executed if a user's .bash_profile is missing.
A fallback file if the above two are not found.
Executed when a user logs out.

Non-login shell sessions

Non-login shells inherit the environment from their parent process.

Configuration file for all users.
Startup file.

The main difference in files being executed is that login shells run .bash_profile on startup, while non-login shells run .bashrc. However, .bashrc is usually executed from .bash_profile.

Hidden files

Remember that the . before a file name means that it is hidden. To view hidden files, use ls -a.

Configuring our environment

There is a convention of where to store certain variables when configuring your environment.

If you want to add any directories to your $PATH, you should do it in your ~/.bash_profile. For all others (configuring aliases or setting umask), place it in ~/.bashrc.

In the next section, let's talk about how to properly set environment variables so that your settings are loaded upon every login.

Aching back from coding all day?

Prism Glasses

Aching back from coding all day? Try Back Problems

Ever feel achy from sitting crunched up on your computer table? Try lying down with these optical glasses that allow you to work on your laptop while lying flat on your back. This is the perfect solution with those with limited mobility or those who wish to prevent neck cramps and back strains.

$ Check price
4.454.45Amazon 4 logo(128+ reviews)

More Back Problems resources

Take your Linux skills to the next level!

System Admin Handbook

Take your Linux skills to the next level! Try Linux & UNIX

This book approaches system administration in a practical way and is an invaluable reference for both new administrators and experienced professionals. It details best practices for every facet of system administration, including storage management, network design and administration, email, web hosting, scripting, and much more.

$ Check price
74.9974.99Amazon 4.5 logo(142+ reviews)

More Linux & UNIX resources