Two days later, there was Pooh, sitting
on his branch, dangling his legs, and there, beside him, were
four pots of honey... (A.A. Milne)
This chapter describes the important parts of a standard Linux
directory tree, based on the Filesystem Hierarchy Standard
Filesystem Hierarchy Standard (FHS)
. It
outlines the normal way of breaking the directory tree into separate
filesystems with different purposes and gives the motivation behind
this particular split. Not all Linux distributions follow this
standard slavishly, but it is generic enough to give you an
overview.BackgroundThis chapter is loosely based on the Filesystems
Hierarchy Standard (FHS)Filesystem Hierarchy Standard (FHS).
version 2.1, which attempts to
set a standard for how the directory tree in a Linux
system is organized. Such a standard has the advantage that it will
be easier to write or port software for Linux, and to administer
Linux machines, since everything should be in standardized places.
There is no authority behind the standard that forces anyone to
comply with it, but it has gained the support of many Linux
distributions. It is not a good idea to break with the FHS without
very compelling reasons. The FHS attempts to follow Unix tradition
and current trends, making Linux systems familiar to those with
experience with other Unix systems, and vice versa.This chapter is not as detailed as the FHS. A system
administrator should also read the full FHS for a complete
understanding.This chapter does not explain all files in detail. The
intention is not to describe every file, but to give an overview of
the system from a filesystem point of view. Further information on
each file is available elsewhere in this manual or in the Linux
manual pages.The full directory tree is intended to be breakable into
smaller parts, each capable of being on its own disk or partition,
to accommodate to disk size limits and to ease backup and other
system administration tasks. The major parts are the root
(/filesystem/ (root)),
/usrfilesystem/usr,
/varfilesystem/var, and
/homefilesystem/home filesystems
(see ). Each part has a
different purpose. The directory tree has been designed so that it
works well in a network of Linux machines which may share some parts
of the filesystems over a read-only device (e.g., a CD-ROM), or over
the network with NFSNetwork File System (NFS).The roles of the different parts of the directory tree are
described below.
The root filesystem
filesystem/ (root) is specific for
each machine (it is generally stored on a local disk,
although it could be a ramdisk or network drive as well) and
contains the files that are necessary for booting the system
up, and to bring it up to such a state that the other
filesystems may be mounted. The contents of the root
filesystem will therefore be sufficient for the single user
state. It will also contain tools for fixing a broken
system, and for recovering lost files
from backups. The /usrfilesystem/usr filesystem
contains all commands, libraries, manual pages, and other
unchanging files needed during normal operation. No files in
/usr should be specific for any given
machine, nor should they be modified during normal use. This
allows the files to be shared over the network, which can be
cost-effective since it saves disk space (there can easily
be hundreds of megabytes, increasingly multiple gigabytes in
/usr). It can make administration
easier (only the master /usr needs to
be changed when updating an application, not each machine
separately) to have /usr network mounted. Even if the
filesystem is on a local disk, it could be mounted
read-only, to lessen the chance of filesystem corruption
during a crash.The /varfilesystem/var
filesystem contains files that change, such as spool
directories (for mail, news, printers, etc), log files,
formatted manual pages, and temporary files. Traditionally
everything in /var has been somewhere
below /usrfilesystem/usr, but that made it
impossible to mount /usr read-only.
The /homefilesystem/home
filesystem contains the users' home directories, i.e., all
the real data on the system. Separating home directories to
their own directory tree or filesystem makes backups easier;
the other parts often do not have to be backed up, or at
least not as often as they seldom change. A big
/home might have to be broken across
several filesystems, which requires adding an extra naming
level below /home, for example
/home/students and
/home/staff.Although the different parts have been called filesystems
above, there is no requirement that they actually be on separate
filesystems. They could easily be kept in a single one if the
system is a small single-user system and the user wants to keep
things simple. The directory tree might also be divided into
filesystems differently, depending on how large the disks are, and
how space is allocated for various purposes. The important part,
though, is that all the standard names work;
even if, say, /varfilesystem/var and
/usrfilesystem/usr
are actually on the same partition, the names
/usr/lib/libc.a and
/var/log/messages must work, for example by
moving files below /var into
/usr/var, and making /var
a symlink to
/usr/var.The Unix filesystem structure groups files according to
purpose, i.e., all commands are in one place, all data files in
another, documentation in a third, and so on. An alternative would
be to group files files according to the program they belong to,
i.e., all Emacs files would be in one directory, all TeX in another,
and so on. The problem with the latter approach is that it makes it
difficult to share files (the program directory often contains both
static and sharable and changing and non-sharable files), and
sometimes to even find the files (e.g., manual pages in a huge
number of places, and making the manual page programs find all of
them is a maintenance
nightmare).The root filesystemThe root filesystemfilesystem/ (root) should generally be small, since
it contains very critical files and a small, infrequently
modified filesystem has a better chance of not getting corrupted.
A corrupted root filesystem will generally mean that the system
becomes unbootable except with special measures (e.g., from a
floppy), so you don't want to risk it.The root directory generally doesn't contain any files, except
perhaps on older systems where the standard boot image for the system,
usually called /vmlinuzbootingvmlinuz was kept there. (Most
distributions have moved those files into the
/bootfilesystem/boot directory. Otherwise, all files are kept
in subdirectories under the root filesystem:
/binfilesystem/binCommands needed during bootup
that might be used by normal users (probably after
bootup)./sbinfilesystem/sbinLike /bin, but the
commands are not intended for normal users, although they
may use them if necessary and allowed.
/sbin is not usually in the default
path of normal users, but will be in root's default
path./etcfilesystem/etcConfiguration files specific to the
machine./rootfilesystem/rootThe home directory for user root. This is
usually not accessible to other users on the
system/libfilesystem/libShared libraries needed by the programs on
the root filesystem./lib/modulesfilesystem/lib/modulesLoadable kernel modules, especially those
that are needed to boot the system when recovering from
disasters (e.g., network and filesystem
drivers)./devfilesystem/devDevice files. These are special files that
help the user interface with the various devices on the system.
/tmpfilesystem/tmpTemporary files. As the name suggests,
programs running often store temporary files in here.
/bootfilesystem/bootFiles used by the bootstrap loader,
e.g., LILOLILO or GRUBGRUB
. Kernel images are often kept here instead
of in the root directory. If there are many kernel
images, the directory can easily grow rather big, and it
might be better to keep it in a separate filesystem.
Another reason would be to make sure the kernel
images are within the first 1024 cylinders of an IDE
disk. This 1024 cylinder limit is no longer true in
most cases. With modern BIOSesBIOS and later versions of LILO
(the LInux LOader) the 1024 cylinder limit can be passed
with logical block addressing (LBA). See the
lilo manual page for more details.
/mntfilesystem/mntMount point for temporary mounts by
the system administrator. Programs aren't supposed to mount
on /mnt automatically.
/mnt might be divided into
subdirectories (e.g., /mnt/dosa might
be the floppy drive using an MS-DOS filesystem, and
/mnt/exta might be the same
with an ext2 filesystem)./procfilesystem/proc,
/usrfilesystem/usr,
/varfilesystem/var,
/homefilesystem/homeMount points for the other filesystems. Although
/proc does not reside on any disk in reality
it is still mentioned here. See the section about
/proc later in the chapter.
The /etc directoryThe /etcfilesystem/etc maintains a lot
of files. Some of them are described below. For others, you
should determine which program they belong to and read the manual
page for that program. Many networking configuration files are
in /etc as well, and are described in the
Networking Administrators' Guide.
/etc/rc or
/etc/rc.d or
/etc/rc?.dfilesystem/etc/etc/rc.dScripts or directories of scripts
to run at startup or when changing the run level.
See for further
information. /etc/passwdfilesystem/etc/etc/passwdThe user database, with fields giving the
username, real name, home directory, and other information
about each user. The format is documented in the
passwd manual page.
/etc/shadowfilesystem/etc/etc/shadow/etc/shadow is an
encrypted file the holds user passwords./etc/fdprmfilesystem/etc/etc/fdprmFloppy disk parameter table.
Describes what different floppy disk formats look
like. Used by setfdprmcommandssetfdprm. See the
setfdprm manual page for more
information. /etc/fstabfilesystem/etc/etc/fstabLists the filesystems mounted automatically
at startup by the mount -a command (in
/etc/rc or equivalent startup file).
Under Linux, also contains information about swap areas used
automatically by swapon -acommandsswapon. See and the mountcommandsmount
manual page for more information. Also
fstab usually has its own manual page in
section 5. /etc/groupfilesystem/etc/etc/groupSimilar to /etc/passwd,
but describes groups instead of users. See the
group manual page in section 5 for more
information. /etc/inittabfilesystem/etc/etc/inittabConfiguration file for
init. /etc/issuefilesystem/etc/etc/issueOutput by gettycommandsgetty before
the login prompt. Usually contains a short description or
welcoming message to the system. The contents are up to
the system administrator. /etc/magicfilesystem/etc/etc/magicThe configuration file
for filecommandsfile. Contains the
descriptions of various file formats based on
which file guesses the type of
the file. See the magic and
file manual pages for more information.
/etc/motdfilesystem/etc/etc/motdThe message of the day, automatically
output after a successful login. Contents are up to the
system administrator. Often used for getting information
to every user, such as warnings about planned downtimes.
/etc/mtabfilesystem/etc/etc/mtabList of currently mounted filesystems.
Initially set up by the bootup scripts, and updated
automatically by the mountcommandsmount
command. Used when a list of mounted filesystems is
needed, e.g., by the dfcommandsdf command.
/etc/login.defsfilesystem/etc/etc/login.defsConfiguration file for the
logincommandslogin command. The
login.defs file usually has a manual
page in section 5. /etc/printcapfilesystem/etc/etc/printcapLike /etc/termcap/etc/printcapfilesystem/etc/etc/termcap, but
intended for printers. However it uses different syntax.
The printcap has a manual page in
section 5. /etc/profilefilesystem/etc/etc/profile,
/etc/bash.rcfilesystem/etc/etc/bash.rc,
/etc/csh.cshrcfilesystem/etc/etc/csh.cshrcFiles executed at login or startup time
by the Bourneshellssh - Bourne, BASH
shellsbash - Bourne Again SHell,
or Cshells
csh - C SHell
shells. These allow the system
administrator to set global defaults for all users. Users
can also create individual copies of these in their home
directory to personalize their environment.
See the manual pages for the respective shells.
/etc/securettyfilesystem/etc/etc/securettyIdentifies secure terminals, i.e., the
terminals from which root is allowed to log in. Typically
only the virtual consoles are listed, so that it becomes
impossible (or at least harder) to gain superuser privileges
by breaking into a system over a modem or a network. Do not
allow root logins over a network. Prefer to log in as an
unprivileged user and use sucommandssu or
sudocommandssudo to gain root
privileges./etc/shellsfilesystem/etc/etc/shellsLists trusted shells. The
chshcommandschsh command allows users to change
their login shell only to shells listed in this file.
ftpdcommandsftpd, is the server process that provides
FTP services for a machine, will check that the user's
shell is listed in /etc/shells
and will not let people log in unless the shell is
listed there. /etc/termcapfilesystem/etc/etc/termcapThe terminal capability database.
Describes by what ``escape sequences'' various terminals
can be controlled. Programs are written so that instead
of directly outputting an escape sequence that only
works on a particular brand of terminal, they look up
the correct sequence to do whatever it is they want to
do in /etc/termcap. As a result
most programs work with most kinds of terminals.
See the termcap, curs_termcap,
and terminfo manual pages for
more information. The /dev directoryThe /devfilesystem/dev directory contains
the special device files for all the devices.
The device files are created during
installation, and later with the /dev/MAKEDEVcommandsMAKEDEV
script. The /dev/MAKEDEV.local is a script
written by the system administrator that creates local-only device
files or links (i.e. those that are not part of the standard
MAKEDEV, such as device files for some
non-standard device driver).This list which follows is by no means exhaustive or as
detailed as it could be. Many of these device files will need
support compiled into your kernel for the hardware. Read the kernel
documentation to find details of any particular device.If you think there are other devices which should be included
here but aren't then let me know. I will try to include them in the
next revision./dev/dspfilesystem/dev/dev/dspDigital Signal Processor. Basically this forms
the interface between software which produces sound and your
soundcard. It is a character device on major node 14 and minor
3./dev/fd0filesystem/dev/dev/fd0The first floppy drive. If you are lucky enough
to have several drives then they will be numbered sequentially.
It is a character device on major node 2 and minor
0./dev/fb0filesystem/dev/dev/fb0The first framebuffer device. A framebuffer is
an abstraction layer between software and graphics hardware.
This means that applications do not need to know about what kind
of hardware you have but merely how to communicate with the
framebuffer driver's API (Application Programming Interface)
which is well defined and standardized. The framebuffer is a
character device and is on major node 29 and minor
0./dev/hdafilesystem/dev/dev/hda/dev/hda is the master IDE
drive on the primary IDE controller.
/dev/hdbfilesystem/dev/dev/hdb the slave drive on the
primary controller. /dev/hdcfilesystem/dev/dev/hdc, and /dev/hddfilesystem/dev/dev/hdd are the master and slave devices
on the secondary controller respectively. Each disk is divided
into partitions. Partitions 1-4 are primary partitions and
partitions 5 and above are logical partitions inside extended
partitions. Therefore the device file which references each
partition is made up of several parts. For example
/dev/hdc9filesystem/dev/dev/hdc9 references partition 9 (a logical
partition inside an extended partition type) on the master IDE
drive on the secondary IDE controller. The major and minor node
numbers are somewhat complex. For the first IDE controller all
partitions are block devices on major node 3. The master drive
hdafilesystem/dev/dev/hda is at minor 0 and the
slave drive hdbfilesystem/dev/dev/hdb is at minor 64. For
each partition inside the drive add the partition number to the minor
minor node number for the drive. For example
/dev/hdb5 is major 3, minor 69 (64 + 5 =
69). Drives on the secondary interface are handled the same way,
but with major node 22./dev/ht0filesystem/dev/dev/ht0The first IDE tape drive. Subsequent drives are
numbered ht1 etc. They are character
devices on major node 37 and start at minor node 0 for
ht0 1 for ht1
etc./dev/js0filesystem/dev/dev/js0The first analogue joystick. Subsequent joysticks
are numbered js1, js2
etc. Digital joysticks are called djs0,
djs1 and so on. They are character devices
on major node 15. The analogue joysticks start at minor node 0
and go up to 127 (more than enough for even the most fanatic
gamer). Digital joysticks start at minor node
128./dev/lp0filesystem/dev/dev/lp0The first parallel printer device. Subsequent
printers are numbered lp1,
lp2 etc. They are character devices on
major mode 6 and minor nodes starting at 0 and numbered
sequentially./dev/loop0filesystem/dev/dev/loop0The first loopback device. Loopback devices are
used for mounting filesystems which are not located on other
block devices such as disks. For example if you wish to mount
an iso9660 CD ROM image without burning it to CD then you need
to use a loopback device to do so. This is usually transparent
to the user and is handled by the mountcommandsmount
command. Refer to the manual pages for mount
and losetupcommandslosetup.
The loopback devices are block
devices on major node 7 and with minor nodes starting at 0 and
numbered sequentially./dev/md0filesystem/dev/dev/md0First metadisk group. Metadisks are related to
RAID (Redundant Array of Independent Disks) devices. Please
refer to the most current RAID HOWTO at the LDP for more details.
This can be found at
http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html.
Metadisk devices are block devices on major node 9 with minor
nodes starting at 0 and numbered
sequentially./dev/mixerfilesystem/dev/dev/mixerThis is part of the OSS (Open Sound System)
Open Sound System (OSS) driver. Refer to the OSS documentation at http://www.opensound.com
for more details. It is a character device on major node 14,
minor node 0./dev/nullfilesystem/dev/dev/nullThe bit bucket. A black hole where you can send
data for it never to be seen again. Anything sent to
/dev/null will disappear. This can be
useful if, for example, you wish to run a command but not have
any feedback appear on the terminal. It is a character device
on major node 1 and minor node 3./dev/psauxfilesystem/dev/dev/psauxThe PS/2 mouse port. This is a character device
on major node 10, minor node 1./dev/pdafilesystem/dev/dev/pdaParallel port IDE disks. These are named
similarly to disks on the internal IDE controllers
(/dev/hd*). They are block devices on major
node 45. Minor nodes need slightly more explanation here. The
first device is /dev/pda and it is on minor
node 0. Partitions on this device are found by adding the
partition number to the minor number for the device. Each
device is limited to 15 partitions each rather than 63 (the
limit for internal IDE disks). /dev/pdbfilesystem/dev/dev/pdb
minor nodes start at 16, /dev/pdcfilesystem/dev/dev/pdc
at 32 and /dev/pddfilesystem/dev/dev/pdd at 48. So for example the
minor node number for /dev/pdc6 would be 38 (32 +
6 = 38). This scheme limits you to 4 parallel disks of 15
partitions each./dev/pcd0filesystem/dev/dev/pcd0Parallel port CD ROM drives. These are numbered
from 0 onwards. All are block devices on major node 46.
/dev/pcd0 is on minor node 0 with
subsequent drives being on minor nodes 1, 2, 3
etc./dev/pt0filesystem/dev/dev/pt0Parallel port tape devices. Tapes do not have
partitions so these are just numbered sequentially. They are
character devices on major node 96. The minor node numbers
start from 0 for /dev/pt0, 1 for
/dev/pt1filesystem/dev/dev/pt1, and so on.
/dev/parport0filesystem/dev/dev/parport0The raw parallel ports. Most devices which are
attached to parallel ports have their own drivers. This is a
device to access the port directly. It is a character device on
major node 99 with minor node 0. Subsequent devices after the
first are numbered sequentially incrementing the minor
node./dev/randomfilesystem/dev/dev/random or
/dev/urandomfilesystem/dev/dev/urandomThese are kernel random number generators.
/dev/random is a non-deterministic
generator which means that the value of the next number cannot
be guessed from the preceding ones. It uses the entropy of the
system hardware to generate numbers. When it has no more
entropy to use then it must wait until it has collected more
before it will allow any more numbers to be read from it.
/dev/urandom works similarly. Initially it
also uses the entropy of the system hardware, but when there is
no more entropy to use it will continue to return numbers using
a pseudo random number generating formula. This is considered
to be less secure for vital purposes such as cryptographic key
pair generation. If security is your overriding concern then
use /dev/random, if speed is more important
then /dev/urandom works fine. They are
character devices on major node 1 with minor nodes 8 for
/dev/random and 9 for
/dev/urandom./dev/sdafilesystem/dev/dev/sdaThe first SCSI drive on the first SCSI bus.
The following drives are named similar to IDE drives.
/dev/sdbfilesystem/dev/dev/sdb is the second SCSI drive,
/dev/sdcfilesystem/dev/dev/sdd is the third SCSI drive, and so
forth./dev/ttyS0filesystem/dev/dev/ttyS0The first serial port. Many times this it the port used
to connect an external modem to your system./dev/zerofilesystem/dev/dev/zeroThis is a simple way of getting many 0s. Every
time you read from this device it will return 0. This can be
useful sometimes, for example when you want a file of fixed
length but don't really care what it contains. It is a
character device on major node 1 and minor node
5.The /usrfilesystem filesystem.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/localfilesystem/usr/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
more information).
/usr/X11R6filesystem/usr/usr/X11R6.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.
/usr/binfilesystem/usr/usr/bin.Almost all user commands. Some commands are
in /bin or in
/usr/local/bin.
/usr/sbinfilesystem/usr/usr/sbinSystem administration commands that are not
needed on the root filesystem, e.g., most server programs.
/usr/share/manfilesystem/usr/usr/share/man,
/usr/share/infofilesystem/usr/usr/share/info,
/usr/share/docfilesystem/usr/usr/share/docManual pages, GNU Info documents, and
miscellaneous other documentation files, respectively.
/usr/includefilesystem/usr/usr/includeHeader files for the C
programming language. This should actually be below
/usr/libfilesystem/usr/usr/lib for consistency,
but the tradition is overwhelmingly in support for this name.
/usr/libfilesystem/usr/usr/libUnchanging 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.
/usr/localfilesystem/usr/usr/localThe 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
locally.The /var filesystemThe /varfilesystem/var contains data that is
changed when the system is running normally. It is specific for each
system, i.e., not shared over the network with other computers.
/var/cache/manfilesystem/var/var/cache/manA cache for man pages that are formatted on
demand. The source for manual pages is usually stored in
/usr/share/man/man?/filesystem/usr/usr/share/man/man
(where ? is the manual section. See the manual page for
mancommandsman
in section 7); some manual pages
might come with a pre-formatted version, which might be
stored in /usr/share/man/cat*filesystem/usr/usr/share/man/cat. Other
manual pages need to be formatted when they are first
viewed; the formatted version is then stored in
/var/cache/man so that the next person
to view the same page won't have to wait for it to be
formatted. /var/gamesfilesystem/var/var/gamesAny variable data belonging to games in
/usr should be placed here. This is in
case /usr is mounted read only.
/var/libfilesystem/var/var/libFiles that change while the system is
running normally./var/localfilesystem/var/var/localVariable data for programs that are
installed in /usr/localfilesystem/usr/usr/local (i.e.,
programs that have been installed by the system
administrator). Note that even locally installed
programs should use the other /var
directories if they are appropriate, e.g.,
/var/lockfilesystem/var/var/local./var/lockfilesystem/var/var/lockLock files. Many programs
follow a convention to create a lock file in
/var/lock to indicate that they
are using a particular device or file. Other programs
will notice the lock file and won't attempt to use the
device or file./var/logfilesystem/var/var/logLog files from various programs, especially
logincommandslogin(/var/log/wtmpfilesystem/var/var/log/wtmplogs/var/log/wtmp, which logs all logins and logouts into the system) and
syslogcommandssyslog(/var/log/messagesfilesystem/var/var/log/messageslogs/var/log/messages, where all kernel
and system program message are usually stored). Files in
/var/log can often grow indefinitely,
and may require cleaning at regular
intervals./var/mailfilesystem/var/var/mailThis is the FHS approved location for user
mailbox files. Depending on how far your distribution has
gone towards FHS compliance, these files may still be held
in /var/spool/mailfilesystem/var/var/spool/mail.
/var/runfilesystem/var/var/runFiles that contain information about the
system that is valid until the system is next booted.
For example, /var/run/utmpfilesystem/var/var/utmp
contains information about people currently logged
in./var/spoolfilesystem/var/var/spoolDirectories for news, printer queues, and
other queued work. Each different spool has its own
subdirectory below /var/spool, e.g.,
the news spool is in /var/spool/newsfilesystem/var/var/spool/news.
Note that some installations which are not fully compliant
with the latest version of the FHS may have user mailboxes
under /var/spool/mailfilesystem/var/var/spool/mail.
/var/tmpfilesystem/var/var/tmpTemporary files that are large
or that need to exist for a longer time than
what is allowed for /tmpfilesystem/tmp.
(Although the system administrator might not allow
very old files in /var/tmp
either.)The /proc filesystemThe /procfilesystem/proc filesystem contains a
illusionary filesystem. It does not exist on a disk. Instead, the
kernel creates it in memory. It is used to provide information
about the system (originally about processes, hence the name). Some
of the more important files and directories are explained below.
The /proc filesystem is described in more
detail in the proc manual page.
/proc/1filesystem/proc/proc/1A directory with information about
process number 1. Each process has a directory below
/proc with the name being its process
identification number. /proc/cpuinfofilesystem/proc/proc/cpuinfoInformation about the processor,
such as its type, make, model, and performance.
/proc/devicesfilesystem/proc/proc/devicesList of device drivers configured into the
currently running kernel. /proc/dmafilesystem/proc/proc/dmaShows which DMA channels are being used
at the moment. /proc/filesystemsfilesystem/proc/proc/filesystemsFilesystems configured into the kernel.
/proc/interruptsfilesystem/proc/proc/interruptsShows which interrupts are
in use, and how many of each there have been.
/proc/ioportsfilesystem/proc/proc/ioportsWhich I/O ports are in use at the moment.
/proc/kcorefilesystem/proc/proc/kcoreAn image of the physical memory of
the system. This is exactly the same size as your
physical memory, but does not really take up that much
memory; it is generated on the fly as programs access it.
(Remember: unless you copy it elsewhere, nothing under
/procfilesystem/proc takes up any disk space
at all.) /proc/kmsgfilesystem/proc/proc/kmsgMessages output by the kernel.
These are also routed to syslog.
/proc/ksymsfilesystem/proc/proc/ksymsSymbol table for the kernel.
/proc/loadavgfilesystem/proc/proc/loadavgThe `load average' of the system; three
meaningless indicators of how much work the system has
to do at the moment. /proc/meminfofilesystem/proc/proc/meminfoInformation about memory usage, both
physical and swap. /proc/modulesfilesystem/proc/proc/modulesWhich kernel modules are loaded at
the moment. /proc/netfilesystem/proc/proc/netStatus information about network
protocols. /proc/selffilesystem/proc/proc/selfA symbolic link to the process
directory of the program that is looking at
/procfilesystem/proc. When two processes look at
/proc, they get different links.
This is mainly a convenience to make it easier
for programs to get at their process directory.
/proc/statfilesystem/proc/proc/statVarious statistics about the system, such
as the number of page faults since the system was booted.
/proc/uptimefilesystem/proc/proc/uptimeThe time the system has been up.
/proc/versionfilesystem/proc/proc/versionThe kernel version.
Note that while the above files tend to be easily readable
text files, they can sometimes be formatted in a way that is not
easily digestible. There are many commands that do little more than
read the above files and format them for easier understanding. For
example, the freecommandsfree program reads
/proc/meminfofilesystem/proc/proc/meminfo converts the amounts given in
bytes to kilobytes (and adds a little more information, as
well).