Filesystem Hierarchy Standard (Unix, Linux etc)
http://www.pathname.com/fhs/
/boot -- Static files of the boot loader
Purpose: contains everything required for the boot process except configuration files not needed at boot time and the map installer. Thus /boot stores data that is used before the kernel begins executing user-mode programs. This may include saved master boot sectors and sector map files.
/root -- Home directory for the root user (optional)
/bin -- Essential user command binaries (for use by all users)
Purpose: contains commands that may be used by both the system administrator and by users, but which are required when no other filesystems are mounted (e.g. in single user mode). It may also contain commands which are used indirectly by scripts
/sbin -- System Binaries
Purpose: Utilities used for system administration (and other root-only commands) are stored in /sbin, /usr/sbin, and /usr/local/sbin. /sbin contains binaries essential for booting, restoring, recovering, and/or repairing the system in addition to the binaries in /bin.
/lib -- Essential shared libraries and kernel modules
Purpose: contains those shared library images needed to boot the system and run the commands in the root filesystem, ie. by binaries in /bin and /sbin.
/lib<qual> -- Alternate format essential shared libraries (optional)
Purpose: There may be one or more variants of the /lib directory on systems which support more than one binary format requiring separate libraries
/opt -- Add-on application software packages
Purpose: /opt is reserved for the installation of add-on application software packages. A package to be installed in /opt must locate its static files in a separate /opt/<package> or /opt/<provider> directory tree, where <package> is a name that describes the software package and <provider> is the provider’s LANANA registered name
/srv -- Data for services provided by this system.
/home -- User home directories (optional)
Purpose: /home is a fairly standard concept, but it is clearly a site-specific filesystem. 9 The setup will differ from host to host. Therefore, no program should rely on this location
/dev -- Device Files
Purpose: The /dev directory is the location of special or device files
/etc -- Host-specific system configuration
Purpose: The /etc hierarchy contains configuration files. A "configuration file" is a local file used to control the operation of a program; it must be static and cannot be an executable binary
/etc/opt -- Configuration files for /opt
Purpose: Host-specific configuration files for add-on application software packages must be installed within the directory /etc/opt/<subdir>, where <subdir> is the name of the subtree in /opt where the static data from that package is stored.
/media -- Mount point for removeable media
Purpose: This directory contains subdirectories which are used as mount points for removeable media such as floppy disks, cdroms and zip disks
/mnt -- Mount point for a temporarily mounted filesystem
Purpose: This directory is provided so that the system administrator may temporarily mount a filesystem as needed.
/tmp -- Temporary files
Purpose: The /tmp directory must be made available for programs that require temporary files.
/usr -- /usr is shareable, read-only data
/usr/bin -- Most user commands
Purpose: This is the primary directory of executable commands on the system.
/usr/include -- Directory for standard include files
Purpose: This is where all of the system’s general-use include files for the C programming language should be placed.
/usr/lib -- Libraries for programming and packages
Purpose: /usr/lib includes object files, libraries, and internal binaries that are not intended to be executed directly by users or shell scripts.
/usr/local -- Local hierarchy
Purpose: The /usr/local hierarchy is for use by the system administrator when installing software locally. Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr.
/usr/sbin -- Non-essential standard system binaries
/usr/share -- Architecture-independent data
Purpose: Any program or package which contains or requires data that doesn’t need to be modified should sore that data in /usr/share(or /usr/local/share, if installed locally).
/usr/share/man -- Manual pages
/usr/src -- Source code
Purpose: Source code may be place placed in this subdirectory, only for reference purposes.
/var -- Variable data files
Purpose: This includes spool directories and files, administrative and logging data, and transient and temporary files.
/var/cache -- Application cache data
/var/crash -- System crash dumps
/var/lib -- Variable state information
/var/lock -- Lock files
/var/opt -- for /opt
/var/run -- Run-time variable data
Purpose: This directory contains system information data describing the system since it was booted
/var/spool -- Applicaton spool data
Purpose: /var/spool contains data which is awaiting some kind of later processing. Data in /var/spool represents work to be done in the future (by a program, user, or administrator); often data is deleted after it has been processed.
/var/temp -- Temporary files preserved between system reboots, Data stored in /var/tmp is more persistent than data in /tmp.
/var/yp -- Network Information Service (NIS) database files (optional)
Liniux-Specific
/proc -- Kernel and process information virtual filesystem