You are already logged in to a graphical desktop and open a new terminal window, so bash starts as an interactive shell that is not a login shell. Which per-user file does bash read in that case?
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
Correct ~/.bashrc
Correct. An interactive shell that is not a login shell reads ~/.bashrc. That is why aliases and prompt settings belong there rather than in ~/.bash_profile.
Not correct ~/.bash_profile
Wrong. ~/.bash_profile is read only by login shells. Aliases defined there will be missing in ordinary terminal windows unless it sources ~/.bashrc.
Not correct ~/.profile
Wrong for bash here. ~/.profile is a login-shell file, read by bash only if neither ~/.bash_profile nor ~/.bash_login exists. It is also the file /bin/sh login shells use.
Not correct ~/.inputrc
Wrong. ~/.inputrc is a real file, but it configures the readline library, meaning key bindings and completion behaviour, not shell variables, aliases or functions.
Why
The usual convention is: environment variables and one-time login work in ~/.bash_profile, and interactive conveniences such as aliases, functions and the prompt in ~/.bashrc. Because a login shell does not read ~/.bashrc on its own, most ~/.bash_profile files contain a line like `[ -f ~/.bashrc ] && . ~/.bashrc` so that both kinds of shell end up configured the same way.
Where this comes from
- Cited
- LPI exam objective 105.1
- What it says
- Customize the shell environment for interactive and login shells.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 105 and space the ones you get wrong.