A user logs in at a text console, and bash starts as an interactive login shell. Which file in that user's home directory is read by bash itself as part of login startup?
LPIC-1 Exam 102-500, objective 105. Shells and shell scripting medium
Draft — not checked yet. This question was written from the published exam objectives and cites the clause it comes from, but nobody has yet read it against that clause and signed for it.
It is kept out of search results and out of mock exams until they have. Read the source below before you take the answer as settled.
The options
Not correct ~/.bashrc
Wrong as stated. bash does not read ~/.bashrc for a login shell. It is read for interactive non-login shells. It usually still runs at login only because ~/.bash_profile or ~/.profile explicitly sources it.
Not correct ~/.bash_logout
Wrong. ~/.bash_logout is executed when a login shell exits, not when it starts. It is the place for commands like clearing the screen.
Correct ~/.bash_profile
Correct. For an interactive login shell bash reads /etc/profile, then the first that exists of ~/.bash_profile, ~/.bash_login and ~/.profile.
Not correct /etc/bash.bashrc
Wrong on two counts. It is a system-wide file, not one in the user's home, and on Debian-family systems it is the system-wide startup file for interactive non-login shells.
Why
Login shell startup: /etc/profile, then the first existing of ~/.bash_profile, ~/.bash_login, ~/.profile. Only the first personal file found is read, so having both ~/.bash_profile and ~/.profile means ~/.profile is ignored. Interactive non-login shells instead read ~/.bashrc (and, on Debian-family systems, /etc/bash.bashrc first).
Where this comes from
- Cited
- LPI exam objective 105.1
- What it says
- Know the startup files bash reads and how login and non-login shells differ.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 105 and space the ones you get wrong.