/lib : Essential shared libraries and kernel modules.
/media : Mount points for removable media.
/mnt : Temporary mount point for filesystems.
/opt : Optional software packages.
/proc : Virtual filesystem providing process and kernel information.
/root : Home directory for the root user.
/run : Runtime variable data.
/sbin : System binaries for administration (e.g., ifconfig, reboot).
/srv : Data for services provided by the system.
/sys : Virtual filesystem for kernel and hardware information.
/tmp : Temporary files, cleared on reboot.
/usr : Secondary hierarchy for user utilities and applications.
/var : Variable data files, like logs and databases.
/etc - Configuration Details
Path
Purpose
/etc/passwd
User account information
/etc/shadow
Encrypted passwords (root only)
/etc/group
Group definitions
/etc/hosts
Static hostname to IP mappings
/etc/resolv.conf
DNS resolver configuration
/etc/hostname
System hostname
/etc/fstab
Filesystem mount table
/etc/crontab
System-wide cron jobs
/etc/sudoers
Sudo permissions (edit with visudo)
/etc/ssh/sshd_config
SSH server configuration
/etc/ssl/certs/
CA certificates
/etc/systemd/system/
Custom systemd units
/etc/profile
System-wide shell profile
/etc/bashrc or /etc/bash.bashrc
System-wide bash settings
/etc/environment
System-wide environment variables
Network Configuration (varies by distro)
Distro
Path
RHEL/CentOS
/etc/sysconfig/network-scripts/
Debian/Ubuntu
/etc/network/interfaces or /etc/netplan/
All (NetworkManager)
/etc/NetworkManager/
/var - Variable Data Details
Path
Purpose
/var/log/
Log files
/var/log/syslog
Main system log (Debian/Ubuntu)
/var/log/messages
Main system log (RHEL/CentOS)
/var/log/auth.log
Authentication logs (Debian/Ubuntu)
/var/log/secure
Authentication logs (RHEL/CentOS)
/var/log/dmesg
Kernel ring buffer
/var/log/journal/
systemd journal (binary)
/var/cache/
Application cache files
/var/spool/
Queued data (mail, print, cron)
/var/lib/
Persistent application data
/var/www/
Web server content (common location)
/var/tmp/
Temporary files preserved between reboots
Reading Logs
# Traditional logstail -f /var/log/sysloggrep "error" /var/log/syslog# systemd journaljournalctl -f # Follow all logsjournalctl -u nginx # Specific servicejournalctl --since "1 hour ago" # Time-basedjournalctl -p err # By priority
/usr - User Programs Details
Path
Purpose
/usr/bin/
User command binaries
/usr/sbin/
System admin binaries
/usr/lib/
Libraries for /usr/bin and /usr/sbin
/usr/local/
Locally installed software (manual installs)
/usr/local/bin/
Locally installed binaries
/usr/share/
Architecture-independent data
/usr/share/doc/
Documentation
/usr/share/man/
Manual pages
/usr/include/
C header files
/usr/src/
Source code (kernel sources)
/proc - Process and Kernel Information
Virtual filesystem - doesn’t exist on disk.
Path
Purpose
/proc/cpuinfo
CPU information
/proc/meminfo
Memory information
/proc/version
Kernel version
/proc/[PID]/
Per-process information
/proc/[PID]/cmdline
Command that started process
/proc/[PID]/fd/
Open file descriptors
/proc/[PID]/environ
Environment variables
/proc/net/
Network statistics
/proc/sys/
Kernel parameters (tunables)
Useful /proc Examples
# CPU infocat /proc/cpuinfo | grep "model name"# Memory (in KB)cat /proc/meminfo | head -3# Kernel parameterscat /proc/sys/net/ipv4/ip_forward# See what a process is doingls -la /proc/$(pgrep nginx | head -1)/fd
/dev - Device Files
Path
Purpose
/dev/null
Discard output
/dev/zero
Source of null bytes
/dev/random
Random bytes (blocking)
/dev/urandom
Random bytes (non-blocking)
/dev/sda
First SCSI/SATA disk
/dev/sda1
First partition on sda
/dev/nvme0n1
First NVMe disk
/dev/tty
Current terminal
/dev/pts/
Pseudo-terminals (SSH sessions)
Practical Guidance
Finding Configuration Files
# Find all config files for a packagedpkg -L package | grep /etc # Debian/Ubunturpm -qc package # RHEL/CentOS
Checking Disk Usage by Directory
du -h --max-depth=1 /var | sort -h
Finding Large Files
find / -type f -size +100M 2>/dev/null
Cleaning Up Disk Space
# Check what's using space in /vardu -sh /var/log/*du -sh /var/cache/*# Clear old journal logsjournalctl --vacuum-time=7d# Clear package cacheapt clean # Debian/Ubuntuyum clean all # RHEL/CentOS