📖 Scenario: You are learning how to find the location of commands on a Linux system. This helps you understand where programs are stored and which version will run when you type a command.
🎯 Goal: Build a simple script that uses which and whereis commands to find the locations of specific Linux commands.
📋 What You'll Learn
Use the which command to find the path of a command
Use the whereis command to find all locations related to a command
Print the results clearly
💡 Why This Matters
🌍 Real World
Knowing where commands are located helps you troubleshoot issues and understand your system better.
💼 Career
System administrators and developers often need to find command locations to configure environments or debug problems.
Progress0 / 4 steps
1
Create a variable with the command name
Create a variable called cmd and set it to the string ls.
Linux CLI
Hint
Use cmd="ls" to store the command name.
2
Use which to find the command path
Use the which command with the variable cmd and save the output to a variable called which_path.
Linux CLI
Hint
Use which_path=$(which $cmd) to get the command path.
3
Use whereis to find all related locations
Use the whereis command with the variable cmd and save the output to a variable called whereis_info.
Linux CLI
Hint
Use whereis_info=$(whereis $cmd) to get all locations.
4
Print the results clearly
Print the text Path found by which: followed by the variable which_path, then print Information found by whereis: followed by the variable whereis_info.
Linux CLI
Hint
Use echo to print the variables with descriptive text.
Practice
(1/5)
1. What does the which command do in Linux?
easy
A. Lists all files related to a command including source and man pages
B. Displays the manual pages of a command
C. Shows the full path of the executable that runs when you type a command
D. Shows the current directory contents
Solution
Step 1: Understand the purpose of which
The which command searches your PATH environment to find the executable file that runs when you enter a command.
Step 2: Compare with other options
whereis lists multiple locations including source and man files, not just the executable path. Manual pages are shown by man. Directory contents are shown by ls.
Final Answer:
Shows the full path of the executable that runs when you type a command -> Option C
Quick Check:
which = executable path [OK]
Hint: Remember: which = executable path only [OK]
Common Mistakes:
Confusing which with whereis
Thinking which shows manual pages
Assuming which lists all related files
2. Which of the following is the correct syntax to find the location of the ls command using which?
easy
A. which -l ls
B. which ls
C. which --all ls
D. which ls -a
Solution
Step 1: Recall basic which syntax
The basic syntax to find the path of a command is simply which command_name. No extra flags are needed for a single path.
Step 2: Analyze options
Options like -l or --all are not standard or needed for basic usage. Adding -a or extra flags incorrectly after the command name is invalid.
Final Answer:
which ls -> Option B
Quick Check:
Simple syntax: which + command [OK]
Hint: Use just 'which command' to find executable path [OK]
Common Mistakes:
Adding unnecessary flags to which
Placing flags after command name
Using incorrect or unsupported options
3. What will be the output of the command whereis bash on a typical Linux system?
medium
A. bash: /bin/bash /usr/share/man/man1/bash.1.gz
B. bash: command not found
C. /usr/bin/bash
D. /bin/bash
Solution
Step 1: Understand whereis output format
whereis shows multiple locations: the binary executable path, source files if any, and manual page locations.
Step 2: Analyze typical output for bash
On most systems, whereis bash returns the binary path like /bin/bash and the man page location like /usr/share/man/man1/bash.1.gz.
Final Answer:
bash: /bin/bash /usr/share/man/man1/bash.1.gz -> Option A
Quick Check:
whereis = binary + man files [OK]
Hint: whereis shows binary and man page locations [OK]
Common Mistakes:
Expecting only one path from whereis
Confusing whereis output with which output
Thinking whereis returns error if command exists
4. You run which python3 but get no output. What is the most likely reason?
medium
A. Python3 is installed but hidden by a firewall
B. You typed the command incorrectly
C. which command is broken on your system
D. Python3 is not installed or not in your PATH
Solution
Step 1: Interpret empty output from which
If which returns nothing, it means it did not find the executable in any directory listed in your PATH environment variable.
Step 2: Consider common causes
Most often, this means the program is not installed or its executable directory is not in PATH. Typing errors usually cause an error message, not empty output. The command itself rarely breaks, and firewalls do not hide executables.
Final Answer:
Python3 is not installed or not in your PATH -> Option D
Quick Check:
No output from which = command missing or PATH issue [OK]
Hint: No output means command not found in PATH [OK]
Common Mistakes:
Assuming which is broken
Blaming firewall for missing executable
Ignoring PATH environment variable
5. You want to find all locations related to the gcc compiler including binary, source, and manual files. Which command should you use?
hard
A. whereis gcc
B. which gcc
C. locate gcc
D. find / -name gcc
Solution
Step 1: Understand the purpose of each command
which shows only the executable path. locate searches a database for filenames but may show unrelated files. find searches the entire filesystem but is slow and may produce too many results.
Step 2: Identify the command that shows binary, source, and manual files
whereis is designed to show all related locations for a command including binary, source, and man pages, making it the best choice.
Final Answer:
whereis gcc -> Option A
Quick Check:
whereis = binary + source + man files [OK]
Hint: Use whereis to find all related command files [OK]
Common Mistakes:
Using which to find all files
Using locate without filtering results
Running find without knowing its slowness
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.