.\" (c) 1993 by Thomas Koenig (ig25@rz.uni-karlsruhe.de) .\" This file can be distributed under the terms of the GNU General Public .\" License. .\" Modified Sun Jul 25 11:05:58 1993 by Rik Faith (faith@cs.unc.edu) .TH HIER 7 "April 24, 1993" "Linux" "Linux Programmer's Manual" .SH NAME hier \- Description of the file system hierarchy .SH DESCRIPTION A typical Linux system has, among others, the following directories: .TP .I / This is the root directory. This is where the whole tree starts. .TP .I /bin This directory contains executable programs which are executed often, are needed to bring the system up or repair it. .TP .I /dev Special or device files, which refer to physical devices. See mknod(1). .TP .I /dos If both MS\-DOS and Linux are run on one computer, this is a typical place to mount a DOS file system. .TP .I /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 .BR $PATH . .TP .I /etc/skel When a new user account is created, files from this directory are usually copied into the user's home directory. .TP .I /etc/lilo The Linux Loader for booting the system goes here. .TP .I /install This is used by some installations scripts to keep track of which packages have been installed. .TP .I /lib Frequently\-used object code libaries, including dynamic libraries, which are linked at the time an executable starts up, plus some executables which usually are not called directly. .TP .I /proc This is the directory where information about running processes can be obtained. .TP .I /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. .TP .I /proc/[0-9]+/fd A directory containing the file descriptors associated with the process. .TP .I /proc/[0-9]+/lib A directory containing the dynamic libraries associated with a process. .TP .I /proc/self This is a link to the directory associated with the calling process. .TP .I /tmp This directory contains temporary files which may be deleted with no notice, such as by a regular job or at system bootup. .TP .I /user This often is an empty directory, which can be used as a mount point for floppy disks. .TP .I /usr Less\-frequently used commands and other things; this is often a mount point for a separate partition or volume. .TP .I /usr/TeX The TeX typesetting system. .TP .I /usr/TeX/bin Binary commands for the TeX system. .I /usr/TeX/lib This contains data files connected with TeX, and may contain further subdirectories. .TP .I /usr/TeX/man Manual pages with the TeX system. .TP .I /usr/TeX/src Sources associates with TeX. .TP .I /usr/X386 The X-\Windows system. .TP .I /usr/X386/bin Binaries which belong to the X\-Windows system; often, there is a symbolic link from the more traditional .I /usr/bin/X11 to here. .TP .I /usr/X386/lib Data files associated with the X\-Windows system. .TP .I /usr/X386/lib/X11 These contain miscellaneous files needed to run X; among them configuration files. Often, there is a symbolic link from .I /usr/lib/X11 to this directory. .TP .I /usr/adm This often contains various logfiles. .TP .I /usr/bin This contains binaries which are not needed so often, or are not needed for bringing the system up or repairing it. The descision wether to put something in .I /bin or .I /usr/bin shoud be guided by the simple consideration: "If I put it in .I /usr/bin and .I /usr is not available on boot, do I still get the system up?" .TP .I /usr/bin/X11 is the traditional place to look for X11 executables; on Linux, it usually is a symbolic link to .IR /usr/X386/bin . .TP .I /usr/g++-include Include files to use with the GNU C++ compiler. .TP .I /usr/homes This contains the home directories for normal users. .TP .I /usr/include Include files for the C compiler. .TP .I /usr/include/X11 Incude files for the C compiler and the X\-Windows system. .TP .I /usr/include/asm Include files which declare some assembler functions. This should be a symbolic link to .IR /usr/src/linux/include/asm . .TP .I /usr/include/linux This contains information which may change from system release to system release and should be a symbolic link to .I /usr/src/linux/include/linux to get at operating system specific information. .TP .I /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. .TP .I /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 .IR /usr/X386/lib/X11 . .TP .I /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. .TP .I /usr/lib/X11/config This directory is used for the .BR imake (1) utility which incorporates information about the system into Makefiles. .TP .I /usr/lib/X11/twm Files for the .BR twm (1) window manager. .TP .I /usr/lib/X11/xinit Files for starting up the X Windows system. .TP .I /usr/lib/gcc-lib contains configuration files for the system's C compiler, .BR gcc (1). .TP .I /usr/lib/groff Files for the groff document formatting system. .TP .I /usr/lib/uucp Files for .BR uucp (1). .TP .I /usr/lib/zoneinfo Files for timezone information. .TP .I /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. .TP .I /usr/local/bin Binaries for programs local to the site go there. .TP .I /usr/local/lib Files associated with locally installed programs go there. .TP .I /usr/local/man Manpages associated with locally installed programs go there. .TP .I /usr/man Manpages go in there, into their subdirectories. .TP .I /usr/man/cat[1-9] These directories contain preformatted manual pages according to their manpage section. .TP .I /usr/man/man[1-9] These directories contain manual pagaes which are in source code form. .TP .I /usr/openwin Files associated with the Open Windows Window manager for X go there. .TP .I /usr/preserve This is where .BR vi (1) saves edit sessions so they can be restored later. .TP .I /usr/spool Spooled (or queued) files for various programs. .TP .I /usr/spool/atjobs Spooled jobs for .BR at (1). .TP .I /usr/spool/cron Spooled jobs for .BR cron (1). .TP .I /usr/spool/lp1 Spooled files for a printer. .TP .I /usr/spool/mail User's mailboxes. .TP .I /usr/spool/smail Spooled files for the .BR smail (1) mail delivery program. .TP .I /usr/spool/uucp Spooled files for .BR uucp (1). .TP .I /usr/src Source files for different parts of the system. .TP .I /usr/src/libc-linux Sources for the C library. .TP .I /usr/src/linux This contains the sources for the operating system itself. .TP .I /usr/tmp An alternative place to store temporary files; often used if the files will be huge. .TP .I /var On soqme 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 .I /usr only contains static files. Often, .I /var is just a symbolic link to .IR /usr . .SH "CONFORMS TO" The layout of this file system generally follows System V conventions. .SH BUGS This list is not exhaustive; different systems may be configured differently. .SH SEE ALSO .BR find "(1), " ln "(1), " mount (1)