Bash Configuration Files

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

This article describes how bash executes its startup files. If any of the files exist, but cannot be read, bash reports an error.

Interactive Login Shell

This sequence is executed by an interactive login shell, or a shell that was invoked with --login:

├─→ /etc/profile ─→ /etc/profile.d/*.sh
│
│
└─→ ~/.bash_profile ─→ ~/.bash_login ─→ ~/.profile # executes the first one that exists and it is readable

When more than one of ~/.bash_profile, ~/.bash_login or ~/.profile exists and it is readable, the first one, in this order, is executed.

TODO: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html

Interactive Non-Login Shell

Non-Interactive Shell

Invoked with the name "sh"

Invoked by Remote Shell Daemon

Invoked with Unequal Effective and Real UID/GIDs