Skip to content
Productivity Passport
Practice mode · free · unlimited · not certifiable

macOS Terminal

Unscored tasks with hints and instant feedback. Practice results never become credentials.

Short lesson

macOS keyboard essentials · 6 min

Cmd+Space Spotlight · Ctrl+↑ Mission Control · Cmd+` cycle windows · Cmd+Shift+. hidden files · Cmd+Option+Esc force quit.

L1Navigate in Terminalterminal

Open the folder ~/Library/Application Support/Notes and list it. Enter the number of files you see as the answer.

Sign up to practise
L1Read a config valueterminal

Find which port the billing service is configured to use. The config lives somewhere under ~/services. Enter the port number as your answer.

Sign up to practise
L1Set up a project folderterminal

Create ~/work/clients/acme/{contracts,invoices,notes} (three folders) and copy ~/templates/invoice.md into the invoices folder.

Sign up to practise
L2Count errors per dayterminal

From ~/logs/app.log, write the number of ERROR lines per day into ~/errors-by-day.txt as lines like “2026-10-17 2”, sorted by date.

Sign up to practise
L2Make scripts executableterminal

Every *.sh file under ~/bin (including subfolders) must be executable by you. Do not change other files.

Sign up to practise
L2Environment variablesterminal

Add an environment variable API_URL=https://api.acme.example to ~/.zshrc so new shells get it, and export it in the current shell too.

Sign up to practise
L3Install tools with Homebrewterminal

Install ripgrep and tree with Homebrew, then record the installed list in ~/brew-list.txt (brew list output).

Sign up to practise
L3Show hidden files in Finderterminal

Use defaults to set com.apple.finder AppleShowAllFiles to true, then restart Finder (killall Finder).

Sign up to practise
L3Revenue by regionterminal

Using ~/data/sales.csv, write total amount per region to ~/report.txt as “REGION TOTAL” lines, highest total first.

Sign up to practise
L3Extract with jqterminal

~/users.json lists accounts. Write the emails of active users on the pro plan, one per line, into ~/active-pro.txt.

Sign up to practise
L3Delete files listed in a manifestterminal

~/cleanup.txt lists files (one per line, relative to ~/media) that must be deleted. Delete exactly those files.

Sign up to practise
L3Write a log summary scriptterminal

Create an executable script ~/bin/logcount.sh that prints, for every *.log file in the directory given as its first argument, a line “NAME COUNT” where COUNT is the number of lines containing ERROR.

Sign up to practise
L3Schedule a jobterminal

Schedule ~/bin/backup.sh to run every day at 02:30 for your user.

Sign up to practise
L5Scripted machine setupterminal

Make ~/dotfiles/setup.sh executable and run it; it should install every formula listed in ~/dotfiles/Brewfile (use brew bundle inside the script) and create a symlink-free copy of .zshrc into your home.

Sign up to practise