A colleague reports that `ls` on their account always prints in colour, and you suspect an alias rather than a different binary. Which command tells you whether the name `ls` currently resolves to an alias, a shell function, a builtin or a file on disk?
LPIC-1 Exam 101-500, objective 103. GNU and Unix commands medium
Machine-checked — no person has signed for it. This question was read against the source cited below by an automated pass, which found no contradiction. That is a weaker claim than it sounds: the same kind of process wrote the question, so it can confirm its own mistake.
Treat it as a good draft rather than as settled fact, and read the source below before you rely on it. It is not used in mock exams here — only questions a person has signed for are.
How these questions are written — where each question comes from, what the verification ledger records, and what happens when one is found wrong.
The options
Correct type ls
Correct. type is a bash builtin that resolves a name the way the shell itself does, so it reports aliases, functions, builtins, reserved words and, failing all of those, the path of the executable.
Not correct which ls
Wrong for this purpose. which is an external program that only walks the directories in PATH looking for an executable file. It never sees the shell's aliases or functions, so it reports /usr/bin/ls whether or not an alias is shadowing it.
Not correct whereis ls
Wrong. whereis searches a fixed set of standard locations for the binary, its source and its manual page. It answers a packaging question, not a shell-resolution one.
Not correct file /usr/bin/ls
Wrong. file inspects the content of the named file and reports that it is an ELF executable. It says nothing about what the shell would run when you type ls.
Why
The shell resolves a command name in a fixed order: alias, then keyword, then function, then builtin, then a PATH search. Only a builtin can see the first four of those, which is why type is the diagnostic and which is not. `type -a name` lists every match in that order, so you can see the alias and the file it hides at the same time.
Where this comes from
- Cited
- manual page bash(1)
Practise this
Reading one question is not practice. The trainer will draw a short set from objective 103 and space the ones you get wrong.
More questions on this objective
- A user starts a new terminal window in a running graphical desktop session, which launches bash as an interactive shell that is NOT a login shell. Which file in the user's home directory does bash read in that case? machine-checked
- In bash, which history expansion re-runs the entire previous command line? machine-checked
- Which bash command prints the literal five characters $USER instead of the current user name? machine-checked
- 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? machine-checked
- There is a passwd manual page in section 1 (the command) and another in section 5 (the /etc/passwd file format). Which command opens the section 5 page? machine-checked
- Select the TWO true statements about shell variables and the environment in bash. machine-checked