Practice Terminal
A fully simulated Mac terminal environment. Experiment with commands freely — the filesystem is sandboxed and resets with the [RESET] button. Browse files, create directories, search with grep, and explore just like a real terminal.
Things to Practice
Not sure where to start? Work through these drills in the terminal above. Each one targets a real skill you'll use every day on the command line.
- 01
Get your bearings
Find out who you are, where you are, and what's around you in the filesystem.
whoamipwdls -lahostname - 02
Navigate the project tree
Move into the sample project, look at its structure, then return home.
cd projects/my-apptreecd ..cd ~ - 03
Read a file
Inspect the contents of package.json, then peek at just the first or last lines.
cat projects/my-app/package.jsonhead package.jsontail -n 5 package.json - 04
Create and clean up
Make a new folder, drop a file inside, then remove both.
mkdir -p scratch/notestouch scratch/notes/todo.mdrm -r scratch - 05
Copy and move
Duplicate a file under a new name, then rename it somewhere else.
cp projects/my-app/package.json backup.jsonmv backup.json archive.json - 06
Search the codebase
Hunt for TODO comments and find every TSX file in the project.
grep -rn TODO projects/my-appfind projects/my-app -name '*.tsx' - 07
Count lines
Use wc to see how big a file is in lines, words, and bytes.
wc -l projects/my-app/package.jsonwc projects/my-app/README.md - 08
Pipe and chain commands
Combine commands together to filter output — a core CLI superpower.
ls -la | grep tsxcat package.json | wc -l - 09
Work with git
Check repository status, browse history, and list branches.
git statusgit loggit branch - 10
Read the manual
Every real CLI user knows how to look things up. Open the manual for ls.
man lshelpwhich grep - 11
Recall past commands
Use history and the Up arrow to replay what you've already typed.
history↑ (arrow up) - 12
Inspect the environment
List environment variables, then set and read your own.
envexport GREETING=helloecho $GREETING
Navigate
cd <dir>ls -lapwdtreeFiles
cat <file>touch <file>mkdir -p <dir>rm <file>Search
grep -rn <pat> .find . -name '*'wc -l <file>Tools
git statusnpm run devman <cmd>history