In this article, we have reviewed some great Linux books to help you narrow your search. Some of these books are intended for experts, while others provide introductions to Linux. So regardless of your skill level, this review can help you select your next read.
About the Author: Brian Ward is a software architect, writer, instructor, and consultant. He is currently working as a technical lead at a private firm in Gaithersburg, Maryland. He has been working with Linux since the early 1990s, and he holds a Ph.D. in computer science from the University of Chicago. He has also authored The Linux Problem Solver, Linux Kernel-HOWTO, and The Book of VMware.
Review: Beginners who want to learn about the internal workings of the Linux operating system (OS) will not find a better book. Period. The author provides a thorough and intuitive explanation of the (often overlooked) workings of the operating system. How Linux Works makes the concepts behind the Linux OS accessible to everyone. By reading the book, you will gain an understanding of the hard-earned insights that usually come from years of experience.
This book explain how Linux boots, from boot loaders to init implementation; how the kernel manages various devices, drivers, and processes, how networks, interfaces, firewalls, and servers work, How development tools work and relate to shared libraries, and how to write shell scripts. The book also explores the kernel and key system tasks inside the user space, including system IO calls and file systems. With its masterful combination of background knowledge, theoretical information, real-world scenarios, and pertinent explanations, How Linux Works teaches you everything you need to solve pesky problems and take control of your OS.
Above all, if you have an interest in computers, this book is fun to read. The author packs each of the 350+ pages with detailed knowledge and intuitive examples, so whether you want to study every sentence or read casually, you will still get a great overview of the relationship between the kernel and the user interface. Professionals would surely find this book to be delightful, but we believe this book is more beneficial for beginners.
Buy How Linux Works: Amazon
Audience: Beginners and Advanced Beginners
About the Author: Ahmed, a techie and programmer since his high school years, is now an accomplished professional Linux System Administrator working for IBM in Canada. In addition to his full time system administration duties, Ahmed is a successful training with well over 100,000 students learning from Ahmed on the Udemy platform. In 2020, Ahmed won the LiFT Sysadmin Super Star Award. In addition to Linux Ahmed is certified and has expertise in Cisco Routers and Cloud Platforms such as AWS and Azure. See interview with Ahmed here.
Review: This books is meant to be a fun journey from your initial exposure to linux to having a strong foundation as a user of Linux for daily desktop usage, for server administration and or for programming development. The author has made a point to have fun and encourage play as a form of learning while you are introduced to the concepts.
Contents start by installing Linux in a virtual machine to ensure the reader has an environment to use linux for their learning even if they want to start with a Windows or MacOS and use a virtual machine to install linux for the first time. Once the environment is installed, the learner moves on to navigating and understand the linux filesystem, using standard editors to edit files. Remember in Linux, everything is a file! You learn how to navigate the in-built help system and manual pages so you are never lost in Linux. User management, package management and network management are all important for future system admins, as well as the upkeep of your own Linux Desktop. Bash scripting is taught, as well as crontab so you can automate your environment. Security and more.
This a fun book that provides a holistic treatment of the linux environment and teaches you how to take care of your linux system for yourself and others. After reading this book fully you will have a clear understanding of Linux and the life of a system administrator.
Buy Learn Linux Quickly, A Friendly Guide to Easily Master the World’s Most Powerful Operating System: Amazon
Linux Administration: The Linux Operating System and Command Line Guide for Linux Administrators by Jason Cannon
Audience: Beginners and Experts
About the Author: Jason Cannon is a UNIX and Linux system engineer. He has authored several books on Linux (most notably Command Line Kung Fu and Linux Administration). He is the founder of the Linux Training Academy and an independent consultant for small businesses, and he has instructed over 40,000 students through his online and offline courses. In addition, he has worked with companies such as Hewlett-Packard, Xerox, UPS, and Amazon, among others.
Review: Are you looking to supercharge a career in Linux administration? Then Linux Administration by Jason Cannon is a great first step. The author writes about the concepts that are most important for system administration in a straightforward manner. There is no fluff. The book is highly informative but easy to follow.
This book is a great introduction to Linux distributions in a command-line interface. It covers the fundamental concepts of server-side administration and provides amazing tricks and tips. Whether you are an expert Windows admin making a switch to Linux or a Linux user who is considering Linux administration, there is plenty to unpack here.
The book does not focus on any specific Linux distribution. Instead, it discusses the basic files, GNU core utilities, and shell and text manipulation tools of Linux systems in general. In addition, Linux server boot processes, message types, disk management, user and group management, file permissions, networking concepts, editors, functions, processes, Linux commands, and shell scripting are also discussed.
Buy Linux Administration by Jason Cannon: Amazon
About the Author: William Shotts is a retired computer and software professional. His background in software development includes tech support, quality assurance, and technical documentation. He is also the founder of LinuxCommand.org, a Linux education and advocacy website that presents news and reviews, and he is a strong proponent of the Linux command line.
Review: The Linux Command Line takes you from hitting your first terminal keystroke to writing entire programs in Bash, the most popular Linux command line language, so that you can manage your OS and get things done.
This book also include great “playground” lessons. In these lessons, you can create dummy files and folders and perform various operations on them. For instance, in one lesson, you use “touch” to create ten folders with a hundred files in each, by writing only one short line of code, while in another, you use “grep” and “ls” to identify all programs that match a pattern.
The Linux Command Line has over 500 pages, with 36 chapters, each of which covers a specific topic. The first ten chapters describe how Linux OS works (including permissions, processes, and environment), and the use of shell in general to navigate the file tree, manipulate files and folders, etc. Next, networking, searching, archiving, package managers, storage, regular expressions, text formatting, and printing are covered. The final part introduces shell scripting and works well as a basic programming tutorial.
The text is approachable and teaches many handy command line tricks without being tied to a specific Linux distribution. The text is accessible and oftentimes funny, which makes for an enjoyable read. This book includes a lot of useful content, for both built-in programs and custom shell script programs.
Buy Linux Command Line by William Shotts: Amazon
Audience: Beginners and Experts
About the Author: Daniel J. Barrett is a technical writer, software engineer, Linux system administrator, and musician. He has written multiple books on technology and computing, which primarily focus on various aspects of Linux. His works have been translated into Mandarin, Polish, French, German, Russian, and Spanish, among other languages. He has also published six research papers on related topics. He is currently working as a software engineer.
Review: The Linux Pocket Guide covers the basic Linux commands you will need for most day-to-day tasks and can act as a guide to command syntax . The latest edition features new commands for processing images and audio files, running and terminating programs, writing, reading, and rewriting the system clipboard, and manipulating PDF files, and it includes topics such as network connections, file system and shell, programming with shell scripts, file creation and editing, remote storage, viewing and controlling processes, account management, and software installation. It also lists lesser-known but powerful command-line idioms, like process substitution and Bash piping.
The Linux Pocket Guide sets a path that you can follow to master essential Linux commands. It is an excellent on-the-job reference book for both professionals and beginners, and it is easier to read than man-pages while providing a similar depth. Furthermore, the commands are grouped in a logical manner, which makes them easy to find. Whether you are a novice who wants to get up to speed on Linux or an experienced professional who needs a functional reference, this little guide is here to help.
Buy Linux Pocket Guide: Amazon
About the Author: Michael Kerrisk is a programmer, teacher, trainer, and writer from New Zealand. Since 2004, he has been maintaining the Linux manual pages (man-pages) project. He has worked for The Linux Foundation, Digital Equipment, and Google. As part of the man-pages project, he has worked to author, improve, and maintain approximately one third of the resource. He was awarded the New Zealand Open Source Award in 2016.
Review: One of the advanced books on this list, it is has become a classic work in the Linux world. If you write assembly code, then you know how cryptic the man-pages for system calls (syscalls) can be, especially if you are using complicated syscalls that use data structures as arguments. For such syscalls, even search results fail to provide any proofs of concept (PoCs). In these cases, The Linux Programming Interface serves as a reference book—and a great one at that.
In this book, the author provides comprehensive descriptions of the various library functions and syscalls needed to master system programming. His explanations are provided alongside concise example programs, and more than 500 library functions and system calls are described. In addition, more than 200 example programs, 115 diagrams, and 88 tables are provided to clarify the material.
By reading this book, you will learn how to read and write files; write and execute both secure and multithreaded programs; use signals, clocks, and timers; create processes; perform inter-process communication using pipes, shared memory, message queues, and semaphores; and write network apps with a socket API.
While the book covers a range of Linux features, including inotify, epoll, inotify, and the newer /proc file system, its emphasis on UNIX makes it equally valuable for UNIX professionals. Overall, The Linux Programming Interface is the most comprehensive and thorough single-volume handbook on the Linux and UNIX programming interface to date.
Buy Linux Programming Interface: Amazon
Interview with Ahmed Alkabary, author of Learn Linux Quickly
Linux Hint: Why do you prefer Linux to Windows or MacOS?
Ahmed: I cherish the freedom of Linux, that I am not tied to a restraining ecosystem of Windows and MacOS systems. For example, if you have a 5 years old Macbook, you will not be receiving any OS upgrades which totally doesn’t make sense to me. I do like that MacOS is based on Unix (BSD to be exact) but still, Apple is worried too much about making profit than anything else! I also like that Linux is open source, I can view the source code, compile my own custom kernel, and do what I really want. This is absolutely not true when it comes to either Windows or MacOS systems. One thing I am pretty upset about is that I can’t play my favorite AAA title games on Linux. I blame Nvidia!
Linux Hint: How old were you when you tried Linux first?
Ahmed: I first tried Linux in 2010 when I was 17 years old. It was a pure coincidence; I went to a nearby computer shop to buy a new laptop as I have just finished high school and was preparing myself to start my degree in Computer Science. The only laptop I liked at the time was an HP laptop, it had decent specs but there was a catch! It had Linux OpenSUSE preinstalled on it! I was pretty upset as I was just wanting to get a regular Windows laptop as this was the only thing I have used up until this point. The sales guy convinced me to buy the laptop and just install Windows on it! I agreed, so I took the laptop and I went to the balcony and I booted the laptop! It took a few seconds then I saw the login screen, I was astonished, as I was used to Windows taking much longer to boot. I was curious to know more so I started dabbling with Linux a bit more and guess what … I never installed Windows on that laptop and it was a turning point in my life ever since.
Linux Hint: What text editor do you use?
Ahmed: VIM is definitely my favorite text editor because it has all the functionalities I want that is lacking on a simpler editor like nano for example. I do use emacs every now and then as well but not as much as VI/VIM.
Do you do any scripting or programming? What languages do you use?
Ahmed: I do sometimes like to dabble with the Linux kernel internals especially with Cgroups and so I use C and C++. I also do use python and perl quite a long to automate some tasks on Linux as well. Lately, I have picked up C# as I am spending a lot of my free time learning game development with Unity! It is slowly becoming my new hobby next to skateboarding.
What is the most important advice you would give to a future linux professional?
Ahmed: My number one advice will be to have fun! If you don’t enjoy what you are doing then simply don’t do it! Part of having fun is to go outside of your comfort zone, try out different Linux distros, don’t get too comfortable too fast! Try to break a Linux system and then try to fix it. Try to understand Linux internals, compile your own custom Linux kernel, do the LFS (Linux From Scratch) project, I suggest you join kernelnewbies mailing list as well.
What are you most excited about in the future when it comes to technology?
Ahmed: I am very interested in the future of VR. I feel like VR will become an essential part of many different businesses in the very near future. Especially since the pandemic started, I feel like the need of VR applications is growing very widely. Maybe one day, university classes will be basically a VR application! who knows? I am also interested in the future of Gamification which is kind of related to VR in a sense.
In this article, we focused on beginner-friendly books from which experts can also benefit, like the Linux Pocket Guide and Linux Administration, and we believe these books are great resources to use to dive into the world of Linux. There are thousands of resources out there on linux; so we hope this curated list of books will get you started in the right direction, just pick one and go for it.