Stage 2 of 8 · 9 lessons · ~3 weeks
Shell basics
Move around, create and change files, and connect commands with pipes and redirection. Learn how the shell expands patterns, quotes text and finds programs through PATH.
Start: Paths and moving aroundLessons· one lesson for each topic, in this order
- 1Paths and moving aroundLesson
- 2Creating, copying, moving and deletingLesson
- 3Wildcards and quotingLesson
- 4Pipes: joining small toolsLesson
- 5Redirection and the three streamsLesson
- 6Environment variablesLesson
- 7PATH and "command not found"Lesson
- 8Startup files and aliasesLesson
- 9Editing files in the terminal: nano and VimLesson
Do this
- Navigate only with `cd`, `ls` and tab completion for a week of normal work.
- Create a project skeleton with one `mkdir -p` and brace expansion.
- Build a three-step pipeline and check the output after each step.
- Save a command's output and its errors to separate files, then to one file.
- Inspect your PATH, find where three tools live with `which`, and explain the order.
- Add two aliases and one export to your startup file and reload it.
- Complete `vimtutor` once, and edit a file with nano.
- Solve the first five levels of OverTheWire Bandit.
Start with· follow one of these
- CourseFreeThe Missing Semester of Your CS Education
MIT · Beginner
MIT's lectures on the shell and shell tools, with exercises after each one
- BookFreeThe Linux Command Line
William Shotts · Beginner
A free book that explains the shell step by step; the first part covers this whole stage
Practise
Keep handy
Also worth your time
- roadmap.sh: Shell / BashGo deeper
The full map of shell and Bash topics, to see what comes after the basics
Before moving on: A short log of 20 tasks you solved only in the terminal (creating a project skeleton, renaming files by pattern, saving a command's errors to a file, fixing a "command not found"), each with the command you used and what it did.

Stay in the terminal for a week, even when clicking would be faster. Speed comes from repetition, not from memorising lists of commands. When a command surprises you, stop and find out why; that is where the real learning is.