HIER(7)

NAME
hier - Description of the file system hierarchy

DESCRIPTION
A typical Linux system has, among others, the following directories:

/   This is the root directory. This is where the whole tree starts.

/bin
    This directory contains executable programs which are executed often, are needed to bring the system up or repair it.

/dev
    Special or device files, which refer to physical devices. See mknod(1).

/dos
    If both MS-DOS and Linux are run on one computer, this is a typical place to mount a DOS file system.

/etc
    contains programs and other files necessary to system administration; normal users don't need any of this. Usually, this directory is not in their $PATH.

/etc/skel
    When a new user account is created, files from this directory are usually copied into the user's home directory.

/etc/lilo
    The Linux Loader for booting the system goes here.

/install
    This is used by some installations scripts to keep track of which packages have been installed.

/lib
    Frequently-used object code libraries, including dynamic libraries, which are linked at the time an executable starts up, plus some executables which usually are not called directly.

/proc
    This is the directory where information about running processes can be obtained.

/proc/[0-9]+
    This directory contains information about the process associated with its number; it has such files as the command line, the environment, the memory contents, or statistics about the process.

/proc/[0-9]+/fd
    A directory containing the file descriptors associated with the process.

/proc/[0-9]+/lib
    A directory containing the dynamic libraries associated with a process.

/proc/self
    This is a link to the directory associated with the calling process.

/tmp
    This directory contains temporary files which may be deleted with no notice, such as by a regular job or at system boot up.

/user
    This often is an empty directory, which can be used as a mount point for floppy disks.

/usr
    Less-frequently used commands and other things; this is often a mount point for a separate partition or volume.

/usr/TeX
    The TeX typesetting system.

/usr/TeX/bin
    Binary commands for the TeX system. /usr/TeX/lib This contains data files connected with TeX, and may contain further subdirectories.

/usr/TeX/man
    Manual pages with the TeX system.

/usr/TeX/src
    Sources associates with TeX.

/usr/X386
    The X-Windows system.

/usr/X386/bin
    Binaries which belong to the X-Windows system; often, there is a symbolic link from the more traditional /usr/bin/X11 to here.

/usr/X386/lib
    Data files associated with the X-Windows system.

/usr/X386/lib/X11
    These contain miscellaneous files needed to run X; among them configuration files. Often, there is a symbolic link from /usr/lib/X11 to this directory.

/usr/adm
    This often contains various log files.

/usr/bin
    This contains binaries which are not needed so often, or are not needed for bringing the system up or repairing it. The decision whether to put something in /bin or /usr/bin should be guided by the simple consideration: "If I put it in /usr/bin and /usr is not available on boot, do I still get the system up?"

/usr/bin/X11
    is the traditional place to look for X11 executables; on Linux, it usually is a symbolic link to /usr/X386/bin.

/usr/g++-include
    Include files to use with the GNU C++ compiler.

/usr/homes
    This contains the home directories for normal users.

/usr/include
    Include files for the C compiler.

/usr/include/X11
    Include files for the C compiler and the X-Windows system.

/usr/include/asm
    Include files which declare some assembler functions. This should be a symbolic link to /usr/src/linux/include/asm.

/usr/include/linux
    This contains information which may change from system release to system release and should be a symbolic link to /usr/src/linux/include/linux to get at operating system specific information.

/usr/lib
    Less - frequently used object libraries, including dynamic libraries, plus some executables which usually are not invoked directly. More complicated programs may have whole subdirectories there.

/usr/lib/X11
    The usual place for data files associated with X programs, and configuration files for the X system itself. On Linux, it usually is a symbolic link to /usr/X386/lib/X11.

/usr/lib/X11/app-defaults
    X applications store their default resource (in other words, application defaults) here. If you want to change the way a certain program looks, this is the place to look.

/usr/lib/X11/config
    This directory is used for the imake(1) utility which incorporates information about the system into Makefiles.

/usr/lib/X11/twm
    Files for the twm(1) window manager.

/usr/lib/X11/xinit
    Files for starting up the X Windows system.

/usr/lib/gcc-lib
    contains configuration files for the system's C compiler, gcc(1).

/usr/lib/groff
    Files for the groff document formatting system.

/usr/lib/uucp
    Files for uucp(1).

/usr/lib/zoneinfo
    Files for timezone information.

/usr/local
    This is where programs which are local to the site typically go in. Some program packages, such as EMACS, may have their own subdirectories there.

/usr/local/bin
    Binaries for programs local to the site go there.

/usr/local/lib
    Files associated with locally installed programs go there.

/usr/local/man
    Manpages associated with locally installed programs go there.

/usr/man
    Manpages go in there, into their subdirectories.

/usr/man/cat[1-9]
    These directories contain preformatted manual pages according to their manpage section.

/usr/man/man[1-9]
    These directories contain manual pages which are in source code form.

/usr/openwin
    Files associated with the Open Windows Window manager for X go there.

/usr/preserve
    This is where vi(1) saves edit sessions so they can be restored later.

/usr/spool
    Spooled (or queued) files for various programs.

/usr/spool/atjobs
    Spooled jobs for at(1).

/usr/spool/cron
    Spooled jobs for cron(1).

/usr/spool/lp1
    Spooled files for a printer.

/usr/spool/mail
    User's mailboxes.

/usr/spool/smail
    Spooled files for the smail(1) mail delivery program.

/usr/spool/uucp
    Spooled files for uucp(1).

/usr/src
    Source files for different parts of the system.

/usr/src/libc-linux
    Sources for the C library.

/usr/src/linux
    This contains the sources for the operating system itself.

/usr/tmp
    An alternative place to store temporary files; often used if the files will be huge.

/var
    On some systems with more of a BSD flavour to them, this directory contains all the files which may change in size, such as spool and log files, and /usr only contains static files. Often, /var is just a symbolic link to /usr.

CONFORMS TO
The layout of this file system generally follows System V conventions.

BUGS
This list is not exhaustive; different systems may be configured differently.

SEE ALSO
find(1), ln(1), mount(1)