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