The /usr filesystem is often
large, since all programs are installed there. All files
in /usr usually come from a Linux
distribution; locally installed programs and other stuff goes
below /usr/local. This makes it possible
to update the system from a new version of the distribution,
or even a completely new distribution, without having to
install all programs again. Some of the subdirectories of
/usr are listed below (some of the less
important directories have been dropped; see the FSSTND for
The X Window System, all files. To simplify
the development and installation of X, the X files have not
been integrated into the rest of the system. There is a
directory tree below /usr/X11R6 similar
to that below /usr itself.
Almost all user commands. Some commands are
in /bin or in
System administration commands that are not
needed on the root filesystem, e.g., most server programs.
Manual pages, GNU Info documents, and
miscellaneous other documentation files, respectively.
Header files for the C
programming language. This should actually be below
/usr/lib for consistency,
but the tradition is overwhelmingly in support for this name.
Unchanging data files for programs and
subsystems, including some site-wide configuration
files. The name lib comes from library;
originally libraries of programming subroutines
were stored in /usr/lib.
The place for locally installed software and
other files. Distributions may not install anything in
here. It is reserved solely for the use of the local
administrator. This way he can be absolutely certain that
no updates or upgrades to his distribution will overwrite
any extra software he has installed