Last active
March 25, 2024 20:22
-
-
Save hfreire/94a7c0cdd7b0f603a6f1dd6acfd7213f to your computer and use it in GitHub Desktop.
bash startup load order
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
If you have ever put something in a file like .bashrc and had it not work, or are | |
confused by why there are so many different files — .bashrc, .bash_profile, .bash_login, | |
.profile etc. — and what they do, this is for you. | |
The issue is that Bash sources from a different file based on what kind of shell it thinks | |
it is in. For an “interactive non-login shell”, it reads .bashrc, but for an “interactive | |
login shell” it reads from the first of .bash_profile, .bash_login and .profile (only). | |
There is no sane reason why this should be so; it’s just historical. Follows in more detail. | |
For Bash, they work as follows. Read down the appropriate column. Executes A, then B, then C, | |
etc. The B1, B2, B3 means it executes only the first of those files found. | |
+----------------+-----------+-----------+------+ | |
| |Interactive|Interactive|Script| | |
| |login |non-login | | | |
+----------------+-----------+-----------+------+ | |
|/etc/profile | A | | | | |
+----------------+-----------+-----------+------+ | |
|/etc/bash.bashrc| | A | | | |
+----------------+-----------+-----------+------+ | |
|~/.bashrc | | B | | | |
+----------------+-----------+-----------+------+ | |
|~/.bash_profile | B1 | | | | |
+----------------+-----------+-----------+------+ | |
|~/.bash_login | B2 | | | | |
+----------------+-----------+-----------+------+ | |
|~/.profile | B3 | | | | |
+----------------+-----------+-----------+------+ | |
|BASH_ENV | | | A | | |
+----------------+-----------+-----------+------+ | |
| | | | | | |
+----------------+-----------+-----------+------+ | |
| | | | | | |
+----------------+-----------+-----------+------+ | |
|~/.bash_logout | C | | | | |
+----------------+-----------+-----------+------+ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment