The Linux filesystem architecture is generally divided into the following folders:
Directory containing executable binaries, essential commands used in single-user mode, and essential commands required by all system users..
Commands that are not essential for the system in single-user mode.
/user/sbin has commands for less essential system administration programs. In more modern Linux, this is actually linked together to
Contains device nodes: a type of pseudo-file used by most hardware and software devices, except for network devices.
This directory is empty on the disk partition when it is not mounted.
It contains entries which are created by the udev system, which creates and manages device nodes on Linux, creating them dynamically when devices are found.
It contains files that are expected to change in size and content as the system is running.
Var stands for variable.
- system log files:
- packages and database files:
- print queues:
- temp files:
- networks services such as
It contains the system configuration files.
It contains no binary programs, but it might have some executable scripts.
For instance, the file
resolv.conf tells the system where to go on the network to obtain host name to IP address mappings (DNS).
Contains the few essential files needed to boot the system.
For every alternative kernel installed on the system, there are four files:
vmlinuz: the compressed Linux kernel, required for booting.
initrd: the initial ram filesystem, required for booting.
config: the kernel configuration file, used for debugging.
system.map: kernel symbol table.
GRUB files can be found here too.
Contain libraries (common code shared by applications and needed for them to run) for essential programs in
This library filenames either start with
Most of these are what are known as dynamically loaded libraries (also known as shared libaries).
(outdated, to edit) directory where removable media were mounted.
Optional directory for application software packages.
Erased in a reboot.
Multi-user applications, utilities and data.
/usr/include: header files used to compile applications.
/usr/lib: libraries for programs in
/usr/sbin: non-essential system binaries, such as system daemons
/usr/share: shaped data used by applications, generally architecture-independent.
/usr/src: source code, usually for the Linux kernel.
/usr/local: data and programs specific to the local machine.
/usr/bin: primary directory of executable commands of the
A really nice introduction to many fileystems.