Best Resources for Learning Linux and a Comprehensive Linux Cheat Sheet

Reza Bagheri
AI Advances
Published in
5 min readApr 11, 2024

--

Image by the Author

Linus Torvalds initially developed Linux in 1991 as an open-source operating system. Since it is under open-source license, everybody can access its source code. Linux supports high customization levels which enable users to customize the operating system based on their needs. The Linux architecture emphasizes stability which makes it a stable and reliable operating system, particularly in server environments. As a Unix-like operating system, Linux is more inherently secure than other types of operating systems because of its security features such as permission modes. Only a handful of other operating systems can offer the scalability that Linux does, ranging from tiny embedded systems and smartphones to desktop PCs and huge server clusters. Additionally, its versatility also makes it suitable for different devices and applications.

Despite being powerful and versatile, Linux is sometimes difficult to learn for new users. Linux is primarily used through the command line interface (CLI) and hence not friendly to those accustomed to graphical user interfaces (GUIs) such as Windows or macOS. Learning the command line requires familiarity with commands, syntax, and concepts such as file system navigation, permissions, and package management. There are multiple options, settings and configurations to be learned.

Though there are many resources to learn Linux, finding the best resources can be challenging for newcomers. In this article, I want to suggest some books that will help beginners learn Linux. In addition, I have prepared a detailed cheat sheet with the most important Linux commands.

Learning Linux Command Line

The Linux Command Line

This book is an introduction to using the Linux command line. Topics covered include file navigation, permissions, command chaining and regular expressions among others. The book is written in plain English making it an easy read for novices who have never used Linux before. Instead of bombarding the reader with so many commands and options, it rather only focuses on the most important commands and a few options for each. The book is divided into small chapters that make it easy to read.

Linux Pocket Guide: Essential Commands

Daniel Barret’s book, “Linux Pocket Guide: Essential Commands” is a useful reference book for learning Linux. As the name suggests, it only focuses on the essential commands making it an excellent resource for beginners. The narrative of this book is very clear and simple thereby making it easy for readers to follow through with. It explains the complex Linux concepts in an accessible manner. It is also a good reference book for more advanced users.

Practical Guide to Linux Commands, Editors, and Shell Programming

This book by Mark Sobell and Matthew Helmke can be used both as a tutorial and a reference. The fourth version contains almost 1200 pages and covers almost everything about Linux. It covers all the details and provides straightforward explanations. It covers everything from filesystems and editors to shell programming and regular expressions. This book also covers the macOS command line.

Learning Linux internals

Linux Inside

The online book Linux Inside by OxAX is a useful resource for learning about the Linux kernel and its insides. You can find it here: https://0xax.gitbooks.io/linux-insides/content/. It covers everything from the booting process and kernel initialization to interrupts and system calls. The reader is required to understand C and assembly code (AT&T syntax).

How Linux works

You can read this book to get familiar with the inner workings of the Linux operating system. It explores the Linux kernel and covers topics like how Linux boots and how the kernel manages devices, device drivers, and processes. It also explains the related Linux commands.

Linux system programming

Linux System Programming Techniques

Linux System Programming Techniques by Jack-Benny Persson throws light on how Linux system programming works. This book is useful for anyone who wants to develop system programs for Linux and obtain a better grasp of the Linux system.

In this book, you will learn about key subjects such as signals, pipelines, IPC, and process management, as well as how POSIX functions work. It also explores advanced topics such as filesystem operations and creating shared libraries. The reader needs to have a basic understanding of Linux and C programming.

Hands-On System Programming with Linux

This book by Kaiwan Billimoria covers a variety of topics such as Linux system architecture, process and memory management, signalling, timers, and multithreading. The reader should be familiar with the Linux command line and have a working knowledge of the C programming language.

A comprehensive Linux cheat sheet

As mentioned before, Linux is primarily used through the command line interface (CLI). Linux has hundreds of commands and lots of options for each one. However, most users only need to use a small number of those commands. Therefore, memorizing all of them would not be effective. Instead, you should acquaint yourself with some popular commands and various options involved in them.

I have created a comprehensive cheat sheet that breaks down some of the most useful Linux commands by category. The most useful options have been presented for each command and additionally, there are examples of how to use them. A few categories involve brief explanations about the underlying Linux concepts that should be understood before using the given commands. I, for instance, have elaborated on what the Linux permission bits mean before talking about permissions-related commands. Similarly, there is a simple explanation of concepts like the Linux filesystem, hierarchical directory structure, inodes and hard links, processes and jobs, shell sessions, and regular expression. Simplification was my goal while writing this text.

With 41 pages, this cheat sheet is likely the most comprehensive one ever made for Linux commands. Anyone who wishes to review or learn the most important commands in Linux might benefit from it. You can download this cheat sheet from here:

https://github.com/reza-bagheri/linux_cheat_sheet/blob/main/linux_cheat_sheet.pdf

--

--