Introduction: The Linux Tool Landscape


Linux does not ship with a single, unified way to install software or manage your system. Over its history, it has accumulated multiple package formats, compression standards, and system utilities — each solving a real problem at the time it was created. The result is a powerful but occasionally bewildering ecosystem.

This chapter gives you a mental map of that ecosystem before you dive in.


Why So Many Package Formats?

Linux is not a single operating system — it is a family of distributions, each maintained independently. Debian and Ubuntu use .deb packages and apt. Fedora, RHEL, and their derivatives use .rpm packages and dnf. These systems evolved in parallel, solving the same problem (distributing software) in incompatible ways.

Later came sandboxed formats designed to work across distributions:

None of these replaced the others. As a Linux user today, you will encounter all of them.


The Landscape at a Glance

Format Extension Scope Root required? Notes
apt / deb .deb Debian, Ubuntu Yes System packages, deepest integration
dnf / rpm .rpm Fedora, RHEL, CentOS Yes System packages for Red Hat family
Snap (none) Any Linux Yes (install) Canonical-hosted, sandboxed
Flatpak (none) Any Linux Optional Flathub-centered, sandboxed
AppImage .AppImage Any Linux No Portable, no install needed

File Compression: Two Separate Concerns

Compression and archiving are often conflated, but they are distinct:

In practice, you usually do both: tar bundles files, then a compressor shrinks the result. This is why you see extensions like .tar.gz or .tar.bz2. The zip format is an exception — it archives and compresses in a single step.

Chapter 7 covers all of this in detail.


SSH: The Universal Remote Access Tool

SSH (Secure Shell) is how you connect to remote Linux machines, authenticate to GitHub and GitLab, and securely transfer files. Key-based authentication — using a cryptographic key pair instead of a password — is the standard for any serious workflow.

Chapter 1 covers everything from generating your first key to configuring host aliases for multiple servers.


How to Use This Book

Each chapter is self-contained. If you already know apt and just need a refresher on tar, skip straight to Chapter 7. If you are setting up a fresh machine, work through the chapters in order and finish with the action plan in Chapter 10.

Commands in this book follow these conventions:


Assumed Environment

Most examples were written for Ubuntu 22.04 LTS or newer. They will work on any Debian-based system. Where Fedora or RHEL behavior differs, a note is included. For Arch-based systems, the concepts are the same but the commands differ (use pacman).


Key Takeaways


Table of Contents Chapter 1: SSH Keys →