Table of Contents
The Linux directory structure is a standardized layout for organizing files and directories on Linux systems. It is based on the Filesystem Hierarchy Standard (FHS), which defines the recommended placement of files and directories for system-wide consistency.
The Linux directory structure is organized around the root directory, represented by the forward slash (/
). All other files and directories reside within the root directory, forming a hierarchical tree structure.
These are the common top-level directories associated with the root directory:
Directories | Description |
---|---|
/bin | binary or executable programs. |
/etc | system configuration files. |
/home | home directory. It is the default current directory. |
/opt | optional or third-party software. |
/tmp | temporary space, typically cleared on reboot. |
/usr | User related programs. |
/var | log files. |
Some other directories in the Linux system:
Directories | Description |
---|---|
/boot | It contains all the boot-related information files and folders such as conf, grub, etc. |
/dev | It is the location of the device files such as dev/sda1, dev/sda2, etc. |
/lib | It contains kernel modules and a shared library. |
/lost+found | It is used to find recovered bits of corrupted files. |
/media | It contains subdirectories where removal media devices are inserted. |
/mnt | It contains temporary mount directories for mounting the file system. |
/proc | It is a virtual and pseudo-file system to contains info about the running processes with a specific process ID or PID. |
/run | It stores volatile runtime data. |
/sbin | binary executable programs for an administrator. |
/srv | It contains server-specific and server-related files. |
/sys | It is a virtual file system for modern Linux distributions to store and allows modification of the devices connected to the system. |
Exploring directories and their usability:
We know that Linux is a very complex system that requires an efficient way to start, stop, maintain and reboot a system, unlike Windows operating system. In the Linux system some well-defined configuration files, binaries, main pages information files are available for every process.
Linux Kernel File:
- /boot/vmlinux – The Linux kernel file.
Device Files:
- /dev/hda – Device file for the first IDE HDD.
- /dev/hdc – A pseudo-device that output garbage output is redirected to /dev/null.
System Configuration Files:
Configuration Files | Description |
---|---|
/etc/bashrc | It is used by bash shell that contains system defaults and aliases. |
/etc/crontab | A shell script to run specified commands on a predefined time interval. |
/etc/exports | It contains information on the file system available on the network. |
/etc/fstab | Information of the Disk Drive and their mount point. |
/etc/group | It is a text file to define Information of Security Group. |
/etc/grub.conf | It is the grub bootloader configuration file. |
/etc/init.d | Service startup Script. |
/etc/lilo.conf | It contains lilo bootloader configuration file. |
/etc/hosts | Information of IP and corresponding hostnames |
/etc/hosts.allow | It contains a list of hosts allowed accessing services on the local machine. |
/etc/host.deny | List of hosts denied accessing services on the local machine. |
/etc/inittab | INIT process and their interaction at the various run levels. |
/etc/issue | Allows editing the pre-login message. |
/etc/modules.conf | It contains the configuration files for the system modules. |
/etc/motd | It contains the message of the day. |
/etc/mtab | Currently mounted blocks information. |
/etc/passwd | It contains username, password of the system, users in a shadow file. |
/etc/printcap | It contains printer Information. |
/etc/profile | Bash shell defaults. |
/etc/profile.d | It contains other scripts like application scripts, executed after login. |
/etc/rc.d | It avoids script duplication. |
/etc/rc.d/init.d | Run Level Initialisation Script. |
/etc/resolv.conf | DNS being used by System. |
/etc/security | It contains the name of terminals where root login is possible. |
/etc/skel | Script that initiates new user home directory. |
/etc/termcap | An ASCII file that defines the behavior of different types of the terminal. |
/etc/X11 | Directory tree contains all the conf files for the X-window System. |
User Related Files:
User Related Files | Descriptions |
---|---|
/usr/bin | It contains most of the executable files. |
/usr/bin/X11 | Symbolic link of /usr/bin. |
/usr/include | It contains standard files used by C program. |
/usr/share | It contains architecture independent shareable text files. |
/usr/lib | It contains object files and libraries. |
/usr/sbin | It contains commands for Super User, for System Administration. |
Virtual and Pseudo Process Related Files:
Virtual and Pseudo Process Related Files | Descriptions |
---|---|
/proc/cpuinfo | CPU Information |
/proc/filesystems | It keeps useful info about the processes that are currently running. |
/proc/interrupts | it keeps the information about the number of interrupts per IRQ. |
/proc/ioports | Contains all the Input and Output addresses used by devices on the server |
/proc/meminfo | It reports the memory usage information. |
/proc/modules | Currently using kernel module. |
/proc/mount | Mounted File-system Information. |
/proc/stat | It displays the detailed statistics of the current system. |
/proc/swaps | It contains swap file information. |
Version Information File:
- /version – It displays the Linux version information.
Log Files:
Log Files | Descriptions |
---|---|
/var/log/lastlog | It stores user’s last login info. |
/var/log/messages | It has all the global system messages |
/var/log/wtmp | It keeps a history of login and logout information. |