Categories
Linux Tutorial Series

Linux Tutorial Series – 87 – User environment related files

Here is the video version, if you prefer it:

I wanted to list out all files related to the user environment and write a short description when each of them is read. By read, I mean “the file is read and its contents are interpreted as commands which are executed.” Why would this be useful? Just so that you have seen the file name at least once, so that when it pops out in some tutorial, you have a vague idea about what it is used for. Of course, Google the name of the file to be sure what it does, but having some general context doesn’t hurt.

Here we go…

Files read by login shells:

  • /etc/profile
  • /etc/profile.d
  • ~/.profile
  • ~/.bash_profile
  • ~/.bash_login

Note that .bash_profile and .bash_login may not exist in your home directory (they don’t exist in my home directory).

Files read by interactive shells:

  • /etc/bash.bashrc
  • ~/.bashrc

As stated in one of the previous articles I wrote, write all of the changes of your environment to ~/.bashrc.

You may wonder what is the difference between the files in the etc directory and the home (~) directory. If you modify the files in the etc directory your changes apply to the entire system (to all users), while if you modify the files in your home directory the changes apply only to your user. (“Diff between /etc/profile and ~/.bash_profile,” n.d.)⁠ Hence the suggestion to modify .bashrc in your home directory, since then it only applies to you.

Also, a word of caution – it is always a good idea to copy the files you are modifying (using cp for example) so that you can rename them to the original file name if something goes awry with the modified version.

I refer you again to read the superbly written answer here: (“Why is /etc/profile not invoked for non-login shells?,” n.d.)⁠

Hope you learned something useful!

References

Diff between /etc/profile and ~/.bash_profile. (n.d.). Retrieved February 7, 2020, from https://www.linuxquestions.org/questions/linux-newbie-8/diff-between-etc-profile-and-~-bash_profile-609191/

Why is /etc/profile not invoked for non-login shells? (n.d.). Retrieved February 7, 2020, from https://askubuntu.com/questions/247738/why-is-etc-profile-not-invoked-for-non-login-shells

NewsletterUpdates on interesting things I am doing

Subscribe to my newsletter to keep abreast of the interesting things I'm doing. I will send you the newsletter only when there is something interesting. This means 0% spam, 100% interesting content.

Leave a Reply

Your email address will not be published. Required fields are marked *