Skybinary

View Categories

1.1.1 Filesystem Hierarchy Standard (FHS) Explained

2 min read

1.1.1 Filesystem Hierarchy Standard (FHS) Explained #

The Filesystem Hierarchy Standard (FHS) defines the directory structure in Linux, ensuring consistency across distributions. Below is a breakdown of key directories and their purposes:


1. /boot #

  • Purpose: Contains bootloader files (e.g., GRUB), kernel (vmlinuz), and initramfs.

  • Example Files:

    • /boot/vmlinuz-* (Linux kernel)

    • /boot/grub/ (GRUB configuration)


2. /proc #

  • Purpose: A virtual filesystem providing process and kernel information as files.

  • Key Features:

    • /proc/cpuinfo (CPU details)

    • /proc/meminfo (Memory usage)

    • /proc/[PID]/ (Process-specific data)


3. /sys #

  • Purpose: A virtual filesystem for interacting with kernel devices and drivers (part of sysfs).

  • Used For:

    • Hardware detection (/sys/class/)

    • Kernel parameter tuning (/sys/module/)


4. /var #

  • Purpose: Stores variable data (logs, caches, spool files).

  • Subdirectories:

    • /var/log/ (System logs)

    • /var/cache/ (Application cache)

    • /var/spool/ (Print queues, mail)


5. /usr #

  • Purpose: Contains user programs and read-only data (secondary hierarchy).

  • Key Subdirectories:

    • /usr/bin/ (User commands)

    • /usr/lib/ (Libraries)

    • /usr/local/ (Locally installed software)


6. /lib #

  • Purpose: Stores essential shared libraries for /bin and /sbin.

  • Modern Systems: Often replaced by /usr/lib (due to merged /usr).


7. /dev #

  • Purpose: Contains device files (e.g., hard disks, terminals).

  • Examples:

    • /dev/sda (First SATA disk)

    • /dev/tty1 (Virtual terminal)

    • /dev/null (Null device)


8. /etc #

  • Purpose: Holds system-wide configuration files.

  • Key Files:

    • /etc/passwd (User accounts)

    • /etc/fstab (Filesystem mounts)

    • /etc/ssh/sshd_config (SSH settings)


9. /opt #

  • Purpose: Optional third-party software (e.g., proprietary apps).

  • Example:

    • /opt/google/chrome/ (Manually installed Chrome)


10. /bin #

  • Purpose: Essential user binaries (commands) for all users.

  • Examples: lscpbash.


11. /sbin #

  • Purpose: Essential system binaries (root-only tools).

  • Examples: fdiskiptablesreboot.


12. /home #

  • Purpose: Personal directories for regular users.

  • Example: /home/username/ (User’s files and configs).


13. /media #

  • Purpose: Automatic mount point for removable media (USB, CDs).

  • Example: /media/usb-drive/.


14. /mnt #

  • Purpose: Temporary manual mount point for filesystems.

  • Example: sudo mount /dev/sdb1 /mnt/data.


15. /root #

  • Purpose: Home directory for the root user (not /home/root).


16. /tmp #

  • Purpose: Temporary files (cleared on reboot).

  • Permissions: Global read/write (1777 sticky bit).


FHS Cheat Sheet #

Directory Purpose
/boot Bootloader & kernel
/proc Process/kernel info (virtual)
/sys Kernel devices (virtual)
/var Variable data (logs, caches)
/usr User programs & libraries
/etc Configuration files
/dev Device files
/home User home directories
/tmp Temporary files

Why FHS Matters #

  • Consistency: All Linux distros follow a similar structure.

  • Troubleshooting: Knowing where files live helps debug issues.

  • Scripting: Scripts can rely on standard paths.

Powered by BetterDocs

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top