Book
The Linux Command Line: A Complete Introduction, 3rd Edition
What this book is
Shotts wrote the gentlest, most practical introduction to the Linux/Unix shell in print. The third edition (No Starch Press) walks an absolute beginner from "what's a terminal?" through navigating the filesystem, manipulating files, mastering text-processing tools, and writing real bash scripts — without ever assuming prior knowledge or skipping the basics.
It is a reference that earned its reputation by being honest about what newcomers struggle with. Each topic is short, hands-on, and immediately runnable. The book is structured as 36 numbered topics across four parts — start at the beginning if you're new; jump to any topic later as a lookup reference.
The shape of the book
Executive summary
The book makes three claims that change how you work, even if you've used Linux before.
The shell is a programming language, not a search box
Newcomers treat the terminal like a command-search interface — type a command, get output, move on. Shotts reframes the shell as a composable expression language: pipes connect tools, redirection captures output, command substitution feeds the result of one command into another. The same building blocks scale from "list files modified today" to a 200-line backup script.
Most "Linux problems" reduce to four things
Permissions, environment variables, PATH resolution, and text formatting account for nearly every confusing error a beginner hits. Topics 9 (Permissions), 11 (The Environment), 5 (Working with Commands), and 21 (Formatting Output) are the four things to deeply understand. Everything else is application.
Shell scripting is real programming with weird syntax
The fourth part doesn't apologise for bash. Top-down design, control flow, parameters, troubleshooting — the same engineering discipline you'd bring to Python, applied to a language whose idioms are 50 years old. The result is scripts that survive in production, not the 20-line shell hacks most engineers write.
Who this is for
Topic index
How to read these summaries
Treat them as a lookup reference, not a sequential read. The topics are heavily self-contained. If you already know what a pipe is, skip topic 6; if you don't, it's the most useful 10 minutes you'll spend.
Topics 1-10 build on each other if you're new. Topics 11-23 are mostly independent. Topics 24-36 build a single example script across the whole part — read them in order if you're going to write scripts.
Concept companions
Topics
- 01What Is the Shell?
- 02Navigation
- 03Exploring the System
- 04Manipulating Files and Directories
- 05Working with Commands
- 06Redirection
- 07Seeing The World As The Shell Sees It
- 08Advanced Keyboard Tricks
- 09Permissions
- 10Processes
- 11The Environment
- 12A Gentle Introduction To vi(m)
- 13Customizing The Prompt
- 14Package Management
- 15Storage Media
- 16Networking
- 17Searching For Files
- 18Archiving And Backup
- 19Regular Expressions
- 20Text Processing
- 21Formatting Output
- 22Printing
- 23Compiling Programs
- 24Writing Your First Script
- 25Starting A Project
- 26Top-Down Design
- 27Flow Control: Branching With If
- 28Reading Keyboard Input
- 29Flow Control: Looping With While/Until
- 30Troubleshooting
- 31Flow Control: Branching With Case
- 32Positional Parameters
- 33Flow Control: Looping With For
- 34Strings And Numbers
- 35Arrays
- 36Exotica