For convenience, the Linux file system is usually thought of in
a tree structure. On a standard Linux system you will find the
layout generally follows the scheme presented below.
Figure 3-1. Linux file system layout
This is a layout from a RedHat system. Depending on the system
admin, the operating system and the mission of the UNIX machine,
the structure may vary, and directories may be left out or added at
will. The names are not even required; they are only a
The tree of the file system starts at the trunk or
slash, indicated by a forward slash (/). This directory,
containing all underlying directories and files, is also called the
root directory or "the root" of
the file system.
Directories that are only one level below the root directory are
often preceded by a slash, to indicate their position and prevent
confusion with other directories that could have the same name.
When starting with a new system, it is always a good idea to take a
look in the root directory. Let's see what you could run into:
emmy:~> cd /
bin/ dev/ home/ lib/ misc/ opt/ root/ tmp/ var/
boot/ etc/ initrd/ lost+found/ mnt/ proc/ sbin/ usr/
Table 3-2. Subdirectories of the root directory
||Common programs, shared by the
system, the system administrator and the users.
||The startup files and the kernel,
vmlinuz. In some recent distributions
also grub data. Grub is the GRand Unified Boot loader and is an attempt to
get rid of the many different boot-loaders we know today.
||Contains references to all the CPU
peripheral hardware, which are represented as files with special
||Most important system
configuration files are in /etc, this
directory contains data similar to those in the Control Panel in
||Home directories of the common
||(on some distributions)
Information for booting. Do not remove!
||Library files, includes files for
all kinds of programs needed by the system and the users.
||Every partition has a lost+found in its upper directory. Files that were
saved during failures are here.
||For miscellaneous purposes.
||Standard mount point for external
file systems, e.g. a CD-ROM or a digital camera.
||Standard mount point for entire
remote file systems
||Typically contains extra and third
||A virtual file system containing
information about system resources. More information about the
meaning of the files in proc is obtained
by entering the command man proc in a terminal window. The file
proc.txt discusses the virtual file
system in detail.
||The administrative user's home
directory. Mind the difference between /, the root directory and
/root, the home directory of the root user.
||Programs for use by the system and
the system administrator.
||Temporary space for use by the
system, cleaned upon reboot, so don't use this for saving any
||Programs, libraries, documentation
etc. for all user-related programs.
||Storage for all variable files and
temporary files created by users, such as log files, the mail
queue, the print spooler area, space for temporary storage of files
downloaded from the Internet, or to keep an image of a CD before
How can you find out which partition a directory is on? Using
the df command with a dot (.) as an option
shows the partition the current directory belongs to, and informs
about the amount of space used on this partition:
sandra:/lib> df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/hda7 980M 163M 767M 18% /
As a general rule, every directory under the root directory is
on the root partition, unless it has a separate entry in the full
listing from df (or df
-h with no other options).
Read more in man hier.