The Linux filesystem hierarchy is a crucial aspect of understanding how the operating system organizes and manages files. Whether you are a beginner or an experienced Linux user, knowing the purpose of each directory helps in system administration, troubleshooting, and effective usage of the system.
The Root Directory (/
)
At the top of the Linux filesystem hierarchy is the root directory, represented by /
. All files and directories originate from here. Unlike Windows, Linux does not use drive letters; everything is part of a single directory tree.
Key Directories and Their Purpose
1. /bin
– Essential User Binaries
This directory contains essential system programs and utilities required for basic operations, such as ls
, cp
, mv
, and cat
. These binaries are necessary for both single-user mode and normal operations.
2. /boot
– Boot Loader Files
It stores the files required for booting the system, including the Linux kernel, bootloader (GRUB or LILO), and initialization scripts.
3. /dev
– Device Files
This directory holds special device files that represent hardware components such as hard drives (/dev/sda
), partitions (/dev/sda1
), and peripherals (/dev/tty
, /dev/null
).
4. /etc
– Configuration Files
System-wide configuration files and scripts reside in /etc
. Examples include /etc/passwd
(user accounts), /etc/hosts
(hostname resolution), and /etc/fstab
(filesystem mounts).
5. /home
– User Home Directories
Each user has a personal directory under /home
, such as /home/user1
. It stores personal files, configurations, and documents.
6. /lib
– Shared Libraries
Essential system libraries required by binaries in /bin
and /sbin
are stored here. It includes libraries like libc.so
and kernel modules.
7. /media
and /mnt
– Mount Points
These directories serve as temporary mount points for removable media like USB drives and CD-ROMs (/media
) or manually mounted filesystems (/mnt
).
8. /opt
– Optional Software
This directory is used for installing additional software that is not managed by the system package manager, such as proprietary applications.
9. /proc
– Process and Kernel Information
A virtual filesystem that provides access to system and process information. Files like /proc/cpuinfo
and /proc/meminfo
give insights into hardware details.
10. /root
– Root User’s Home Directory
Unlike /home
, this is the home directory for the superuser (root) and is located separately for security reasons.
11. /sbin
– System Binaries
Contains essential system administration binaries such as fdisk
, iptables
, and reboot
. These are usually reserved for the root user.
12. /srv
– Service Data
Used by services such as web servers (/srv/www
) and FTP servers to store hosted data.
13. /sys
– System Information
Another virtual filesystem like /proc
, used to access kernel and hardware details.
14. /tmp
– Temporary Files
Stores temporary files that applications create. Files here are typically deleted upon reboot.
15. /usr
– User Applications and Libraries
Contains secondary system programs and libraries. Key subdirectories include:
/usr/bin
– Non-essential user binaries./usr/lib
– Libraries for/usr/bin
programs./usr/local
– Locally compiled and installed software.
16. /var
– Variable Data
Stores log files (/var/log
), mail queues (/var/mail
), and cached data (/var/cache
). It holds data that changes over time.
Conclusion
Understanding the Linux filesystem hierarchy is essential for efficient system management, troubleshooting, and application development. Each directory serves a specific function, helping to keep the system organized and scalable. By mastering these directories, you can better navigate, configure, and optimize your Linux experience.