Skip to content

Unix File System Hierarchy

The Unix file system hierarchy is a standardized directory structure that organizes the files and directories on a Unix-based operating system. This hierarchical structure ensures consistency and predictability across different Unix-like systems, making it easier for users and applications to interact with the file system.

The Root Directory (/)

The root directory, denoted by the forward slash (/), is the topmost directory in the Unix file system hierarchy. It serves as the starting point for all other directories and files.

Essential User Command Binaries (/bin)

The /bin directory contains essential user command binaries, which are executable files for common user-level commands, such as bash, cat, chmod, date, echo, grep, gzip, hostname, kill, less, ls, mkdir, mount, mv, nano, open, ping, pwd, rm, sh, su, tar, touch, and umount.

System Configuration Files (/etc)

The /etc directory is the home for system configuration files, including crontab (scheduled tasks), cups (printing system), fonts (font files), host.conf (host name resolution configuration), hostname (system host name), hosts (hosts file for name resolution), hosts.allow and hosts.deny (network access control), init (system initialization), issue (message of the day), machine-id (unique machine ID), mtab (mounted file systems), mtools.conf (configuration for MTOOLS), nanorc (nano text editor configuration), networks (network name resolution), passwd (user account information), profile (system-wide environment and startup scripts), protocols (network protocols), resolv.conf (DNS resolver configuration), rpc (Remote Procedure Call configuration), securetty (secure TTY list), services (network services), shells (list of available shells), and timezone (system timezone information).

Essential System Binaries (/sbin)

The /sbin directory contains essential system binaries, which are executable files for system administration commands, such as fdisk (partition management), fsck (file system check and repair), getty (login process), halt (system shutdown), ifconfig (network interface configuration), init (system initialization), mkfs (file system creation), mkswaP (swap space creation), reboot (system reboot), and route (network routing configuration).

Read-Only User Application Support Data & Binaries (/usr)

The /usr directory is the home for read-only user application support data and binaries, including:

  • /usr/bin: "most user commands"
  • /usr/include: "standard include files for 'C' code"
  • /usr/lib: "obj, bin, lib files for coding & packages"
  • /usr/local: "local software" (including /usr/local/bin, /usr/local/lib, /usr/local/man, /usr/local/sbin, and /usr/local/share)
  • /usr/share: "static data sharable across all architectures"
  • /usr/share/man: "manual pages"

Variable Data Files (/var)

The /var directory is the home for variable data files, including:

  • /var/cache: "application cache data"
  • /var/lib: "data modified as programs run"
  • /var/lock: "lock files to track resources in use"
  • /var/log: "log files"
  • /var/opt: "variable data for optional packages"
  • /var/spool: "tasks waiting to be processed"
  • /var/tmp: "temporary files saved between reboots"

Device Files (/dev)

The /dev directory contains device files, which represent physical or virtual devices on the system, such as /dev/null, /dev/zero, and /dev/random.

Home Directories (/home)

The /home directory is the location for user home directories, where users can store their personal files and configurations.

Mount Points (/mnt)

The /mnt directory is used as a mount point for temporary file systems, typically used for mounting external storage devices or network file systems.

Process & Kernel Information Files (/proc)

The /proc directory is a virtual file system that provides access to information about running processes and the kernel, such as CPU, memory, and other system resources.

Root User Home Directory (/root)

The /root directory is the home directory for the root user, the superuser with full administrative privileges.

Temporary Files (/tmp)

The /tmp directory is used for storing temporary files that are deleted between system reboots.

System Libraries & Kernel Modules (/lib)

The /lib directory contains system libraries and kernel modules, which are essential for the proper functioning of the operating system.

Optional Software Applications (/opt)

The /opt directory is used for installing optional software applications, which are not part of the core system.

Mount Points for Temporary Filesystems (/run)

The /run directory is used as a mount point for temporary file systems that are created and destroyed between system boots.

System Boot & Init Information (/boot)

The /boot directory contains files essential for booting the operating system, such as the kernel image, initramfs, and boot loader configuration.

System Logs (/var/log)

The /var/log directory is the location for system log files, which record various events and activities on the system.

Spool Directories (/var/spool)

The /var/spool directory is used for storing tasks that are waiting to be processed, such as print jobs, mail, and cron jobs.

Temporary Files (/var/tmp)

The /var/tmp directory is used for storing temporary files that persist across system reboots, unlike the /tmp directory.