Linux & Shell Fundamentals
Linux and Shell Fundamentals
Linux user-space fundamentals and safe, automation-oriented Bash scripting: the filesystem, pipes and redirection, text processing, processes and permissions, defensive scripting, and CI/cron execution.
Who it's for
Developers who want real command-line literacy for testing, automation, CI, and backend workflows — Linux user-space fundamentals and safe shell scripting, not a system-administration certification course.
What you'll be able to do
- Navigate and safely manipulate files using Linux's single, rooted filesystem model
- Use globbing, quoting, expansion, pipes, and redirection correctly, and read exit codes
- Process text with grep, sed, awk, sort, uniq, cut, and related utilities
- Manage environment variables, PATH, processes, signals, and file permissions
- Write defensive Bash scripts using set -euo pipefail, safe temp files, cleanup traps, and useful logging
- Explain why unattended execution (cron, CI) differs from interactive use, and design scripts with distinct, meaningful exit codes
Not started — 14 lessons, no account required.
Start this coursePractice this course →Add to a study plan →Interview questions →
Filesystem and shell basics
Navigation and safe file manipulation, then globbing/quoting/expansion and I/O redirection.
- 18 min
The Linux Filesystem Model and Navigation
The single-rooted tree every Linux path describes, absolute versus relative paths, and the core commands for looking around and changing things safely.
- 19 min
Globbing, Quoting, and Expansion
How the shell rewrites what you typed before a command ever sees it — pattern matching, variable substitution, and the quoting rules that control exactly when that rewriting happens.
- 19 min
Standard Streams, Pipes, Redirection, and Exit Codes
The three data streams every command has by default, redirecting them to files, chaining commands with pipes, and the exit-code convention that lets one command react to another's success or failure.
Text processing
grep/sed/awk foundations, then sort/uniq/cut/head/tail/wc and archives.
- 20 min
Text Search and Transformation: grep, sed, and awk Foundations
Finding lines that match a pattern, and the two workhorse tools for transforming text at the line and field level — enough to be genuinely useful, not a complete reference.
- 19 min
sort, uniq, cut, head/tail, wc, and Archives
Six small, single-purpose utilities that combine into real, useful pipelines — plus tar's real relationship to compression, a genuinely common point of confusion.
Environment and processes
Environment variables and PATH, then processes, signals, and permissions.
- 19 min
Environment Variables, PATH, and Executable Files
The variables every process inherits, PATH's role in turning a bare command name into a real program, and what actually makes a file executable in the first place.
- 20 min
Processes, Signals, and Permissions
Inspecting and stopping running programs, the difference between asking a process to stop and forcing it, and the rwx permission model that governs who can do what to a file.
Shell scripting
Positional parameters, conditionals, loops, and functions, then defensive scripting.
- 21 min
Shell Scripting: Parameters, Conditions, Loops, and Functions
Turning a sequence of commands you'd type by hand into a real, reusable script — parameters, conditionals, loops, and functions, the same building blocks as any programming language, applied to shell.
- 21 min
Defensive Scripting: set -e, set -u, and pipefail
Three options that make a script fail loudly and immediately instead of silently continuing after something goes wrong — and the real, specific limitations of set -e worth knowing precisely.
Robust, portable scripts
Temp files, cleanup traps, and logging; ShellCheck and portability; cron/CI execution.
- 19 min
Temp Files, Cleanup Traps, and Logging
Creating scratch files safely with mktemp, guaranteeing cleanup even when a script fails partway through using trap, and writing logs that are actually useful for later debugging.
- 18 min
Catching Bugs Early: ShellCheck and Portability
How a static analyzer catches real shell scripting bugs before a script ever runs, and the specific portability traps that make a script behave differently across sh, bash, and different operating systems.
- 20 min
Running Scripts Unattended: cron and CI Execution
Why a script that works perfectly in an interactive terminal can behave differently when run unattended by cron or a CI pipeline, and how to write scripts that produce genuinely useful, actionable exit codes.
Networking and safety
curl fundamentals, then secrets, command-history, and destructive-command safety.
- 19 min
Networking Inspection and curl Fundamentals
Reading curl's output and exit codes to distinguish a network failure from an HTTP-level failure, and the core flags for making requests, following redirects, and inspecting responses from the command line.
- 20 min
Secrets, Command History, and Destructive-Command Safety
Why a password typed directly on the command line is a real secret-leak risk, how shell history quietly persists commands you've run, and habits that make a genuinely destructive command safer to author and run.