The practical map
When you know the purpose of a path, Linux becomes much easier to navigate. Most mysteries reduce to a few questions: Is this user-specific or system-wide? Is it configuration, data, logs, cache, runtime state, or a program file?
| Looking for | Start here | Why |
|---|---|---|
| Your documents | /home/yourname | Home directories hold personal files |
| User app settings | ~/.config, ~/.local/share | Per-user configuration and state |
| System configuration | /etc | Machine-wide settings live here |
| Logs | journalctl, /var/log | Systemd journal and traditional log files |
| Package-managed programs | /usr/bin, /usr/lib, /usr/share | Installed by the package manager |
| Third-party app bundles | /opt | Optional vendor applications |
| Service data | /var/lib/service-name | Persistent state for daemons |
| Web or service content | /srv | Site-specific service data on some systems |
| Temporary files | /tmp, /var/tmp | Short-lived scratch data |
| Devices | /dev | Kernel device nodes |
| Live process data | /proc | Kernel-generated process and system view |
Common examples
Avoid editing package-managed program files under /usr unless you are deliberately doing local system administration. Prefer configuration in /etc, user configuration in your home directory, or package-supported override locations.
cat /etc/os-releasesudo du -h -d 1 /var | sort -hjournalctl -u ssh --since today