
The Linux Command Line, 3rd Edition
A Complete Introduction
William Shotts(Author)
No Starch Press
Published on 3. February 2026
Book
Paperback/Softback
504 pages
978-1-7185-0452-3 (ISBN)
Description
The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell (or command line). Along the way you'll learn the timeless skills handed down by generations of experienced, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more. In addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore. As you make your way through the book's short, easily-digestible chapters, you'll learn how to: Create and delete files, directories, and symlinks, Administer your system, including networking, package installation, and process management, Use standard input and output, redirection, and pipelines, Edit files with Vi, the world's most popular text editor, Write shell scripts to automate common or boring tasks, Slice and dice text files with cut, paste, grep, patch, and sed. Once you overcome your initial 'shell shock,' you'll find that the command line is a natural and expressive way to communicate with your computer. Just don't be surprised if your mouse starts to gather dust.
Reviews / Votes
"It trains you to think like the system thinks---not just run commands until something works."-LinuxSecurity.com
"Thorough and approachable. A great resource for those new to Linux and for seasoned Linux veterans wanting to dive deeper."
-Philip Polstra, PhD, author of Linux Forensics
Praise for The Linux Command Line, 2nd Edition:
"This excellent Linux command line book is more than cubicle decoration, it's a secret super power."
-Ken Hess, Red Hat
"For those looking to master the Linux command line and get an essential understand of the core Linux command line tools, this book is a highly effective and useful guide."-Ben Rothke, RSA Conference
"I can honestly say I have found THE beginner's guide to Linux."
-Jayson Broughton, Linux Journal
"This is exactly what a Linux beginner needs to get up to speed quickly. The book goes beyond simply walking through all of the command line utilities, and ventures into the realm of theory and how things work together."
-Nicholas C. Zakas, Yahoo!
"The most approachable tome on the subject."
-Federico Lucifredi, Linux Magazine
More details
Language
English
Place of publication
San Francisco
United States
Product notice
Paperback (trade)
Dimensions
Height: 233 mm
Width: 181 mm
Thickness: 35 mm
Weight
1004 gr
ISBN-13
978-1-7185-0452-3 (9781718504523)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
02/2026
No Starch Press
€6.49
Available for download
Person
William Shotts has been a software professional for more than 40 years and a dedicated Linux user and advocate since 1996. Over his career he's worked as a programmer, teacher, photographer, and technical manager leading teams in customer support, software quality assurance, system administration, and documentation. He is also the creator of Linux Command, a long-running site that helps users master the Linux command line.
Content
Acknowledgements
Introduction
Part I: Learning the Shell
Chapter 1: What Is the Shell?
Chapter 2: Navigation
Chapter 3: Exploring the System
Chapter 4: Manipulating Files and Directories
Chapter 5: Working with Commands
Chapter 6: Redirection
Chapter 7: Seeing the World as the Shell Sees It
Chapter 8: Advanced Keyboard Tricks
Chapter 9: Permissions
Chapter 10: Processes
Part II: Configuration and the Environment
Chapter 11: The Environment
Chapter 12: A Gentle Introduction to vi(m)
Chapter 13: Customizing the Prompt
Part III: Common Tasks and Essential Tools
Chapter 14: Package Management
Chapter 15: Storage Media
Chapter 16: Networking
Chapter 17: Searching for Files
Chapter 18: Archiving and Backup
Chapter 19: Regular Expressions
Chapter 20: Text Processing
Chapter 21: Formatting Output
Chapter 22: Printing
Chapter 23: Compiling Programs
Part IV: Writing Shell Scripts
Chapter 24: Writing Your First Script
Chapter 25: Starting a Project
Chapter 26: Top-Down Design
Chapter 27: Flow Control: Branching with if
Chapter 28: Reading Keyboard Input
Chapter 29: Flow Control: Looping with while/until
Chapter 30: Troubleshooting
Chapter 31: Flow Control: Branching with case
Chapter 32: Positional Parameters
Chapter 33: Flow Control: Looping with for
Chapter 34: Strings and Numbers
Chapter 35: Arrays
Chapter 36: Exotica
Index
Introduction
Part I: Learning the Shell
Chapter 1: What Is the Shell?
Chapter 2: Navigation
Chapter 3: Exploring the System
Chapter 4: Manipulating Files and Directories
Chapter 5: Working with Commands
Chapter 6: Redirection
Chapter 7: Seeing the World as the Shell Sees It
Chapter 8: Advanced Keyboard Tricks
Chapter 9: Permissions
Chapter 10: Processes
Part II: Configuration and the Environment
Chapter 11: The Environment
Chapter 12: A Gentle Introduction to vi(m)
Chapter 13: Customizing the Prompt
Part III: Common Tasks and Essential Tools
Chapter 14: Package Management
Chapter 15: Storage Media
Chapter 16: Networking
Chapter 17: Searching for Files
Chapter 18: Archiving and Backup
Chapter 19: Regular Expressions
Chapter 20: Text Processing
Chapter 21: Formatting Output
Chapter 22: Printing
Chapter 23: Compiling Programs
Part IV: Writing Shell Scripts
Chapter 24: Writing Your First Script
Chapter 25: Starting a Project
Chapter 26: Top-Down Design
Chapter 27: Flow Control: Branching with if
Chapter 28: Reading Keyboard Input
Chapter 29: Flow Control: Looping with while/until
Chapter 30: Troubleshooting
Chapter 31: Flow Control: Branching with case
Chapter 32: Positional Parameters
Chapter 33: Flow Control: Looping with for
Chapter 34: Strings and Numbers
Chapter 35: Arrays
Chapter 36: Exotica
Index