Linux Filesystem Hierarchy Reference

Key /proc, /sys, /etc, /var paths with purpose and content description.

Searchable Linux FHS directory reference with purpose, typical contents and read/write access notes. Look up any top-level path like /etc, /var, /proc or /sys and learn what belongs there.

What is the Filesystem Hierarchy Standard?

The FHS is a specification, maintained by the Linux Foundation, that defines the purpose of the top-level directories on a Linux system. It is why /etc holds configuration and /var holds variable data on nearly every distribution, which makes scripts and tools portable across systems.

Know where everything lives on Linux

Every Linux system follows the Filesystem Hierarchy Standard (FHS), which assigns a clear purpose to each top-level directory. Configuration goes in /etc, logs and spools in /var, user programs in /usr, and live kernel state in the virtual /proc and /sys. This reference lets you search any path and instantly see what it is for, what files you will find there, and whether it is safe to write to.

How it works

The FHS separates files along two axes: shareable vs unshareable (can it be served to other hosts) and static vs variable (does it change at runtime). That is why read-only program files live under /usr while changing data lives under /var, and why machine-specific configuration sits in /etc. The virtual filesystems /proc and /sys are special: they hold no real files on disk but expose kernel and device state that you can read, and in some cases write, to tune the running system. Filtering matches the path, its purpose and example contents, so searching logs, /var, or config finds the right entry.

Tips and notes

Put your own manually-installed software in /usr/local or /opt, never directly in /usr, so the package manager does not overwrite it. Treat /etc as the place to look first when configuring a service. Remember /proc and /sys are live windows into the kernel — cat /proc/cpuinfo and cat /sys/class/net/*/address read real state, and writing to files like /proc/sys/... (better done via sysctl) changes kernel behaviour immediately. Use /tmp for throwaway files and /var/tmp only when the data must survive a reboot.