Understanding the Linux File System Structure
Table of contents
- The Root Directory ( / )
- /bin – Essential User Binaries
- /boot – Bootloader Files
- /dev – Device Files
- /etc – Configuration Files
- /home – User Home Directories
- /lib – Essential Shared Libraries
- /media – Removable Media
- /mnt – Temporary Mount Points
- /opt – Optional Software
- /proc – Process Information
- /root – Root User’s Home
- /run – Runtime Data
- /sbin – System Binaries
- /srv – Service Data
- /sys – System Information
- /tmp – Temporary Files
- /usr – User Programs
- /var – Variable Data
- Sources
When you start using Linux, one of the first things you’ll notice is its unique way of organizing files and directories. Let’s take a look at the basic layout of the Linux file system and what each directory is used for.
The Root Directory ( / )
At the top of the Linux file system hierarchy is the root directory, represented by a single forward slash (/). All other files and directories are contained within this root directory.
/bin – Essential User Binaries
This directory contains essential command-line utilities and binaries that are necessary for system operation and basic user tasks, such as ls
, cp
, and mv
.
/boot – Bootloader Files
Here you’ll find files needed to boot the system, including the kernel and bootloader configuration files.
/dev – Device Files
The /dev directory holds device files, which represent hardware components like hard drives, terminals, and printers. These files allow the system to interact with the hardware.
/etc – Configuration Files
System-wide configuration files and settings are stored here. This includes system initialization scripts and network configuration files.
/home – User Home Directories
Each user has a personal directory within /home, such as /home/john. This is where users store their personal files and directories.
/lib – Essential Shared Libraries
This directory contains shared library files needed by the binaries in /bin and /sbin. Libraries are similar to DLL files in Windows.
/media – Removable Media
When you insert a USB drive or CD, it gets mounted here. This directory typically has subdirectories for each removable device.
/mnt – Temporary Mount Points
System administrators can use this directory to temporarily mount filesystems, such as network shares or additional hard drives.
/opt – Optional Software
Third-party and optional software packages are often installed here. This keeps them separate from the rest of the system files.
/proc – Process Information
This is a virtual filesystem that provides information about system processes and hardware. You can look into this directory to find details about your system’s running processes.
/root – Root User’s Home
The home directory for the root user (the system administrator) is located here. It’s separate from /home to keep root’s files secure.
/run – Runtime Data
This directory contains system information and process data since the last boot. It’s used for storing transient files like process IDs.
/sbin – System Binaries
Similar to /bin, but it contains essential binaries that are typically used by the system administrator, such as fsck
and reboot
.
/srv – Service Data
This directory is used to store data for services provided by the system, such as web servers and file servers.
/sys – System Information
Another virtual filesystem, /sys provides information about the kernel, devices, and drivers. It’s used by system processes to interact with hardware.
/tmp – Temporary Files
Applications and users store temporary files here. This directory is often cleared upon system reboot.
/usr – User Programs
This directory contains user binaries, libraries, documentation, and source code. Key subdirectories include:
/usr/bin: Non-essential command binaries.
/usr/lib: Libraries for /usr/bin binaries.
/usr/local: Locally installed software.
/usr/share: Architecture-independent data.
/usr/include: Standard include files for C programs.
/var – Variable Data
Files that are expected to grow in size, such as logs and databases, are stored here. Notable subdirectories include:
/var/log: Log files.
/var/tmp: Temporary files preserved between reboots.
/var/lib: State information for applications.
Understanding these directories and their purposes will help you navigate and manage a Linux system more effectively. Each directory has a specific role, contributing to a well-organized and functional file system.
Sources
For more detailed information on the Linux file system structure, you can refer to the following resources: