What Is Linux

Introduction

Linux powers most of the world’s servers, cloud virtual machines, and CI runners. As a developer, you will deploy Java, Node, and database services on Linux even if you code on Windows or macOS. This chapter explains what “Linux” actually means, how distributions differ, and how to pick a learning path that matches this tutorial—command-line skills on Ubuntu LTS, not desktop customization.

Prerequisites

  • No prior Linux experience required
  • Willingness to use a terminal (local, SSH, or WSL2)
  • Optional: you may already use Java on Linux or Node on Linux—this track explains the OS underneath

Linux Is More Than an Operating System

People say “Linux” loosely, but three pieces matter:

PieceWhat it is
KernelCore that talks to CPU, memory, disks, and network
GNU toolsShell, ls, cp, gcc, and much of what feels like “Linux commands”
DistributionCurated bundle: kernel + tools + package manager + defaults

A distribution (distro) is what you download and install—Ubuntu, Debian, Rocky Linux, and so on. They share the same kernel family but differ in packaging, release cadence, and commercial support.

Why Developers Learn Linux

ScenarioWhy Linux shows up
Cloud VPSAWS, Alibaba Cloud, Tencent Cloud images are Linux
CI/CDGitHub Actions, GitLab Runner jobs often run Ubuntu
ContainersDocker images are Linux inside
Production APIsSpring Boot, Node, Nginx, MySQL typically run on Linux servers
Cost and stabilityNo desktop license; strong server tooling

Your laptop might be Windows or macOS; your deployment target is still often Linux. Learning the shell reduces “it works locally but fails on the server” incidents.

Linux vs Windows vs macOS (Developer View)

TopicWindowsmacOSLinux (server)
Primary UIGUI desktopGUI desktopSSH + shell (GUI optional)
PathsC:\Users\.../Users/.../home/user/...
Case sensitivityUsually noDefault no (APFS can be sensitive)Yes
Package installInstaller / wingetHomebrewapt, dnf, etc.
Typical dev roleDesktop IDEDesktop IDERuntime / deploy target

Tip

Learn Linux Even on Windows

WSL2 runs a real Linux kernel on Windows—enough for most commands in this course. See the next chapter on getting a Linux environment.

Choosing a Distribution

This course uses Ubuntu LTS commands first (apt, systemd). Debian-family and RHEL-family differences are called out when they matter.

DistributionGood forNotes
Ubuntu Server LTSLearning, cloud, Spring/Node deployRecommended default for this tutorial
DebianStable servers, minimal imagesVery similar to Ubuntu for CLI work
Rocky / Alma LinuxEnterprise RHEL replacementUses dnf; common in regulated industries
FedoraBleeding-edge desktop/serverShort lifecycle; less common in prod
WSL2 + UbuntuWindows developersLocal practice without a VM

We do not focus on:

  • Desktop themes, wine, or gaming on Linux
  • Deep comparison of every niche distro
  • Linux kernel development or driver writing

We do focus on:

  • Files, permissions, packages, processes, networking, and deployment

Warning

Production and tutorials on this site assume a current Ubuntu LTS or similar (22.04, 24.04). Very old releases (for example end-of-life Ubuntu 18.04) miss security updates and modern packages.

How This Tutorial Fits Hello Code

Other tracks teach languages and build tools; Linux teaches the environment they run in:

TrackLinux connection
JavaJDK install, java -jar, server deploy
JavaScript / NodeNode LTS, PM2, ports
Maven / GradleCI builds on Linux agents
JDBCMySQL on Linux or in Docker
VueBuild SPA in Docker, serve with Nginx on Linux
NginxReverse proxy for API and static frontend

Follow gen_article_plan/linux.md for the full chapter list. Examples use American English and bash; commands are shown with comments on the line above when they appear in code blocks.

The Command-Line Mindset

Linux servers are operated through a shell (usually bash):

bash
# Ask the system who you are
whoami
 
# See kernel and architecture
uname -a
 
# On Ubuntu, show distro version
lsb_release -a

You will type commands, chain them with pipes, and edit small config files. GUIs exist, but remote servers are almost always SSH + text.

Mini Example: Read-Only System Peek

After you have any Linux environment (VM, cloud, or WSL), run:

bash
# Current user
whoami
 
# Home directory shortcut
echo $HOME
 
# List files in home (including hidden dotfiles)
ls -la ~

Nothing here modifies the system—it is a safe first contact.

FAQ

Is Linux free?

The kernel and most distros are open source and free to use. Companies may pay for support contracts (RHEL, Ubuntu Pro), not for the basic OS.

Do I need to replace Windows or macOS?

No. Many developers use Linux only on servers and keep their familiar desktop. WSL2 is a popular hybrid.

Ubuntu Desktop vs Ubuntu Server?

Server images have no GUI by default—ideal for this course. Desktop is fine for learning if you use the terminal heavily; we still skip desktop customization topics.

How long to become productive?

Basic navigation and package install: days. Comfortable deploy and logs: a few weeks of practice alongside real projects.

What comes next?

Linux learning environment.