0
0
Linux CLIscripting~10 mins

which and whereis for commands in Linux CLI - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - which and whereis for commands
User types command
which searches PATH
Returns first executable path or nothing
whereis searches binaries, sources, man pages
Returns all found locations or nothing
The flow shows how 'which' finds the first executable in PATH, while 'whereis' searches for binaries, sources, and manuals.
Execution Sample
Linux CLI
which ls
whereis ls
Shows the path of the 'ls' command using 'which' and all locations using 'whereis'.
Execution Table
StepCommandActionResultOutput
1which lsSearch PATH directories in orderFind first 'ls' executable/bin/ls
2whereis lsSearch standard binary, source, man pathsFind all 'ls' related filesls: /bin/ls /usr/share/man/man1/ls.1.gz
💡 Commands finish after showing found paths or nothing if not found.
Variable Tracker
VariableStartAfter which lsAfter whereis ls
PATH/usr/local/bin:/usr/bin:/bin/usr/local/bin:/usr/bin:/bin/usr/local/bin:/usr/bin:/bin
which_resultnone/bin/ls/bin/ls
whereis_resultnonenone/bin/ls /usr/share/man/man1/ls.1.gz
Key Moments - 3 Insights
Why does 'which' only show one path but 'whereis' shows many?
'which' stops at the first executable found in PATH (see execution_table step 1). 'whereis' searches multiple standard locations and lists all matches (see step 2).
Can 'which' find commands not in PATH?
No, 'which' only searches directories listed in PATH (see variable_tracker PATH values). If a command is outside PATH, 'which' won't find it.
Does 'whereis' only find executables?
'whereis' finds executables, source files, and man pages related to the command (see execution_table step 2 output).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what output does 'which ls' produce at step 1?
A/bin/ls
B/usr/bin/ls
Cls not found
D/usr/share/man/man1/ls.1.gz
💡 Hint
Check the 'Output' column in execution_table row for step 1.
At which step does 'whereis ls' show man page location?
AStep 1
BNo step shows man page
CStep 2
DBoth steps
💡 Hint
Look at the 'Output' column in execution_table for step 2.
If PATH did not include /bin, what would 'which ls' output be?
A/bin/ls
BNo output (not found)
C/usr/share/man/man1/ls.1.gz
D/usr/bin/ls
💡 Hint
Refer to variable_tracker PATH and which_result values.
Concept Snapshot
which command: searches PATH directories in order and returns the first executable found.
whereis command: searches standard locations for binaries, source files, and man pages, returning all matches.
Use which to find exact executable location.
Use whereis to find related files and documentation.
If command not in PATH, which won't find it but whereis might.
Both commands help locate commands but differ in scope.
Full Transcript
This lesson shows how the Linux commands 'which' and 'whereis' find command locations. When you type 'which ls', it looks through the directories listed in your PATH environment variable, one by one, until it finds the first executable named 'ls'. It then shows that path, for example '/bin/ls'. On the other hand, 'whereis ls' searches more places, including standard binary folders, source code locations, and manual pages. It lists all found files related to 'ls', such as '/bin/ls' and '/usr/share/man/man1/ls.1.gz'. The execution table traces these steps clearly. Variables like PATH and the results of each command are tracked to show changes. Key moments clarify why 'which' shows only one path while 'whereis' shows many, and why 'which' depends strictly on PATH. The quiz tests understanding by asking about outputs at specific steps and effects of changing PATH. Remember, use 'which' to find the exact executable your shell will run, and 'whereis' to find related files and documentation.