<< back to Guides

πŸ—ƒοΈ Linux File System: Server-Focused Overview

This guide explores the Linux filesystem hierarchy with a focus on what’s relevant for server environments β€” particularly in distributions like Debian, Ubuntu, and Alpine Linux.

Whether you’re managing containers, configuring services, or building CI/CD pipelines, this knowledge is essential.


πŸ—‚οΈ Filesystem Hierarchy Overview (FHS)

Linux organizes files into a tree-like structure rooted at /. Most server-relevant data lives in well-defined subdirectories.

πŸ“‚ Top-Level Directories

Path Purpose
/ Root of the entire filesystem
/bin Essential binaries for all users
/sbin Essential system binaries for root/admins
/etc System configuration files
/var Variable data (logs, caches, spool)
/usr Userland apps and libraries
/home User home directories (less relevant for servers)
/root Home directory for root user
/tmp Temporary files, auto-cleared on reboot
/opt Optional software packages
/lib, /lib64 Shared libraries used by binaries
/dev Device files (disks, terminals, etc.)
/proc, /sys Virtual files for system/kernel info
/run Volatile runtime files (e.g., PID files)
/mnt, /media Mount points (manual or removable devices)

🧰 Server-Critical Directories In Depth

πŸ”§ /etc β€” Configuration

# View SSH configuration
cat /etc/ssh/sshd_config

βš™οΈ /var β€” Variable Runtime Data

# Tail logs
tail -f /var/log/syslog

πŸ“¦ /usr β€” Installed Software and Shared Resources

⚠️ On Debian systems, apt install places binaries in /usr/bin not /bin.


πŸͺͺ /run β€” Runtime Volatile Files


πŸ§ͺ /tmp β€” Temporary Files

Use it for:

mktemp /tmp/example.XXXXXX

πŸ”’ /root β€” Root User Home


πŸ“ /opt β€” Optional Software


🐧 Alpine-Specific Notes

Alpine follows FHS but is stripped-down for minimalism:

Debian Path Alpine Path Notes
/etc/init.d/ /etc/init.d/ OpenRC init system used in Alpine
/lib, /lib64 Merged into /lib Smaller footprint
/var/lib/apk/ Alpine's package metadata

Use Alpine for:


🧹 Tips for Server Environments


πŸ›  Useful Commands

# Inspect disk usage by directory
du -sh /*

# See mounts
mount | column -t

# List services
systemctl list-units --type=service

# Find config file for a service
dpkg -L nginx | grep /etc

πŸ“š Further Reading


<< back to Guides