You want /opt/bin searched for executables, after all the directories already in PATH, in the current bash session and in every command started from it. Which command does that?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands 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 echo $PATH:/opt/bin
Wrong. This only prints what the new value would look like. Nothing is assigned and PATH is unchanged.
Not correct export PATH=/opt/bin
Wrong, and it will break the session. This REPLACES the whole search path, so ls, cat and everything else outside /opt/bin can no longer be found by name.
Not correct set PATH=$PATH:/opt/bin
Wrong. In bash, `set` manipulates shell options and positional parameters; this line does not assign PATH at all, it sets $1 to the literal text PATH=... (that syntax belongs to csh/tcsh).
Correct export PATH=$PATH:/opt/bin
Correct. The old value is re-used and /opt/bin is appended, so it is searched last; export makes the new value part of the environment inherited by child processes.
Why
PATH is a colon-separated list searched left to right, so appending puts the new directory last and prepending would let it override system commands. A bare assignment changes only the current shell; export marks the variable for inclusion in the environment of processes the shell starts. To make the change permanent for interactive shells, put the same line in a startup file such as ~/.bashrc.
Where this comes from
- Cited
- LPI exam objective 103.1
- What it says
- Set and use environment variables such as PATH, and export them to child processes.
Practise this
Reading one question is not practice. The trainer will draw a set from objective 103 and space the ones you get wrong.