Level 0 capstone: Find your way around¶
Level 0 ยท Capstone ยท โฑ๏ธ ~1โ2 hours ยท Prerequisites: all six Level 0 chapters
This capstone proves the three Level 0 skills: you can move around the filesystem confidently, you can explain where config, logs, programs, and personal files live, and you can find any command's documentation without a browser.
Scenario¶
You've just joined a data team. Your team lead hands you a fresh Linux Mint 22.3 machine, named mint, that will eventually host a small reporting job. Before you get access to the production servers, your lead wants proof that you can find your way around a Linux system on your own.
"Production has no browser and no internet," they tell you. "When something breaks at 2 a.m., you'll have a terminal, the man pages, and whatever's in your head. Show me you can get around with just those."
Your job is to complete the five parts below and write your answers in a plain-text field guide: a file you can use later as your own reference. Use Mint's Text Editor app (or paper) for the write-up; the terminal is for finding the answers.
Rules¶
- Terminal only for finding answers. No file manager, no web browser, no AI assistant.
- Documentation on the machine is allowed:
man,--help,help,info,apropos,whatis,tldr, and/usr/share/doc. - First attempt: notes allowed. Use the chapters if you're stuck. Then repeat the capstone a few days later without notes. You've passed when the second attempt works.
- No
sudoexcept where a task explicitly says so. Nothing in this capstone needs to change the system. - Every answer should include the command you used, not just the result.
Setup¶
Create a small practice tree. mkdir -p creates directories (and any missing parents); touch creates empty files. Copy these lines as they are:
mkdir -p ~/capstone0/warehouse/landing/2026-09 ~/capstone0/warehouse/landing/2026-10
mkdir -p ~/capstone0/warehouse/curated ~/capstone0/jobs/nightly ~/capstone0/jobs/hourly ~/capstone0/docs
touch ~/capstone0/warehouse/landing/2026-10/orders.csv ~/capstone0/warehouse/landing/2026-10/customers.csv
touch ~/capstone0/jobs/nightly/load.sh ~/capstone0/docs/README.md ~/capstone0/docs/.runbook
Check the result:
/home/alex/capstone0
โโโ docs
โ โโโ README.md
โ โโโ .runbook
โโโ jobs
โ โโโ hourly
โ โโโ nightly
โ โโโ load.sh
โโโ warehouse
โโโ curated
โโโ landing
โโโ 2026-09
โโโ 2026-10
โโโ customers.csv
โโโ orders.csv
10 directories, 5 files
Tasks¶
Part 1: Navigate¶
- Starting in your home directory, get into
~/capstone0/warehouse/landing/2026-10using tab completion. Print your location. - From there, using only a relative path in one
cdcommand, go to~/capstone0/jobs/nightly. Print your location. - Return to the
2026-10directory with the shortest possible command. Then go to your home directory with the shortest possible command. - Without changing directory, from your home directory, list everything in
~/capstone0/docs, including hidden files but not.and... - Predict, then verify: if you're in
~/capstone0/jobs/hourlyand runcd ../../warehouse/./curated/.., which directory are you in? - Answer these with
ls(plusheadortailif you like):- The 5 most recently modified entries in
/var/log, with the newest at the bottom. - The 3 largest files directly inside
/usr/bin, with human-readable sizes. - Which entries in
/are symbolic links, and where each one points. - The owner, group, and permissions of
/tmpitself (not its contents). What does the last character of the permissions mean? - Prove that
/bin/bashand/usr/bin/bashare the same file.
- The 5 most recently modified entries in
Part 2: Map the system¶
-
For each item, give the path and a command that proves it (for example,
ls -l path):# Find a The system-wide configuration file for the SSH client b Your personal bash settings c The template .bashrcthat new users getd The log that records every use of sudoe A log of package installations and upgrades f The program that runs when you type python3, and what it really isg The aptthat runs when you typeapton Mint, and why it isn't/usr/bin/apth The package manager's database of installed packages i Downloaded .debpackage files kept after installationj The kernel file for the kernel you're running right now k Details about your CPU l The list of your network interfaces m A place for temporary files that must survive a reboot n Where a USB stick labelled BACKUPwill appear when you plug it ino The license of the package that provides lsp Your private runtime directory -
From memory, write one sentence describing each of these top-level directories:
/,/bin,/boot,/dev,/etc,/home,/media,/mnt,/opt,/proc,/root,/run,/srv,/sys,/tmp,/usr,/var. -
Summarise the four categories from the Level 0 goal in a short table: where do config, logs, programs, and personal files live, both system-wide and per user?
Part 3: Documentation without a browser¶
- Using only
apropos(andwhatisto confirm), find the command that does each job. Record the search that worked, and any that didn't:- Counts the lines and words in a file.
- Reports free disk space on each filesystem.
- Compresses a file.
- Sorts the lines of a text file.
- Tells how long the system has been running.
- Determines what type of data a file contains.
- Which exact command opens the documentation for the format of
/etc/fstab? Of/etc/hosts? Why does the number matter? - Using the
dfman page or--help, find the options for human-readable sizes and for showing each filesystem's type. Rundfwith both on/, and explain each column of the output. - Using
wc --help, find how to count only lines. Use it to count the accounts in/etc/passwd. - Read the SYNOPSIS of
mv. Explain what each of its lines means, and which form you'd use to move three CSV files into~/capstone0/warehouse/curated. - Get the documentation for the bash builtins
typeandhistory. What doestype -Pdo? What doesman historyshow on your machine, and why isn't it what you want? - Find bash's README in
/usr/share/docand print its first 5 lines without decompressing it to disk.
Part 4: Who you are¶
- Show your username, UID, primary group, and all supplementary groups. Explain what
sudoandadmmembership each allow. - Print your own line from
/etc/passwdand label all seven fields. Compare it with the line forwww-dataand explain why that account's shell is different. - Without running anything as root, find out what
sudolets you do. Explain each part of the rule that grants it. - Run
sudo whoamionce, then find the matching line in the system log and identify who ran what, from where, as whom. - In three or four sentences, explain to a colleague why
sudo pip install pandasis a bad idea, and what the principle of least privilege says instead.
Part 5: Explain it (stretch)¶
- In 10โ15 lines, explain everything that happens from the moment you type
ll /etcand press Enter until the next prompt appears. Name every component: terminal emulator, pty, shell, alias, PATH, the program file, the kernel, and the exit status.
Acceptance criteria¶
You've completed the capstone when every box is ticked on a no-notes attempt:
- I can reach any directory in
~/capstone0from anywhere using both absolute and relative paths, and I use tab completion without thinking. - I can predict where a relative path like
../../x/./y/..leads before running it. - I can use
lsflags (-a,-A,-l,-h,-t,-r,-S,-d,-F,-i) to answer questions about newest, largest, hidden, ownership, and links. - My field guide gives a correct path and a proving command for all 16 items in task 7.
- I can describe every top-level directory in one sentence from memory.
- I can state where config, logs, programs, and personal files live, system-wide and per user.
- I found all six commands in task 10 with
apropos, and I know to try another wording when a search fails. - I can choose the right man section, read a SYNOPSIS, and navigate
lesswith/, N, G, Shift+G, and Q. - I know when to use
helpinstead ofman, and why. - I can explain my UID, groups,
/etc/passwdfields, and the%sudorule. - I can find my own
sudoactivity in the system log. - I can explain why root is dangerous and what least privilege means in practice.
- (Stretch) I can explain the full path from typing
ll /etcto seeing the output.
Hints¶
Hint for task 2: one relative cd
Count how many levels you need to climb from 2026-10 to reach capstone0: 2026-10 โ landing โ warehouse โ capstone0. Each level is one ... Then descend into jobs/nightly.
Hint for task 3: shortest commands
cd has a one-character argument that means "the previous directory", and needs no argument at all to go home.
Hint for task 5: predicting paths
Work left to right, one component at a time, writing down where you are after each step. . means "stay here"; .. means "go up one".
Hint for task 6: ls sort order
-t sorts newest first; -r reverses it so the newest is last. -S sorts by size. To see a directory itself rather than its contents, add -d. To compare two paths at the file level, look at their inode numbers.
Hint for task 7: where to look
Configuration: /etc and dotfiles. Logs: /var/log. Programs: use type -a. Package state: /var/lib. Caches: /var/cache. Kernel: /boot plus uname -r. Hardware and kernel info: /proc and /sys. Licenses: /usr/share/doc.
Hint for task 10: apropos finds nothing
apropos searches the one-line NAME descriptions, which are short and written by programmers. If apropos 'word count' says "nothing appropriate", try a single word that might appear in the description, like counts, or limit the search to section 1 with -s 1 to cut the noise. Then confirm with whatis.
Hint for task 11: sections
File formats live in section 5. Put the section number before the page name.
Hint for task 15: builtins
Run type type and type history first. If it says "shell builtin", the documentation comes from bash itself, not from a man page.
Hint for task 16: compressed docs
Files ending in .gz can be read with zcat (pipe it into head) or zless.
Hint for task 20: finding your sudo log line
You're probably in the adm group, which can read /var/log/auth.log. Use grep for COMMAND= and tail to see only the last few matches.
Hint for task 22: the full path
Go back to How the shell finds and runs a command. Start with the keystrokes reaching the terminal emulator and end with bash reading the exit status.
Solution¶
Try every task yourself before looking. When you're done, compare with the worked solution. Your outputs will differ in dates, sizes, and version numbers; what matters is that your commands and reasoning match.
When you can complete this capstone without notes, you're ready for Level 1: Command-line fluency.