Logo

dev-resources.site

for different kinds of informations.

Understanding the Linux Filesystem: A Quick Guide

Published at
9/6/2024
Categories
linux
filesystem
Author
idsulik
Categories
2 categories in total
linux
open
filesystem
open
Author
7 person written this
idsulik
open
Understanding the Linux Filesystem: A Quick Guide

For anyone diving into the world of Linux, understanding its filesystem layout is an essential skill. Unlike Windows or macOS, Linux organizes its directories in a very specific, hierarchical way, each with a distinct purpose. In this guide, we will explore the core directories of the Linux filesystem and explain their roles.

1. /bin - Essential Command Binaries

The /bin directory contains essential command binaries used by all users. These commands include fundamental programs like ls, cp, mv, and cat. Even in a system rescue mode, these commands are accessible and can be run without requiring any external libraries, making this directory crucial for system recovery and basic operations.

2. /boot - Boot Loader Files

The /boot directory contains all the necessary files for the boot process. This includes the Linux kernel (vmlinuz), the initial RAM disk image used for preloading the root filesystem (initrd), and the bootloader configuration files (e.g., grub.conf for GRUB). Without the contents of /boot, the system wouldn't be able to start up properly.

3. /dev - Device Files

In Linux, everything is treated as a file, including hardware devices. The /dev directory contains special device files that represent hardware components like hard drives, printers, and USB devices. For example, /dev/sda might represent the first hard drive, while /dev/tty refers to terminals.

4. /etc - Configuration Files

This directory is home to all system-wide configuration files. For instance, the network configuration files, system startup scripts, and user account information are stored here. Files in /etc are usually text files, and it's the place where you configure most of the software installed on your system.

5. /home - User Home Directories

Each user has a personal directory under /home, where their personal files and settings are stored. For example, if your username is "alex", your home directory would be /home/alex. This is where all your documents, downloads, and user-specific configuration files reside.

6. /lib - Shared Libraries

The /lib directory contains shared libraries that are required by the binaries located in /bin and /sbin. Shared libraries are essential files that programs use to perform standard functions. For instance, a program might call on a library for handling memory allocation or file input/output operations.

7. /media - Removable Media

This directory is used for mounting external devices such as USB drives, CD-ROMs, or other removable media. When you plug in a USB drive, for example, it might automatically get mounted to /media/usb. The mounting process makes the contents of the drive accessible to the system.

8. /mnt - Temporary Mount Points

While /media is for automatically mounted devices, /mnt is usually reserved for manually mounted filesystems. For instance, if you’re mounting a remote filesystem or testing out a new disk partition, you might mount it here temporarily.

9. /opt - Optional Software Packages

The /opt directory is designed for third-party software installations that are not included with the system by default. If you install a software package from outside your distribution’s package manager, it might place its files in /opt. It helps to keep additional software separate from the core system files.

10. /proc - Kernel and Process Files

The /proc directory is a virtual filesystem that provides information about running processes and kernel data structures. It doesn’t contain real files but instead allows access to system information. For example, /proc/cpuinfo contains information about the CPU, and /proc/meminfo provides details about memory usage.

11. /root - Root User Home Directory

This is the home directory for the root user, which is the system administrator account with the highest privileges. It is separate from /home where normal users reside. The root user's home directory is /root, offering a secured environment for the system administrator.

12. /run - Run-time Data

The /run directory is used for storing volatile runtime data for system processes. This includes files such as process ID (PID) files and other transient data that’s cleared when the system reboots.

13. /sbin - System Binaries

The /sbin directory contains binaries that are essential for system administration tasks. Programs found here include tools for system maintenance, file system repairs, and network configuration. These commands are primarily used by the root user or system administrators.

14. /srv - Service Data

The /srv directory holds data for services provided by the system, such as web servers, FTP servers, and other network services. For instance, if you are running a website from your system, the web content might be stored in /srv/www.

15. /sys - System Information

Much like /proc, /sys is a virtual filesystem that provides information about the kernel, devices, and modules. It’s used by the kernel to export information to the user space and allows for querying system hardware and modifying kernel behavior.

16. /tmp - Temporary Files

The /tmp directory is used for storing temporary files that are created by programs or the system. Files here are not guaranteed to persist across reboots, making it a suitable place for temporary or transient data.

17. /usr - User System Resources

The /usr directory contains user applications and utilities. Subdirectories include /usr/bin for executable files, /usr/lib for libraries, and /usr/share for shared data like documentation or icons. It’s one of the largest directories on the system, housing a wide variety of software.

18. /var - Variable Files

The /var directory stores files that are expected to grow in size over time, such as logs, caches, and spool files. For example, the system’s log files are stored in /var/log, making it a vital directory for system monitoring and troubleshooting.


Final Thoughts

Navigating the Linux filesystem might seem intimidating at first, but once you understand the purpose of each directory, it becomes much more manageable. Whether you’re configuring software, troubleshooting issues, or simply exploring the system, knowing where files are stored is an essential skill.

Remember, most files outside your home directory (/home) should be handled with care, especially when you’re working as the root user. Always back up important files before making significant changes to system directories.


I hope this article helps you better understand the Linux filesystem! Feel free to leave any questions or comments below.


filesystem Article's
30 articles in total
Favicon
List filenames recursively in a directory using this utility function.
Favicon
Where Does Deleted Data Go? Unveiling the Secrets of File Deletion and Overwriting
Favicon
Amazon FSx for NetApp ONTAP - Expert Storage for any workload
Favicon
Understanding the Linux Filesystem, Root File System, and EXT File System
Favicon
How to fix RHEL file system
Favicon
Understanding the Linux Filesystem: A Quick Guide
Favicon
Introducing Cora: A Powerful File Concatenation Tool for Developers
Favicon
Hitchhikers guide to building a distributed filesystem in Rust. The very beginning…
Favicon
Understanding Where Deleted Files Go After Deleting them from Recycle Bin and How to Recover Them
Favicon
I wrote a File System CLI in Rust
Favicon
La extravagante posibilidad de los espacios en los nombres de archivos.
Favicon
Starting with C
Favicon
Getting the list of files and their info
Favicon
Processing flags
Favicon
Sorting and formatting the output. The Finale.
Favicon
Command, file types and flags
Favicon
Unit test in Laravel by example
Favicon
What is File Manipulation?
Favicon
you are not the owner so you cannot change the permissions Error in Linux
Favicon
Setting Up OpenZFS on Rocky Linux
Favicon
How to extend an EBS volume in AWS and then grow EFS Filesystem
Favicon
Efficient File Naming Systems for Better File Management
Favicon
Improving the .NET API to work with the structure of the file system. Part 2. Manipulate filesystem objects.
Favicon
Improving the .NET API to work with the structure of the file system. Part 1. Enumerate filesystem objects.
Favicon
How to format SD Card to APFS on Mac
Favicon
What are linux inodes?
Favicon
Block and Filesystem side-by-side with K8s and Aerospike
Favicon
How to copy lots of data fast?
Favicon
EFS vs. FSx for ONTAP
Favicon
Use Inflint to follow files and folders convention

Featured ones: