cli
Command line
Start knowing only how to click. Finish able to navigate, search, and automate your system from a bare terminal prompt.
Start track → 01
The shell
A terminal is a window; a shell is the program inside it. Learn the prompt, type a command, and understand where you are in the filesystem. 02
Files and paths
Name any file two ways: absolute paths start at / and always work; relative paths start from where you are and are shorter. Create, copy, move, delete, and read files without a graphical file manager. 03
Streams and pipes
Every process has three standard streams (stdin, stdout, stderr). Redirection rewires them to files; pipes connect stdout of one command to stdin of the next. Master these and you can compose any text-processing pipeline. 04
Finding things
Globs expand in the shell before any command runs. find searches a directory tree by name, type, size, or age. grep searches file contents with patterns. which, type, and command -v reveal how the shell locates commands. 05
Permissions and users
Every Linux file carries nine permission bits for user, group, and other. chmod sets them; chown wires the right owner and group; sudo lets you act as root for one command without abandoning least-privilege discipline. 06
Text processing
cut extracts columns, sort | uniq -c | sort -rn builds frequency tables, sed rewrites streams in-place, and awk handles field arithmetic and per-key summaries — four composable tools that cover 90% of structured log analysis without scripting languages. 07
Processes and jobs
Every running program is a PID in a tree rooted at init. SIGTERM asks politely; SIGKILL cannot be caught and skips cleanup. Job control lets you suspend, background, and foreground work within a session — but nohup or disown is required to survive terminal closure. Load average and free -h tell you in seconds whether a machine is CPU-bound, I/O-bound, or memory-starved. 08
Shell scripting
Variables without quotes trigger word splitting and glob expansion — the root of most script bugs. Every command exits with a code; $? and [[ ]] let you branch on success or failure. set -euo pipefail turns bash into a fail-fast interpreter; trap guarantees cleanup on any exit. Functions with local variables are the unit of reuse. 09
SSH and remote work
ssh user@host opens an encrypted shell; TOFU and ~/.ssh/config make it safe and ergonomic. Key authentication keeps the private key on the client and puts only the public key on the server. rsync transfers only changed bytes and mirrors directories cleanly — but --delete erases without confirmation, so --dry-run is mandatory. tmux decouples your terminal from the SSH connection so long-running tasks survive disconnects. 10
Putting it together
Real CLI mastery means composing the individual tools into workflows: a find+grep+cut+sort+awk pipeline answers incident questions in seconds; a set -euo pipefail script with trap and functions automates maintenance safely; rsync+ssh+tmux ties deployment and long-running jobs into a disconnect-proof workflow.Build with this track
Guided projects that exercise what you learn here.
Linux, the operating system
You can drive the shell — now learn the system under it: how Linux boots, runs services, manages users and storage, and how to keep it alive when it breaks.