TEC-WEB46-06 · Lesson 1 · 10 clock hours · theory
Linux Landscape: History, Distributions, and the Shell
Objective. Students will explain the role of the Linux kernel, common distributions, and the purpose of the shell in a web development context.
⚠ Pending professional review
This lesson, its worked examples and its practice questions has not yet been verified by an industry-certified professional or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.
VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.
The Linux Kernel: The Core of the Operating System
Linux began in 1991 when Linus Torvalds, a Finnish computer science student, released the first version of a free, Unix-like kernel. A kernel is the lowest layer of an operating system. It manages hardware resources — the CPU, memory, storage, and network interfaces — and provides a controlled interface so that programs can use those resources without directly touching the hardware. Every Android phone, most web servers, and a large share of cloud infrastructure runs on the Linux kernel today.
The kernel alone is not a usable system. You cannot sit down at a bare kernel and write a Python script. That is why distributions exist.
Distributions: The Full Package
A Linux distribution (distro) bundles the kernel with a set of software: a bootloader, system libraries, package manager, command-line utilities, and often a graphical desktop. The same kernel version can appear in many different distributions, each making different choices about default software, release schedules, and intended audience.
Four distributions appear most often in professional web and software development work:
- Ubuntu 22.04 LTS — Sponsored by Canonical. "LTS" stands for Long-Term Support; Canonical commits to security updates for five years. Ubuntu is the most common choice for developer laptops and cloud virtual machines because of its large community, extensive documentation, and the `apt` package manager. Ubuntu 22.04 is the version you will use in this course.
- Debian — The upstream source from which Ubuntu was derived. Debian is known for extreme stability and a conservative release cycle. Many web servers run Debian because updates are tested thoroughly before release. It also uses `apt`.
- CentOS Stream — A community distribution that tracks just ahead of Red Hat Enterprise Linux (RHEL). It uses the `dnf` (and historically `yum`) package manager. CentOS Stream is common in enterprise environments and on servers where organizations want RHEL compatibility without a paid subscription.
- Fedora — Sponsored by Red Hat. Fedora receives new features quickly and often previews technology that later appears in RHEL. Developers who want a cutting-edge but stable desktop environment frequently choose Fedora. It also uses `dnf`.
Choosing a distro depends on context: Ubuntu and Debian suit most web development and server work; CentOS Stream or RHEL-compatible systems are common in large enterprise data centers; Fedora suits developers who need recent tooling on a desktop.
The Desktop Environment vs. the Kernel
Between the kernel and the user sits a desktop environment (DE) — software such as GNOME, KDE Plasma, or Xfce that draws windows, handles mouse input, and provides a file manager. Desktop environments are entirely optional. Production web servers almost always run headless (no graphical interface) to save memory and reduce the attack surface. You administer them entirely through the shell.
The Shell: Your Primary Tool
A shell is a program that reads commands you type, interprets them, and passes instructions to the kernel. When you open a terminal window on Ubuntu, you are running a shell. The most common shell in Linux today is Bash (Bourne Again SHell). Other shells include Zsh (the macOS default since Catalina), Fish, and the original sh (POSIX shell). CompTIA Linux+ tests knowledge of Bash and sh scripting.
In a web development context, the shell is essential for:
- Starting and stopping web servers (Apache, Nginx, Node.js processes)
- Managing files and permissions on the server
- Running Git commands and deployment scripts
- Installing packages and dependencies
- Automating repetitive tasks with Bash scripts
Understanding which shell is active matters because syntax differs between Bash and sh. The command `echo $SHELL` prints the path of your current shell. The file `/etc/shells` lists every shell installed on the system.
Identifying Your System: Key Commands
Three methods let you confirm exactly which kernel and distribution you are running — information you will need when reading documentation, filing bug reports, or configuring software:
1. `uname -r` — Prints the running kernel release version (for example, `5.15.0-91-generic`).
2. `lsb_release -a` — Prints distribution information including the distributor ID, description, release number, and codename. Requires the `lsb-release` package, which Ubuntu installs by default.
3. `cat /etc/os-release` — Reads a plain-text file that all modern systemd-based distributions include. It contains standardized fields such as `NAME`, `VERSION_ID`, and `PRETTY_NAME`. This method works even when `lsb_release` is not installed.
Safety and Professional Responsibility
Linux commands operate with precision — a mistyped command can delete files or change permissions across an entire server. Two professional habits protect you and your team:
- Work in a virtual machine or non-production environment while learning. This course uses VirtualBox VMs for exactly this reason. Never run experimental commands directly on a live production server.
- Read before you execute. When a guide tells you to run a command you do not fully understand, look up each option in the manual (`man <command>`) before pressing Enter. This is the Linux equivalent of "measure twice, cut once."
These habits carry directly into the Linux+ exam objectives, which test your ability to explain what commands do — not just memorize syntax.
Key terms9
KernelThe core component of an operating system that manages hardware resources and provides services to all other software running on the system.
Linux distribution (distro)A complete operating system package that combines the Linux kernel with a package manager, system libraries, utilities, and optionally a desktop environment.
ShellA command-line interpreter that accepts user input, interprets it, and passes instructions to the operating system kernel; Bash is the most common Linux shell.
BashBourne Again SHell — the default interactive shell on most Linux distributions and the primary scripting language tested by CompTIA Linux+.
Long-Term Support (LTS)A release designation used by Ubuntu (and others) indicating that the vendor commits to providing security and maintenance updates for an extended period, typically five years.
Desktop environmentOptional graphical software layer (such as GNOME or KDE) that provides windows, icons, and mouse-driven interaction; absent on most headless servers.
Package managerA tool that automates the installation, update, and removal of software packages; Ubuntu and Debian use apt, while Fedora and CentOS Stream use dnf.
unameA Linux command that prints system information; the -r flag displays the current kernel release version string.
/etc/os-releaseA standardized plain-text configuration file present on modern Linux systems that contains distribution name, version, and other identification fields.
In class: Guided reading of the Linux Foundation's 'Introduction to Linux' chapter on kernel vs. distribution vs. desktop environment; students annotate a comparison table of Ubuntu, Debian, CentOS Stream, and Fedora. · Instructor-led demo: boot a VirtualBox Ubuntu 22.04 LTS VM, identify version with 'uname -r' and 'lsb_release -a', then locate the same information in /etc/os-release. · Small-group discussion: map each distro to a real-world use case (web server, desktop dev, embedded); groups present a one-slide summary and field questions.
Materials: VirtualBox 7.x, Ubuntu 22.04 LTS ISO, CompTIA Linux+ Study Guide (Sybex), projector, student VMs
Check: Exit ticket: students answer five short-answer questions identifying kernel version commands, distro differences, and shell types; 80% correct to pass.
Practice check8
Answer each question, then check it. Nothing is recorded; this is your own practice.
Record this lesson on my transcript. Sign in with your key and enrollment email to record lessons (enroll free if you have no key). This page stays open to read and practise.