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
- Learn the filesystem, permissions, processes, and networking basics.
- Automate server changes (IaC); avoid hand-tweaked snowflake servers.
- Apply least privilege and keep systems patched.
- Debug in order: logs → processes → disk → network.
Quick Example
A fast triage when a server misbehaves — disk, load, recent logs, and listening ports:
Core Concepts
- Filesystem hierarchy —
/etc(config),/var(logs, state),/home(users),/tmp(scratch). - Users, groups, permissions — read/write/execute for owner/group/others (
rwx);chmod/chown. - Processes & signals — every program is a process with a PID; signals (
SIGTERM,SIGKILL) control them. - Services — long-running daemons, usually managed by systemd (
systemctl,journalctl).
Essential Commands
Best Practices
- Prefer infrastructure as code over manual server edits — reproducible and reviewable.
- Keep systems patched and run services as non-root, least-privilege users.
- Monitor disk and memory — "disk full" (often from logs or container layers) is a classic outage.
- Capture configuration in version control, not in one admin's head.
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
- DevOps — Operating systems and services
- Docker — Containers built on Linux primitives
- Bash — Scripting the shell
- Infrastructure as Code — Avoiding snowflake servers
- Monitoring — Watching system health