I have written about free Linux books in the past. That article has a good collection of Linux books that are available for free.
The saying goes that the best things in life are free. That might not be entirely true when it comes to books. There are many excellent Linux books that you may have to buy, but they are worth the money.
I will list some of my favorite Linux books that I own and have read to improve my understanding of various Linux-related topics. Some of them are generic, while some cover specific areas of Linux systems.
I have mentioned which book covers what topic so that it helps you in deciding whether you should get the book or not.
Recommended books to improve your Linux knowledge
Despite everything, these are my recommendations influenced by my opinion. Suppose I suggest that a Linux book is easy to understand. You got the book online and found it complicated instead. That will be a waste of money, won’t it?
How Linux Works
This is what I recommend if you want to learn and understand the core functioning of Linux. How Linux Works is the perfect book if you are absolutely new or if you want to improve your Linux knowledge.
The book is written in simple and easy-to-follow language. It starts with giving you the basic idea about Linux, kernel, shell, etc., and then goes on to explain the filesystem, hierarchy, etc. After covering the basics, the book goes into core Linux knowledge about how Linux kernel boots, user space starts, system logging, etc.
The book discusses resource utilization and network configuration before briefly touching on the shell scripting part.
You can download chapter 4 of the book about disks and filesystems for free. Read and see if the book is a good choice or not.
This is perhaps the most comprehensive Linux book that covers a wide variety of topics. Running over 800 pages, you get everything from learning the basics of Linux command line to advanced sysadmin topics.
Each chapter in the book ends with exercises to use your newly learned knowledge in a certain scenario. Answers are included at the end of the book.
If you are preparing to become a sysadmin, if you are preparing for a Linux certification exam or if you want to improve your Linux knowledge, Linux Bible will prove to be an essential resource.
Learn Linux Quickly
I got this book as a gift from its author Ahmed Alkabary. If you remember, Ahmed used to give his “Linux Command Line Basics” course for free to It’s FOSS readers until Udemy changed its policies on coupon code.
Unlike How Linux Works, this one doesn’t explain the functioning of Linux. It directly jumps into Linux command line.
The book reads like a collection of blog posts and in a good way. You’ll find the chapters and topics covered in “How to” style with plenty of command examples, explanation of the outputs and necessary schematic diagrams.
Each chapter ends with a knowledge check section where you are given a simple set of exercise to perform along with a set of true/false question set. This is a good way to test your newly acquired knowledge. The answers are included at the end of the book.
The language of book is conversational and easy to follow. If your aim is to learn Linux commands, this is a good book to have on your desk.
Linux for Developers
Linux for Developers is a small book with less than 200 pages. The book is intended for software developers, not Linux kernel developers.
If you are a software developer using Windows as your main workstation, this book is for you. In most organizations, the developers use Windows for their development tools but when it comes to deployment, the infrastructure exists on Linux machines.
As a software developer, you may not want to spend a lot of time wondering about how to configure network, mount disks etc. Not that it is not good to know, it’s just not essential to your main coding job.
Linux for Developers gives you a glimpse of Linux command line and shows only the absolutely essential Linux commands required by regular developers. You get to know about the filesystem, path navigation, understanding file permissions, essential commands for listing content, viewing files, finding text in files etc.
This book also discusses how to use common terminal based editors like Vim before moving on to tell you about software packaging (if you need to package your software on Linux).
There are also sections on various scripting language. So, you get the very basics of Bash, Perl and Python scripting. Book ends with a few chapters on using Git, managing files with Git and understanding the file differences with Git.
As I have worked as a software developer, I can relate to the author’s thinking of only providing what’s essential for most software developers. This lets the developers focus on their programming while knowing enough Linux command line to get their work done.
Linux Pocket Guide
As the name suggests, Linux Pocket Guide is a small, pocket book for quickly referencing the Linux commands and their functioning.
It doesn’t teach you how Linux works in detail. It is merely a collection of Linux commands. The commands are grouped in various sections, such as file viewing, navigating directories, user management, networking, etc.
There are quick and short examples of commands, syntaxes, and brief descriptions.
Linux Pocket Guide also has an alphabetical index at the end of the book. This lets you quickly see which command is mentioned on which page.
Consider it a huge Linux cheat sheet and an alternative to the manpages. Keeping it at your desk comes in handy and saves you from searching on the internet for command examples all the time.
Linux Hardening in Hostile Networks
Usually, books on advanced topics like Linux security are written in complicated technical language suitable for seasoned sysadmins. This book is slightly different. From a non-technical manager to seasoned DevOps/SecOps to CTO, this book is fine for every experience level.
Every chapter in this book has three sections. The first section gives a general, high-level overview of the security topic and easy-to-implement best practices that almost anyone can understand and follow.
The second section then take it to the next level with intermediate to advanced hardening steps for the sysadmins. Even if you don’t follow all of them step by step, you could still read them to better understand the topic.
The third section discusses advanced hardening tips that are complicated and consume time.
It starts with covering general security concepts, securing workstations, and hardening Linux servers and networks. It then moves on to discuss the hardening of essential (and often vulnerable) services like web servers, email, DNS and databases.
The book ends with a chapter on incident response. This gives you some practical advice on what to do when your server is compromised, how to investigate what happened, what the attackers did, how they did it and what to do to prevent such incidents in the future.
Remember, this is not really a cookbook. In fact, I used it as bedtime reading rather than a DIY manual.
The author Kyle Rankin right says today’s advanced threats tend to find their way into tomorrow’s script-kiddie toolkits. It is important to have a security mindset and this book gives you a good perspective on that.
UNIX and Linux System Administration Handbook
This book requires you to have a good idea about Linux and have knowledge of the Linux command line. In fact, it is more suitable for you if you are already working as a sysadmin.
Running over 1000 pages, this book covers advanced topics suitable for seasoned sysadmins. From core Linux sysadmin stuff to DevOps oriented topics, this book has it all.
Another advanced Linux book in this list. No prizes for guessing that this book is all about firewalls in Linux.
As a sysadmin or network engineer, if you want to secure your network or test for vulnerabilities, this is an excellent book to learn the core concept of firewalls.
Efficient Linux at the Command Line
The latest addition to my collection is the new book from the seasoned Linux writer Daniel J Barrett. He also wrote the Linux Pocket Guide book that I have mentioned earlier.
This book is different because it doesn't introduce you to Linux. It assumes that you already have Linux experience. And then it revisits those 'basics' that you thought you already knew and shares tips and tricks that you can only gain with years of practical experience.
For example, at one point, it mentions that while combining find and xargs, use
xargs -0 because this way, it can handle whitespace and other special characters in the filenames.
I like such small tips. It fills in the knowledge gap. Make you discover new tips. In other words, it boosts your command line skills.
What Linux books do you recommend?
I haven’t included excellent books like The Linux Command Line in this list. Not that it’s not a good book but because it is available for free and I have mentioned it in the list of free Linux eBooks.
There are numerous Linux books available. I have certainly not read all of them nor I’ll be able to read them all. It is possible that I have missed some of your favorite books.
Why not share your favorite Linux book in the comment section? I’ll add a section of reader recommendations based on your feedback.