As
you may have noticed, Linux organizes its files differently from
Windows.Everything in linux is a file, it may be a hard disk drive or
cd drive or any sortware configuration file everything is kept in
Linux as a text file. You can configure any device simply by editing
these text files. First the directory structure may seem unlogical
and strange and you have no idea where all the programs, icons,
config files, and others are. This is by no means a complete list of
all the directories on Linux, but it shows you the most interesting
places in your file system.
</>
(A Slash)
The
root directory. The starting point of your directory structure. This
is where the Linux system begins. Every other file and directory on
your system is under the root directory. Usually the root directory
contains only subdirectories, so it's a bad idea to store single
files directly under root.
Don't
confuse the root
directory with
the root user account, root password (which obviously is the root
user's password) or root user's home directory.
</boot>
As
the name suggests, this is the place where Linux keeps information
that it needs when booting up. For example, this is where the Linux
kernel is kept. If you list the contents of /boot
,
you'll see a file called vmlinuz
-
that's the kernel.
</etc>
The
configuration files for the Linux system. Most of these files are
text files and can be edited by hand. Some interesting stuff in this
directory:
/etc/inittab
A
text file that describes what processes are started at system bootup
and during normal operation. For example, here you can determine if
you want the X Window System to start automatically at bootup, and
configure what happens when a user presses Ctrl+Alt+Del.
/etc/fstab
This
file contains descriptive information about the various file systems
and their mount points, like floppies, cdroms, and so on.
/etc/passwd
A
file that contains various pieces of information for each user
account. This is where the users are defined.
</bin,
/usr/bin>
These
two directories contain a lot of programs (binaries, hence the
directory's name) for the system. The /bin
directory
contains the most important programs that the system needs to
operate, such as the shells, ls
,
grep
,
and other essential things. /usr/bin
in
turn contains applications for the system's users. However, in some
cases it really doesn't make much difference if you put the program
in /bin
or
/usr/bin
.
</sbin,
/usr/sbin>
Most
system administration programs are stored in these directories. In
many cases you must run these programs as the root user.
</usr>
This
directory contains user applications and a variety of other things
for them, like their source codes, and pictures, docs, or config
files they use. /usr
is
the largest directory on a Linux system, and some people like to have
it on a separate partition. Some interesting stuff in /usr
:
/usr/doc
Documentation
for the user apps, in many file formats.
/usr/share
Config
files and graphics for many user apps.
/usr/src
Source
code files for the system's software, including the Linux kernel.
/usr/include
Header
files for the C compiler. The header files define structures and
constants that are needed for building most standard programs. A
subdirectory under /usr/include
contains
headers for the C++ compiler.
/usr/X11R6
The
X Window System and things for it. The subdirectories under
/usr/X11R6
may
contain some X binaries themselves, as well as documentation, header
files, config files, icons, sounds, and other things related to the
graphical programs.
</usr/local>
This
is where you install apps and other files for use on the local
machine. If your machine is a part of a network, the /usr
directory
may physically be on another machine and can be shared by many
networked Linux workstations. On this kind of a network, the
/usr/local
directory
contains only stuff that is not supposed to be used on many machines
and is intended for use at the local machine only.
Most
likely your machine isn't a part of a network like this, but it
doesn't mean that /usr/local
is
useless. If you find interesting apps that aren't officially a part
of your distro, you should install them in /usr/local
.
For example, if the app would normally go to /usr/bin
but
it isn't a part of your distro, you should install it in
/usr/local/bin
instead.
When you keep your own programs away from the programs that are
included in your distro, you'll avoid confusion and keep things nice
and clean.
</lib>
The
shared libraries for programs that are dynamically linked. The shared
libraries are similar to DLL's on Windows.
</home>
This
is where users keep their personal files. Every user has their own
directory under /home
,
and usually it's the only place where normal users are allowed to
write files. You can configure a Linux system so that normal users
can't even list the contents of other users' home directories. This
means that if your family members have their own user accounts on
your Linux system, they won't see all the w4r3z you keep in your home
directory. ;-)
</root>
The
superuser's (root's) home directory. Don't confuse this with the root
directory (/) of a Linux system.
</var>
This
directory contains variable data that changes constantly when the
system is running. Some interesting subdirectories:
/var/log
A
directory that contains system log files. They're updated when the
system runs, and checking them out can give you valuable info about
the health of your system. If something in your system suddenly goes
wrong, the log files may contain some info about the situation.
/var/mail
Incoming
and outgoing mail is stored in this directory.
/var/spool
This
directory holds files that are queued for some process, like
printing.
</tmp>
Programs
can write their temporary files here.
</dev>
The
devices that are available to a Linux system. Remember that in Linux,
devices are treated like files and you can read and write devices
like they were files. For example, /dev/fd0
is
your first floppy drive, /dev/cdrom
is
your CD drive, /dev/hda
is
the first IDE hard drive, and so on. All the devices that a Linux
kernel can understand are located under /dev
,
and that's why it contains hundreds of entries.
</mnt>
This
directory is used for mount points. The different physical storage
devices (like the hard disk drives, floppies, CD-ROM's) must be
attached to some directory in the file system tree before they can be
accessed. This attaching is called mounting,
and the directory where the device is attached is called the mount
point.
The
/mnt
directory
contains mount points for different devices, like /mnt/floppy
for
the floppy drive, /mnt/cdrom
for
the CD-ROM, and so on. However, you're not forced to use the
/mnt
directory
for this purpose, you can use whatever directory you wish. Actually
in some distros, like Debian and SuSE, the default is to use /floppy
and
/cdrom
as
mount points instead of directories under /mnt
.
</proc>
This
is a special directory. Well, actually /proc is just a virtual
directory, because it doesn't exist at all! It contains some info
about the kernel itself. There's a bunch of numbered entries that
correspond to all processes running on the system, and there are also
named entries that permit access to the current configuration of the
system. Many of these entries can be viewed.
</lost+found>
Here
Linux keeps the files that it restores after a system crash or when a
partition hasn't been unmounted before a system shutdown. This way
you can recover files that would otherwise have been lost.
</media>
mounted
(or loaded) devices such as cdroms, digital cameras, etc.
</opt>
location
for “optionally” installed programs
</proc>
dynamic
directory including information about and listing of processes
</sys>
contains
information about the system
Resources: