🐧 Linux
Learn Linux for QA automation: filesystem navigation, permissions, pipes, processes, bash scripting, CI agent debugging and common errors.
Almost every real test environment — Jenkins agents, Docker containers, Kubernetes nodes, GitHub Actions runners, cloud VMs — runs on Linux, not Windows. Learn the shell skills that let you navigate, debug, and automate on the machines your tests actually run on.
What you can learn on this page
- 🎯 What is Linux, and why does a QA engineer need it? — Linux is the operating system running beneath almost every CI agent, Docker container, Kubernetes node, and cloud VM you will ever touch as a QA engineer — not as a visible surface, but as the invisible load-bearing wall the whole building stands on. But here
- ⚙️ Getting a Linux Environment — WSL2 (Windows Subsystem for Linux 2) is not a simulator or an emulator — it runs a genuine Linux kernel inside a lightweight VM right alongside Windows, the same way Docker Desktop does it under the hood. Think of it like a flight simulator that uses a real ai
- 📁 Filesystem & Navigation — The Linux filesystem is a single upside-down tree rooted at `/` — every file, every device, every mounted volume hangs from that one root, with no `C:` or `D:` drive letters anywhere. But here is the question that trips up Windows and Java developers alike: if
- 🔐 Permissions & Users — Linux file permissions are a three-audience access control system: every file has exactly three answers to "who can do what" — for the owner, for anyone in the same group, and for everyone else — and each answer is three bits: read (r), write (w), ex
- 📝 Text & Pipes — The Linux pipe (`|`) connects the standard output (stdout) of one process directly to the standard input (stdin) of the next, building a data-processing pipeline from small, single-purpose tools without any intermediate files. Think of it the same way Java's S
- ⚙️ Processes & Services — Every running program on Linux is a process — an isolated unit with its own PID (process ID), memory space, file descriptors, and signal handlers — and the OS scheduler hands each one CPU time in turn, just as Java's JVM schedules threads. But here is the ques
- 🧪 Real-World QA Scenarios — Debugging a failing CI pipeline on a live Linux agent is like performing surgery on a running engine — the system cannot be stopped, the environment cannot be changed, and every action you take might make things worse if you misdiagnose. The real-world QA scen
- 🔗 Ecosystem — Linux is not just one tool in the QA ecosystem — it is the shared kernel that every other tool in your stack is built on top of. Docker containers share the host's Linux kernel. Kubernetes nodes run Linux. GitHub Actions `ubuntu-latest` runners are Linux VMs.