Tools & Workflow
Introduction to Linux for Developers
The Linux a developer actually uses daily — the shell, files and permissions, processes, pipes, and the commands worth memorizing.
Updated 2026-07-08 · 7 min read
You don't need to become a system administrator to be productive on Linux. As a developer, you use a surprisingly small slice of it constantly: moving around the filesystem, editing and inspecting files, chaining small tools together, and managing processes. Learn that slice well and the rest you can look up when you need it.
This guide focuses on exactly that daily-use core. Everything here works the same whether you're on a real Linux machine, a container, a remote server over SSH, or WSL on Windows.
The shell and how it thinks
When you open a terminal you're talking to a shell — usually bash or zsh. The shell reads a line, splits it into a command and arguments, runs it, and prints the result. That's the entire model.
A command looks like this:
command --flag argument
ls -l /homels is the program, -l is a flag that changes its behavior, and /home is the argument it acts on. Flags usually have a short form (-a) and a long form (--all) that do the same thing.
You navigate a tree of directories. Two paths matter:
- Absolute paths start from the root:
/home/you/project. - Relative paths start from where you are:
project/src.
A few shorthands appear everywhere: . is the current directory, .. is the parent, ~ is your home directory, and / is the root of everything.
Moving around and managing files
These are the commands you'll run hundreds of times a day. They're worth committing to muscle memory.
pwd # print working directory (where am I?)
