When I first started learning about Linux and Unix, we didn’t have YouTube tutorials. We didn’t have hundreds of hints sites, or StackOverflow’s kindred. We had manual pages. We had HOWTOs and RFCs. We had a lot of text files.
And they were good!
The other thing we had, that emerged from the community discourse, was a sense of what made Unix and Linux what it is. How it fit together. The Unix way of doing things. Its uniting philosophy.
We knew that our tools should each do one thing and do it well. We knew all our “small, sharp tools” should work together with a common interface. We knew that we could build big, complex things out of a lot of small, simpler things. We knew we’d understand them best if we tried things for ourselves and saw how they worked.
And that attitude is what I love about the Best Linux Book: Unix and Linux System Administration Handbook.
What’s in this “best” book?
Sure, there are a lot of good books on Unix and Linux. The primal Unix Programming Environment by Kernighan and Pike. Excellent references from O’Reilly and NoStarch.
ULSAH is my favorite due to its combination of breadth, hands-on examples, wry style, and culture.
Breadth? Take a good look at the 5th edition’s Table of Contents! Administration, Networking, Storage, Operations! 1180 pages, all of it on topic and interesting. Yes, at times it just brushes up against topics that need more detail. But you can count on it to being to answer your questions, and to send you to the right place to follow up. It gives you specific examples you can try. (Create a RAID with this specific command. Use ssh-copy-id instead of doing it by hand. Adapt this Ansible operation.) It sends you to the command line.
But it doesn’t just drop you there! Each section connects the tools with their goals, places them in historical context, and shows them through the lens of the Unix philosophy. Here’s something we sysadmins do! Here are some hows, and here are some whys, and here are some opinions. Here’s some humor—a basic survival requirement for system administrators.
“Daddy, what’s a sysadmin?”
Reading this book feels to me like working on a series of projects with an amazing mentor. One who has the big picture, but wants to let me get in there and do things myself. As I read, though, I find myself wondering if I’m being drawn in by nostalgia.
Tech is famous for its relentless pace. And this book does a great job of organizing all the many threads, twists, and cul-de-sacs tech sends us down. It’s in its 5th edition (2017), with the 1st edition published in 1989.
And honestly, it’s hard not to feel like a million things about infrastructure and computing have changed since 2017, let alone the late 80s. This book is extremely useful in understanding and operating the pieces that make up Linux, and thus make up most of today’s computing world. It doesn’t ignore containers or the cloud.
But there’s a “starlight on the rails” element here, too. My tech career has been more Dev than Ops. But I’ve always cherished the image of the wise sysadmin, caring for and nurturing the rich garden soil in which all software labors take root and thrive. Is that image sentimental? Do I hear the laughs of Cloud Engineers whose work is all about Infrastructure as Code, configuring large deployments with Terraform, never needing to come down to the level of a shell?
But Is their approach so bad? Isn’t the Unix way about finding useful levels of abstraction and fitting pieces together?
I love this book, and it’s made me far better informed and more capable with Linux. But it also leaves me pining, wondering if I’m dreaming of a bygone era.