The /usr/ directory is the main application-storage directory. The binary files in this directory are not required for system start-up or maintenance, so the /usr/ hierarchy may be, and often is, located on a separate file system. Because of its (usually) large size, /usr/ has its own hierarchy of subdirectories. We will mention just a few:
/usr/X11R6: the entire X Window System hierarchy. All binaries and libraries required for the operation of X (including the X servers) must be located here. The /usr/X11R6/lib/X11 directory contains all aspects of X's configuration which do not vary from one computer to another. Specific configurations for each computer should go in /etc/X11.
/usr/bin/: contains the large majority of the system's binaries. Any binary program which isn't necessary for the maintenance of the system and isn't a system administration program must be located in this directory. The only exceptions are programs you compile and install yourself, which must be located in /usr/local/.
/usr/lib/: contains all the necessary libraries to run programs located in /usr/bin/ and /usr/sbin/. There is also a /usr/lib/X11 symbolic link pointing to /usr/X11R6/lib, the directory which contains the X Window System libraries (but only if X is installed).
/usr/local/: this is where you must install applications you compile from source. The installation program should create the necessary hierarchy: lib/, bin/, etc.
/usr/share/: this directory contains all architecture-independent data required by applications in /usr/. Among other things, you'll find zone and location information (zoneinfo and locale).
Let's also mention the /usr/share/doc and /usr/share/man directories, which respectively contain application documentation and the system's manual pages.