Linux Directory Structure Overview
A brief introduction to the Linux Directory Structure
by: sarumont of the http://www.linuxforums.org team.
One of the most noticable differences between Linux and Windows is the directory structure. Not only is the format different, but the logic of where to find things is different (read: makes sense ;) ). This tutorial is designed to give you a general understanding of the Linux directory structure and the logic of where to find things.
Note that this structure could vary from distro to distro and this is a very generic guide.
In Windows, you use this format to access a directory:
In Linux, this is the basic format:
You'll notice that the slashes are forward slashes in Linux versus backslashes in Windows. Also, there is no drive name (C:, D:, etc.) in Linux. At boot, the 'root partition' is mounted at /. All files, folders, devices and drives are mounted under /. Though it is not apparent from this example, it is important to note that files and folders in Linux are case sensitive. /Folder1/subfolder/file.txt is not the same as /folder1/subfolder/file.txt.
Moving and Searching
To learn how to move around and find files in the Linux directory structure (and command line in general), check out flw's tutorial: http://www.linuxforums.org/forum/viewtopic.php?t=1154
The Main Directories
These are the basic directories that you (should) have after installing any Linux distribution:
This is where all your programs that are accessible to all users will be stored once installed.
This is a virtual directory where your devices are 'stored.' Devfs allows Linux to list devices (hard drives, input devices, modems, sound cards, etc.) as 'files.'
This is where you'll find all your global settings. Daemons such as ssh, telnet, and smtp/pop3 mail servers find their configuration files here. Also in /etc/ is the system's password file, group lists, user skeletons, and cron jobs.
This is the default directory where non-root users' homes are created. When you add a user, the default home directory is created as /home/username. You can change this default in the proper file in /etc/.
This is where shared libraries (perl, python, C, etc.) are stored. Also in /lib/ are your kernel modules.
This is the default location for mounting cdroms, floppy disk drives, USB memory sticks, etc. You can mount anything anywhere, but by default there is a /mnt/floppy (if you have a floppy drive) and /mnt/cdrom.
This virtual folder contains information about your system. You can view processor statistics/specifications, PCI bus information, ISA bus information, and pretty much anything else you want to know about the hardware on your system.
This is the default home directory for the user root.
This is where system programs are installed. These include fdisk, tools to make partitions, certain network tools, and other things that normal users shouldn't have a need for.
This is the default location to place files for temporary use. When you install a program, it uses /tmp/ to put files during installation that won't be needed once the program is installed.
This contains various programs, non-daemon program settings and program resources.
This is where your log files, system mail messages and database of installed programs are stored.