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.
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.
| 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 |
Compression and archiving are often conflated, but they are distinct:
gzip, bzip2, xz).tar).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 (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.
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:
$ command — run as a regular user# command — run as root (or with sudo)[placeholder] — replace with your actual valueMost 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).
gzip, xz) and archiving (tar) are separate operations usually combined.| Table of Contents | Chapter 1: SSH Keys → |