Free, no signup, runs in your browser
Learn Linux commands by actually typing them.
A real shell in your browser, a course that checks every command you run, and examples you will actually use.
A live sandbox with its own files. Press Enter, then try help.
- Command guides
- 52
- Interactive lessons
- 60
- Printable cheat sheets
- 15
- Fixes & recipes
- 43
Command reference
Syntax, an options table, real-world examples and a terminal to practice in, for every command.
In-depth guides
Beginners: start here
The 15 commands that cover 90% of daily use, in learning order.
Permissions explained
rwxr-xr-x, 755 vs 644 and chown: the model behind the numbers.
Pipes & redirection
stdin, stdout, stderr and composing commands into pipelines.
Bash scripting
Variables, conditions, loops and exit codes. Your first automation.
Directory structure
What /etc, /var, /usr and /proc are for, and where to look when things break.
Cheat sheets worth printing
One A4 page per topic: the three commands you will use daily, the full sheet, and the mistakes to avoid.
Just need to get something done?
Task-shaped guides that open with the command and explain it afterwards.
- Check disk space in LinuxSee how much space is left, and find out what is using it.
- Extract a .tar.gz archiveUnpack tar.gz, tar.bz2, tar.xz and zip archives from the command line.
- Free a port that is already in useFind which process holds a port and stop it cleanly.
- Find and replace text in filesReplace text in one file or across a whole project, safely.
- Make a script executableGive a script permission to run, and understand why it needs it.
- Search text inside filesFind which files contain a word, and exactly where.
Something broken right now?
One page per error: what it means, the likely causes, and the fix for each.
- Permission denied (publickey)SSH rejected your login because no key you offered was accepted by the server.
- bash: command: command not foundThe shell searched every directory in your PATH and found no executable with that name.
- No such file or directoryThe path you gave does not resolve, but often the missing part is not the one you think.
- Permission deniedThe path resolves fine: the system simply will not let you do that with it.
- No space left on deviceA filesystem is full: confirm which one, and whether you ran out of bytes or inodes.
- bind: Address already in useSomething is already listening on the port your program wants.
Which tool should I use?
Side-by-side comparisons of tools people confuse, each ending in a verdict.
The Handbook, PDF, 269 pages
Take the whole reference offline
Every command, error fix, recipe and comparison, typeset as one bookmarked, printable book. Buying it funds new chapters.
Why learn the Linux command line?
The terminal is the common interface behind almost everything technical: servers, containers,
CI pipelines, cloud instances, embedded devices and your own development machine. Graphical
tools come and go, but ls, grep and chmod have worked
the same way for decades and will keep working for decades more. A few hours of deliberate
practice with the core commands pays off for an entire career.
The catch is that reading about commands doesn't build the muscle memory. Typing them does. That's the whole idea behind this site: every page gives you a safe sandbox where mistakes cost nothing, so you can experiment until each command feels automatic.