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.
William Shotts has been a software professional for more than 30 years and an avid Linux user for more than 20 years. He has an extensive background in software development, including technical support, quality assurance, and documentation. He is also the creator of LinuxCommand.org, a Linux education and advocacy site featuring news, reviews, and extensive support for using the Linux command line.
Table of contents
Part 1: 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 2: Configuration and the Environment
Chapter 11: The Environment
Chapter 12: A Gentle Introduction To vi
Chapter 13: Customizing The Prompt
Part 3: 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 4: 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
"This excellent Linux command line book is more than cubicle decoration, it's a secret superpower."
—Ken Hess, Red Hat.
"For those looking to master the Linux command line and get an essential understanding 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!
"Anyone who reads this book and makes use of the examples provided will not be able to avoid becoming a Unix command line pro by the time they've hit the end of the book. It provides an excellent introduction to the command line that takes students from knowing nearly nothing to using impressively sophisticated commands."
—Sandra Henry-Stocker, ITworld
"The most approachable tome on the subject."
—Federico Lucifredi, Linux Magazine
"If you would like to start using the command line, improve your existing skills, or simply want to discover tools that you were never even aware existed, this book has everything you need, and I wholly recommend it."
—Phil Bull, author of the official Ubuntu documentation
"This is the best introduction to the command-line I have read."
"A perfect companion to more remedial guides to Linux that touch on the command only briefly, and also a terrific bridge to deeper technical programming books. Highly recommended."
"The Linux Command Line is pleasant to read. It has a light tone, while also getting down to business."
—John D. Cook, The Endeavor
"A delightful read and you can hand it to a junior colleague or friend with more limited Unix shell exposure and be confident that they come back significantly shell-wiser and probably happier."
—Peter N.M. Hansteen, That Grumpy BSD Guy
"If you're a novice Linux player, or just want to get beyond the pretty graphical wrapper of your MacBook, put this book at the top of your list."
—Michael Larsen, TESTHEAD
"I give this book to all my interns on day one. I find this to be an incredibly indispensable resource for teaching not only the basics of the Linux command line, but also anybody looking to get into information security. It's wildly comprehensive without being overwhelming. It does a great job of introducing a basic command, showing you all of the options on how to use the command, and a lot of examples and practical stories to back them up."
—Matt Barnett, Chief Strategist and CoFounder, SEVN-X
"A great way to learn some tips on working with those HUGE log files that are critical to cyber defence."
—Mark Jeanmougin, @markjx01