By Eric Tomchik Β· Published by ArcLight Press Β· 59 Chapters Β· 519 Pages
This repository is the official companion to Linux: The Complete Reference β 2026 Edition. It provides working scripts, hands-on lab exercises, configuration examples, and errata for every chapter in the book.
# Clone the repository
git clone https://github.com/Eric-Tomchik/linux-complete-reference.git
cd linux-complete-reference
# Spin up the lab environment (requires Vagrant + VirtualBox)
cd labs/
vagrant up
# Or use Docker for lightweight labs
docker compose up -dlinux-complete-reference/
βββ README.md β You are here
βββ ERRATA.md β Known corrections (by edition)
βββ CONTRIBUTING.md β How to report issues & contribute
βββ chapters/
β βββ ch01-what-is-linux/
β β βββ scripts/ β Working scripts from the chapter
β β βββ configs/ β Example configuration files
β β βββ lab.md β Hands-on lab exercise
β βββ ch02-history-of-linux/
β βββ ... (all 59 chapters)
βββ labs/
β βββ Vagrantfile β Multi-VM lab environment
β βββ docker-compose.yml β Containerized labs
β βββ cloud-init/ β Cloud instance provisioning
βββ cheatsheets/ β Quick-reference guides
βββ quizzes/ β Interactive self-test scripts
| # | Chapter | Scripts | Lab |
|---|
| 1 | What Is Linux? | Scripts | Lab | | 2 | The History of Linux | Scripts | Lab | | 3 | Open Source Software and Licensing | Scripts | Lab |
| 4 | Choosing a Linux Distribution | Scripts | Lab | | 5 | Preparing for Installation | Scripts | Lab | | 6 | Ubuntu | Scripts | Lab | | 7 | Debian | Scripts | Lab | | 8 | Fedora | Scripts | Lab | | 9 | RHEL, AlmaLinux, and Rocky Linux | Scripts | Lab | | 10 | Arch Linux | Scripts | Lab | | 11 | openSUSE | Scripts | Lab | | 12 | Linux Mint | Scripts | Lab | | 13 | Manjaro | Scripts | Lab | | 14 | Kali Linux | Scripts | Lab | | 15 | Other Notable Distributions | Scripts | Lab | | 16 | Desktop Environments and Window Managers | Scripts | Lab |
| 17 | The Linux Kernel | Scripts | Lab | | 18 | The Linux Filesystem Hierarchy | Scripts | Lab | | 19 | The Command Line Interface | Scripts | Lab | | 20 | Essential Linux Commands | Scripts | Lab | | 21 | The Shell: Bash, Zsh, and Beyond | Scripts | Lab | | 22 | Text Editors: Vim, Nano, and Emacs | Scripts | Lab | | 23 | Users, Groups, and Permissions | Scripts | Lab | | 24 | Package Management | Scripts | Lab |
| 25 | Process Management | Scripts | Lab | | 26 | Systemd and the Boot Process | Scripts | Lab | | 27 | Advanced systemd Features | Scripts | Lab | | 28 | Storage Management and LVM | Scripts | Lab | | 29 | System Logging | Scripts | Lab | | 30 | Backup and Recovery | Scripts | Lab | | 31 | Linux Troubleshooting and Debugging | Scripts | Lab |
| 32 | Networking Fundamentals | Scripts | Lab | | 33 | Network Configuration | Scripts | Lab | | 34 | DNS and DHCP Services | Scripts | Lab | | 35 | SSH β Secure Shell | Scripts | Lab | | 36 | Firewalls and Network Security | Scripts | Lab | | 37 | File Sharing: NFS, Samba, and FTP | Scripts | Lab | | 38 | Directory Services and LDAP | Scripts | Lab |
| 39 | Authentication and PAM | Scripts | Lab | | 40 | Encryption and TLS | Scripts | Lab | | 41 | Linux Security Fundamentals | Scripts | Lab | | 42 | SELinux and AppArmor | Scripts | Lab | | 43 | System Hardening | Scripts | Lab | | 44 | Security Tools and Penetration Testing | Scripts | Lab |
| 45 | Virtualization | Scripts | Lab | | 46 | Containers and Docker | Scripts | Lab | | 47 | Kubernetes and Container Orchestration | Scripts | Lab | | 48 | Configuration Management | Scripts | Lab | | 49 | Kernel Tuning and Performance Optimization | Scripts | Lab | | 50 | Linux Observability and Performance Analysis | Scripts | Lab | | 51 | Shell Scripting | Scripts | Lab |
| 52 | Git Version Control | Scripts | Lab | | 53 | DevOps Practices and CI/CD on Linux | Scripts | Lab |
| 54 | Linux in the Cloud | Scripts | Lab | | 55 | Web Servers | Scripts | Lab | | 56 | Database Servers | Scripts | Lab | | 57 | Email Servers | Scripts | Lab | | 58 | High Availability and Load Balancing | Scripts | Lab | | 59 | Performance Monitoring and Troubleshooting | Scripts | Lab |
Requires Vagrant and VirtualBox.
cd labs/
vagrant up # Start all VMs
vagrant ssh node1 # Connect to node1
vagrant destroy -f # Clean upIncluded VMs:
| VM | OS | Purpose |
|---|---|---|
node1 |
Ubuntu 24.04 | Primary workstation β general labs |
node2 |
Rocky Linux 9 | RHEL-family labs, enterprise features |
node3 |
Debian 12 | Server labs, networking |
node4 |
Fedora 41 | Cutting-edge packages, Btrfs |
For chapters that don't require full VMs.
cd labs/
docker compose up -d
docker compose exec ubuntu bashUse the cloud-init configs to provision instances:
# AWS example
aws ec2 run-instances \
--image-id ami-0abcdef1234567890 \
--user-data file://labs/cloud-init/ubuntu-lab.ymlQuick-reference cards you can print or bookmark:
- Essential Commands
- Vim Quick Reference
- systemd & journalctl
- Networking Commands
- Docker & Kubernetes
- File Permissions
- Package Managers
- Filesystem Comparison
Found an error in the book? Check ERRATA.md first, then open an issue if it's not listed.
Contributions are welcome! See CONTRIBUTING.md for guidelines. You can:
- Report errors via Issues
- Submit script improvements via Pull Requests
- Suggest new lab exercises
- Share your own configuration examples
Scripts and configurations in this repository are licensed under the MIT License.
The book content (Linux: The Complete Reference β 2026 Edition) is Β© 2026 Eric Tomchik / ArcLight Press. All rights reserved.
Built with π§ by Eric Tomchik