open atlas

cli

Command line

Start knowing only how to click. Finish able to navigate, search, and automate your system from a bare terminal prompt.

10 units·36 lessons·~13 h

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.

Next track

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.