Skip to main content

LPI E - File Hierarch

LPI E - Scripting

4.3 Where Data is Stored

Review of Topics:
Various types of information stored on a Linux system
Part 2 of 2:  Part 1 - A Detailed Look

The Linux operating system is well-known for its structured and hierarchical file system. The system is organized in a way that makes it easy to find, organize, and access files by using specific directories. 

In this blog post, we will explore the file structure of the Linux operating system and explain why files are stored in the specific directories and which directories are system versus user.

Overview of the Linux File System

The Linux file system is hierarchical, which means that it is arranged in a tree-like structure. At the top of the hierarchy is the root directory, represented by a forward slash (/). All other directories and files are located within this root directory.

There are several directories in the Linux file system, and each directory has a specific purpose. For example, 

  1. the /bin directory contains essential system binaries (i.e., compiled executable programs)
  2. the /etc directory stores system configuration files, a
  3. the /home directory contains the home directories of the system's users

System Directories

Several directories in the Linux file system are used by the operating system itself, and these directories are known as system directories. The system directories contain important files and configurations necessary for the operating system to function correctly.

One of the essential system directories is the /bin directory, which contains essential system binaries. These are the executable programs that are necessary for the operating system to function correctly, such as ls, cd, and mkdir.

Another essential system directory is the /etc directory, which stores system configuration files. The files in this directory include configuration files for the network, system startup scripts, and more.

The /var directory is another system directory that contains variable data files such as logs, databases, and spool files. This directory is used by the operating system to store data that changes frequently.

User Directories

While system directories contain important files for the operating system to function, users of the system also have their directories for storing personal files and data. These directories are known as user directories.

The /home directory is the primary location for storing user home directories. Each user of the system has a unique directory within the /home directory that is named after their username. Users can store their personal files, documents, and configurations within their home directory.

Another directory used by users is the /usr directory, which stands for Unix System Resources. This directory contains applications, libraries, and documentation for the operating system.

The Breakdown

  • /bin: The /bin directory contains essential binaries, such as system utilities like ls, cp, and mv, that are required for basic system operation. This directory is typically included in the system's PATH variable, which means you can access its contents from anywhere in the system.
  • /boot: The /boot directory contains the files required to boot the system, including the kernel and boot loader files.
  • /dev: The /dev directory contains device files that represent hardware devices on the system, including disks, partitions, and input/output devices like keyboard and mouse. These files can be used to access and interact with the underlying hardware.
  • /etc: The /etc directory contains system-wide configuration files for installed applications, as well as system configuration files. This directory is often referred to as the "et cetera" directory because it contains many miscellaneous files.
  • /home: The /home directory contains the home directories of all the users on the system. Each user has their own directory in /home with their personal files and configurations.
  • /lib and /lib64: The /lib and /lib64 directories contain shared library files that are required by binaries in /bin and /sbin directories. These files contain code that can be shared by multiple programs, which reduces disk usage and memory usage.
  • /lost+found: The /lost+found directory is used by the file system check (fsck) utility to store recovered files that were damaged or lost during a system crash or other error.
  • /media: The /media directory is used to mount removable storage devices like USB drives, CDs, and DVDs.
  • /mnt: The /mnt directory is used to temporarily mount file systems, such as network file systems or remote file systems.
  • /opt: The /opt directory is used to store add-on software that is not part of the default installation. It's typically used by third-party vendors to install their software.
  • /proc: The /proc directory is a virtual file system that provides information about system processes and configuration parameters. It contains files and directories that can be used to retrieve system information, including memory usage, CPU usage, and process status.
  • /root: The /root directory is the home directory of the root user, the administrative user that has full control over the system.
  • /run: The /run directory is a temporary file system that contains information about the running system, including system services and other runtime data.
  • /sbin: The /sbin directory contains system binaries that are required for system administration, such as the disk partitioning and formatting utilities.
  • /srv: The /srv directory is used to store data for services provided by the system, such as web server files.
  • /sys: The /sys directory is a virtual file system that provides information about the system hardware and its configuration. It contains files and directories that can be used to retrieve information about hardware devices and their drivers.
  • /tmp: The /tmp directory is used to store temporary files that are created by applications and system processes.
  • /usr: The /usr directory contains user-related files and applications that are not needed for system operation. It includes binaries, libraries, documentation, and other files that are not required for the system to boot up. This directory is generally read-only, except for /usr/local, which is intended for use by the system administrator.
  • /var: The /var directory contains files that change frequently during system operation, such as log files, mail spools, and print queues. This directory also includes directories for some daemons that run in the background, such as the Apache web server.

Conclusion

The file structure of the Linux operating system is designed to be hierarchical, with directories and files located within the root directory. Understanding the purpose of each directory is crucial to navigating and using the operating system effectively. By knowing which directories are system versus user directories, users can store files in the appropriate location and ensure the smooth operation of the system.

In summary, the Linux operating system's file structure is organized in a way that makes it easy for users to organize and locate files on their systems. System directories are used by the operating system, while user directories are used by users to store personal files and data. By understanding the purpose of each directory, users can navigate and use the operating system effectively.