Linux & Shell
Drive the machine from a prompt
A shell is not a worse window manager — it is a small language for pointing programs at files. This is the whole of the interactive half: resolving a path, setting a mode, sending each of the two output streams where you meant it, cutting a file down to an answer, and chaining commands on their verdicts.
- Modules
- 5
- Drills
- 1
- Build steps
- 5
- Time
- ~4h
Walk out able to
Answer a real question about a real file with one line you wrote yourself — and know which of the two streams the errors went down.
What you work on
Paths and expansion
Resolve any path; predict what a glob hands over.
Modes and who gets in
Read `ls -l` at a glance; set 754 without guessing.
Two streams and a pipe
Redirection, and why the order of 2>&1 decides it.
Text tools and control
grep, sed, awk; exit status, quoting, and jobs.
The pitch
What you practise, and what you leave with
One line, written from a specification rather than a walkthrough, that answers a question about a log you built — plus the number it printed.
You will practise
- Paths, globs, links and finding things
- Modes, chmod, and who may do what
- Redirection, pipes, grep, sed and awk
- Exit status, quoting and job control
Afterwards you can
- Resolve any path without writing it down
- Set a mode from memory, either direction
- Order 2>&1 correctly, and know why
- Compose four tools into one pipeline
Modules
5 modules, 28 items
Lessons explain one idea. Drills repeat it until it sticks. Build steps make something that exists afterwards.
- 1
Find your way around
~52 minTurn any path into the one place it names, and find a file you cannot see.
- LessonWhy drive a machine from a prompt4 min
- Build stepBuild a tree of your own to ruin6 min
- LessonRead a path to the one place it names9 min
- LessonWhy a relative path is a bug report7 min
- LessonLet the shell pick the files9 min
- LessonReach for find when a glob cannot6 min
- Build stepGive one file two names11 min
- 2
Read and set a mode
~47 minRead `ls -l` at a glance, and set a mode with chmod without guessing.
- LessonRead the ten characters at the front7 min
- LessonTranslate a mode, either direction10 min
- LessonDelete a file you cannot read9 min
- LessonChoose a mode from a requirement9 min
- Build stepMake a script runnable, then undo it12 min
- 3
Wire the two streams
~46 minSend each stream where you meant it, and know why the order of `2>&1` decides it.
- LessonTwo streams arriving on one screen8 min
- LessonWrite 2>&1 in the order you meant10 min
- LessonWhat travels down a pipe7 min
- LessonWork a pipeline out stage by stage9 min
- Build stepSplit the streams, then swap the order12 min
- 4
Cut the file down to the answer
~33 minPull the lines and the fields you need with grep, sed and awk.
- LessonSelect the lines you actually meant8 min
- LessonKnow which dialect you are in9 min
- LessonSubstitute, and print everything8 min
- LessonTake a column out of every line8 min
- 5
Make the shell obey
~1hChain commands on their verdicts, quote what you mean, and write the one-liner.
- LessonRead the verdict, not the message7 min
- LessonChain commands on their verdicts9 min
- LessonSay exactly what you meant9 min
- LessonWhat a program you start inherits7 min
- LessonPut a job aside and pick it up again12 min
- DrillFind the line that does not mean it8 min
- Build stepAnswer a question with one line18 min
A taste of the code
# notes.md is there; missing.md is not
ls notes.md missing.md > found.txt 2>&1$ cat found.txt
ls: cannot access 'missing.md': No such file or directory notes.md
More in DevOps & cloud
Keep going
Nginx & Proxies
The config is right. The request went somewhere else.
Advanced~4h6 modules
Linux: Processes & Systems
Stop guessing why it did not come back.
Intermediate~4h6 modules
Bash Scripting
The line you keep is a different thing from the line you type.
Intermediate~5h5 modules
Kubernetes: Objects
Stop guessing what the cluster will do next.
Intermediate~4h4 modules
The prompt stops being a place you guess.
The first item is free. ~4h of focused work, at your own pace.
Foundational~4h5 modules