Preface
Many software engineers are new to Unix-like systems, even though these systems are everywhere in the software engineering world. Whether developers know it or not, they’re expected to work with Unix-like systems running in their work environment (macOS), their software development process (Docker containers), their build and automation tooling (CI and GitHub), their production environments (Linux servers and containers), and more.
Being skilled with the Linux command line can help software developers go beyond what’s expected of them, allowing them to:
- Save time by knowing when to use built-in Unix tools, instead of writing thousand-line scripts or helper programs
- Help debug complex production outages, often involving Linux servers and their interface to the application
- Mentor junior engineers
- Have a more complete understanding of how the software they write fits into the larger ecosystem and tech stack
We hope that the theory, examples, and projects included in this book can take your Linux development skills to the next level.