hier
HIER(R)             Linux Programmer's Manual             HIER(R)



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 needed in single user mode  and  to  bring  the
              system up or repair it.

       /boot  Contains  static  files  for the boot loader.  This
              directory only holds the  files  which  are  needed
              during  the  boot  process.   The map installer and
              configuration files should go to /sbin and /etc.

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

       /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 configuration files which are local to the
              machine.  Some larger software packages, like  X11,
              can  have  their  own  subdirectories  below  /etc.
              Site-wide configuration files may be placed here or
              in  /usr/etc.  Nevertheless, programs should always
              look for these files in /etc and you may have links
              for these files to /usr/etc.

       /etc/opt
              Host-specific configuration files for add-on appli-
              cations installed in /opt.

       /etc/sgml
              This directory contains the configuration files for
              SGML and XML (optional).

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

       /etc/X11
              Configuration  files  for  the  X11  window  system
              (optional).

       /home  On machines with home directories for users,  these
              are  usually  beneath  this  directory, directly or
              not.  The structure of this  directory  depends  on
              local administration decisions.

       /lib   This  directory  should hold those shared libraries
              that are necessary to boot the system  and  to  run
              the commands in the root filesystem.

       /mnt   This  directory contains mount points for temporar-
              ily mounted filesystems

       /opt   This directory should contain add-on packages  that
              contain static files.

       /proc  This  is  a  mount  point  for the proc filesystem,
              which provides information about running  processes
              and   the   kernel.   This  pseudo-file  system  is
              described in more detail in proc(c).

       /root  This directory is usually the  home  directory  for
              the root user (optional).

       /sbin  Like  /bin, this directory holds commands needed to
              boot the system, but which are usually not executed
              by normal users.

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

       /usr   This  directory  is usually mounted from a separate
              partition.  It should hold only sharable, read-only
              data, so that it can be mounted by various machines
              running Linux.

       /usr/X11R6
              The  X-Window  system,   version   11   release   6
              (optional).

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

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

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

       /usr/X11R6/include/X11
              Contains  include  files  needed for compiling pro-
              grams using the X11 window system.  Often, there is
              a  symbolic  link  from  /usr/inlcude/X11  to  this
              directory.

       /usr/bin
              This is the primary directory for  executable  pro-
              grams.   Most  programs  executed  by  normal users
              which are not needed for booting or  for  repairing
              the  system  and  which  are  not installed locally
              should be placed in this directory.

       /usr/bin/X11
              is the traditional place to look for  X11  executa-
              bles;  on  Linux,  it usually is a symbolic link to
              /usr/X11R6/bin.

       /usr/dict
              Replaced by /usr/share/dict.

       /usr/doc
              Replaced by /usr/share/doc.

       /usr/games
              Binaries  for  games   and   educational   programs
              (optional).

       /usr/include
              Include files for the C compiler.

       /usr/include/X11
              Include  files for the C compiler and the X-Windows
              system.   This  is  usually  a  symbolic  link   to
              /usr/X11R6/include/X11.

       /usr/include/asm
              Include  files  which  declare some assembler func-
              tions.   This  used  to  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 used to  be  a
              symbolic  link  to  /usr/src/linux/include/linux to
              get at operating system specific information.

              (Note that one should have include files there that
              work  correctly  with  the current libc and in user
              space. However, Linux kernel source is not designed
              to  be  used  with  user programs and does not know
              anything about the libc you are using. It  is  very
              likely   that   things   will   break  if  you  let
              /usr/include/asm and /usr/include/linux point at  a
              random  kernel  tree.  Debian systems don't do this
              and use headers from a known good  kernel  version,
              provided in the libc*-dev package.)

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

       /usr/lib
              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/X11R6/lib/X11.

       /usr/lib/gcc-lib
              contains  executables and include files for the GNU
              C compiler, gcc(c).

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

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

       /usr/local
              This  is where programs which are local to the site
              typically go.

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

       /usr/local/doc
              Local documentation.

       /usr/local/etc
              Configuration   files   associated   with   locally
              installed programs.

       /usr/local/games
              Binaries for locally installed games.

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

       /usr/local/include
              Header files for the local C compiler.

       /usr/local/info
              Info  pages  associated with locally installed pro-
              grams.

       /usr/local/man
              Man pages associated with  locally  installed  pro-
              grams.

       /usr/local/sbin
              Locally  installed  programs for system administra-
              tion.

       /usr/local/share
              Local application data that  can  be  shared  among
              different architectures of the same OS.

       /usr/local/src
              Source code for locally installed software.

       /usr/man
              Replaced by /usr/share/man.

       /usr/sbin
              This directory contains program binaries for system
              administration which are not essential for the boot
              process, for mounting /usr, or for system repair.

       /usr/share
              This  directory  contains  subdirectories with spe-
              cific application data, that can  be  shared  among
              different  architectures of the same OS.  Often one
              finds stuff here that used to live in  /usr/doc  or
              /usr/lib or /usr/man.

       /usr/share/dict
              Contains the word lists used by spell checkers.

       /usr/share/doc
              Documentation about installed programs.

       /usr/share/games
              Static data files for games in /usr/games.

       /usr/share/info
              Info pages go here.

       /usr/share/locale
              Locale information goes here.

       /usr/share/man
              Manpages go here in subdirectories according to the
              man page sections.

       /usr/share/man/<locale>/man[1-9]
              These directories contain manual pages for the spe-
              cific locale in source code form. Systems which use
              a unique language and code set for all manual pages
              may omit the <locale> substring.

       /usr/share/misc
              Miscellaneous data that can be shared among differ-
              ent architectures of the same OS.

       /usr/share/nls
              The message catalogs for native language support go
              here.

       /usr/share/sgml
              Files for SGML and XML.

       /usr/share/terminfo
              The datebase for terminfo.

       /usr/share/tmac
              Troff macros that are not distributed with groff.

       /usr/share/zoneinfo
              Files for timezone information.

       /usr/share/doc

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

       /usr/share/man/<locale>/man[1-9]
              These directories contain manual pages which are in
              source code form.  Systems which use a unique  lan-
              guage  and  code  set for all manual pages may omit
              the <locale> substring.

       /usr/src
              Source files for different  parts  of  the  system,
              included with some packages for reference purposes.
              Don't work here with your own  projects,  as  files
              below   /usr   should   be  read-only  except  when
              installing software.

       /usr/src/linux
              This was  the  traditional  place  for  the  kernel
              source.  Some distributions put here the source for
              the default kernel they ship.  You should  probably
              use  another  directory when building your own ker-
              nel.

       /usr/tmp
              Obsolete. This should be a link to /var/tmp.   This
              link  is present only for compatibility reasons and
              shouldn't be used.

       /var   This directory contains files which may  change  in
              size, such as spool and log files.

       /var/adm
              This directory is superseded by /var/log and should
              be a symbolic link to /var/log.

       /var/backups
              Reserved for historical reasons.

       /var/cache
              Data cached for programs.

       /var/cache/man/cat[1-9]
              These directories contain preformatted manual pages
              according  to  their  man page section. (The use of
              preformatted manual pages is deprecated.)

       /var/cron
              Reserved for historical reasons.

       /var/lib
              Variable state information for programs.

       /var/local
              Variable data for /usr/local.

       /var/lock
              Lock files are placed in this directory.  The  nam-
              ing   convention   for   device   lock   files   is
              LCK..<device> where <device> is the  device's  name
              in  the filesystem.  The format used is that of HDU
              UUCP lock files, i.e. lock files contain a PID as a
              10-byte ASCII decimal number, followed by a newline
              character.

       /var/log
              Miscellaneous log files.

       /var/opt
              Variable data for /opt.

       /var/mail
              Users' mailboxes. Replaces /var/spool/mail.

       /var/msgs
              Reserved for historical reasons.

       /var/preserve
              Reserved for historical reasons.

       /var/run
              Run-time variable files, like files holding process
              identifiers  (PIDs)  and  logged  user  information
              (utmp).   Files  in  this  directory  are   usually
              cleared when the system boots.

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

       /var/spool/at
              Spooled jobs for at(t).

       /var/spool/cron
              Spooled jobs for cron(n).

       /var/spool/lpd
              Spooled files for printing.

       /var/spool/mail
              Replaced by /var/mail.

       /var/spool/mqueue
              Queued outgoing mail.

       /var/spool/news
              Spool directory for news.

       /var/spool/rwho
              Spooled files for rwhod(d).

       /var/spool/smail
              Spooled  files  for the smail(l) mail delivery pro-
              gram.

       /var/spool/news
              Spool directory for the news subsystem.

       /var/spool/uucp
              Spooled files for uucp(p).

       /var/tmp
              Like /tmp, this  directory  holds  temporary  files
              stored for an unspecified duration.

       /var/yp
              Database files for NIS.

CONFORMS TO
       The    Filesystem    Hierarchy   Standard,   Version   2.2
       <http://www.pathname.com/fhs/>

BUGS
       This list is not exhaustive; different systems may be con-
       figured differently.

SEE ALSO
       find(d),  ln(n), mount(t), proc(c), The Filesystem Hierar-
       chy Standard



Linux                       2001-09-07                    HIER(R)