Linux

Linux runs the overwhelming majority of servers, cloud workloads, and containers. You don't need to be a kernel hacker, but basic Linux proficiency — the filesystem, permissions, processes, and a debugging instinct — is one of the highest-leverage skills in backend and DevOps work.

The recurring theme is operating servers reliably: automate changes instead of hand-editing "snowflake" boxes, apply least privilege, and when something breaks, work methodically through logs, processes, disk, and network.

TL;DR

Quick Example

A fast triage when a server misbehaves — disk, load, recent logs, and listening ports:

Core Concepts

Essential Commands

Best Practices

Common Mistakes

Debugging only at the app layer

Inconsistent permissions

FAQ

Why is Linux worth learning for backend/DevOps?

Because that's where your code runs — servers, containers, and CI all run Linux. Knowing how to read logs, manage processes and services, check disk/memory, and reason about permissions lets you deploy and debug confidently instead of guessing.

How do Linux file permissions work?

Each file has read (4), write (2), and execute (1) bits for the owner, group, and others — combined into numbers like 755 (rwxr-xr-x). chmod changes the bits and chown changes ownership. Grant the least access that works rather than reaching for 777.

What is systemd?

The init system and service manager on most modern Linux distros. It starts/stops services, restarts them on failure, manages dependencies, and collects logs. You'll mostly use systemctl (control services) and journalctl (read their logs).

How should I approach debugging a server issue?

Work outward from the symptom in layers: read the relevant logs, inspect processes (CPU/memory), check disk space, then network (ports, DNS, connectivity). Many "application" incidents are really a full disk, an OOM kill, or a permissions problem.

Related Topics

References