Series

Learning Linux from Scratch

22 parts

1

Learning Linux from Scratch — After a Full IT Apprenticeship

I completed a 4-year IT apprenticeship and thought I knew Linux. A few weeks into college proved me wrong. This is why I am starting over from scratch.

May 2, 20262 min
2

What is Linux?

When you ask ChatGPT what Linux is, you get the exact answer. "Linux is a kernel". While this is technically true, it is also completely unhelpful for anyone trying to actually learn the OS.

May 2, 20264 min
3

The Filesystem

Before you open a terminal and start typing commands, it helps to understand what you are actually navigating. Linux has a specific folder structure that looks strange at first but follows a clear logic once you know what each folder is for.

May 2, 20264 min
4

Users and Permissions

If you came from Windows, you are probably used to being the administrator of your own machine by default. Linux works differently. Understanding how Linux handles users and permissions will save you a lot of confusion early on.

May 2, 20265 min
5

Installing and Managing Software

On Windows you download an installer from a website and run it. On Linux you almost never do that. Instead you use a package manager — and once you understand why, you will not want to go back.

May 2, 20263 min
6

Text Editors

At some point you will need to edit a file directly in the terminal. Knowing how to use a terminal text editor is not optional if you want to work with Linux seriously. This post covers nano and vim.

May 2, 20263 min
7

Shell Scripting Basics

Everything you have typed in the terminal so far has been a command you ran manually. Shell scripting is what happens when you stop running commands one at a time and start writing programs that run them for you.

May 2, 20263 min
8

Process Management

Every program running on your system is a process. Understanding how Linux manages processes — how to inspect them, control them, and kill them — is essential for anyone working with Linux seriously.

May 2, 20265 min
9

Networking Fundamentals

Networking on Linux is not abstract. Every interface, every connection, every DNS lookup is visible and controllable from the terminal. Once you know the tools, diagnosing network problems becomes straightforward.

May 2, 20265 min
10

SSH

SSH is how you connect to remote Linux machines. Understanding it properly — key-based auth, server hardening, tunneling — means you can use it securely and efficiently every day.

May 2, 20265 min
11

systemd and Services

systemd is the init system on most modern Linux distributions. It manages everything that runs on your system — services, timers, mounts and more. Understanding it is not optional for serious Linux work.

May 2, 20264 min
12

Disk Management

Disks on Linux are not plug and play. Understanding how partitions, filesystems, and mounting work gives you real control over your storage — and the knowledge to fix things when they go wrong.

May 2, 20265 min
13

Users and Groups — In Depth

The earlier permissions post covered the basics. This one goes deeper — how Linux stores user accounts in /etc/passwd and /etc/shadow, how to manage users properly, and how the sudoers file actually works.

May 2, 20264 min
14

Cron and Scheduled Tasks

cron is the classic Linux task scheduler. It runs commands on a schedule — every minute, every hour, every day, or any combination you define. Understanding the syntax and the gotchas makes it reliable.

May 2, 20264 min
15

Firewall — iptables and ufw

The Linux firewall is built into the kernel. iptables has been the tool to configure it for decades. ufw makes the common cases much simpler. This post covers how it all fits together.

May 2, 20264 min
16

Environment Variables and the Shell

Every time you open a terminal the shell sets up an environment — variables that control how it and every program you run behave. Understanding PATH, export, and shell startup files makes everything click into place.

May 2, 20264 min
17

Log Management

When something goes wrong on a Linux system, logs are where you find out why. Knowing where logs live, how to read and filter them efficiently, and how to stop them eating all your disk space is core sysadmin knowledge.

May 2, 20265 min
18

Kernel Module Management

The Linux kernel uses a modular system — most functionality loads as separate modules at runtime without rebooting. Understanding lsmod, modprobe, blacklisting, and module configuration gives you real control over what the kernel is doing.

May 2, 20265 min
19

The /proc Filesystem — In Depth

/proc is a virtual filesystem generated on the fly by the kernel. Nothing in it exists on disk. It gives you a live window into CPU info, memory state, process details, network state, and the kernel's own runtime configuration.

May 2, 20265 min
20

The /sys Filesystem and udev

/sys exposes the kernel's hardware device tree as a filesystem. Every device, driver binding, and hardware parameter is visible and writable. udev sits on top and automates responses to hardware events. Together they are the kernel's live hardware interface.

May 2, 20265 min
21

Kernel Parameters and sysctl

sysctl lets you read and modify hundreds of kernel parameters at runtime — memory management, network stack tuning, security hardening. Understanding what to change and why is what kernel tuning actually is.

May 2, 20265 min
22

Compiling and Installing a Custom Kernel

Compiling a custom kernel is the deepest level of Linux. This post covers the full process — getting the source, configuring with menuconfig, building, generating an initramfs, updating GRUB, and booting your own kernel.

May 2, 20266 min