In the second chapter of our ‘Learn Linux’ series, today, we learn about the Linux Directory Structure. Every operating system has a certain hierarchy of directories for organizing the files to help users track where something can be found.
Take a look at the File Manager shown below. Each folder serves a defined purpose, most importantly the Security. Linux is typically safer than Microsoft Windows just because of the way Linux works within these system directories. So let’s take a look at each one of these directories.
1. Root /
The root directory is the beginning point for the file system hierarchy. Every single file and directory starts from the root directory. As the name suggests, only the root user has write privilege under this directory. But it’s important to note that “/” is not related to “/root” in any way. All the below-listed directories reside in the Root Directory.
2. User Binaries /bin
The “bin” directory is home to all the executable programs. In Linux, the executables are termed “Binaries.” All commands used by the users of the computer are located here.
3. System Binaries s/bin
s/bin directory also contains binary commands just like /bin directory. The only difference is the Linux commands located under this directory are used by the system administrator. Obviously, the system admin uses it for system maintenance purposes.
4. Boot Loader /boot
As the folder’s name indicates, /boot folder contains boot loader-related files, including the important kernel, initrd, vmlinux, grub files, etc.
5. System configuration files /etc
This is the place where all the configuration files required by all programs are stored. Each program will have a config file used to control the operation of a program, including the start or stop of the program. It is not an executable binary.
6. Home /home
The home directory has all users’ personal files. Inside it, each user account of the system will have an individual directory, for instance, “kiran” in my system.
7. System Libraries /lib /lib64
This folder contains library files needed to boot the system and run the commands in the binaries located under /bin and /sbin directories.
8. Devices /dev
/dev contains the files that are used by the USB devices attached to the computer.
9. Mount directory /mount
This is a temporary mount directory typically used by the system administrators for mounting the different file systems.
10. Optional add-on Apps /opt
/opt is for the installation of add-on application software packages. It is typically used for third-party software, which implies they are already pre-compiled.
11. Process Information /proc
The proc file system is a pseudo-file system that is used as an interface to kernel data structures. This file system stores text information about system resources.
12. Root /root
When a user signs in as the root user, there will be a separate home directory created.
13. Temporary space /tmp
Tmp directory is a temporary folder that will be periodically deleted. In fact, some Linux distributions clean up during each boot. The directory is used by the system programs for temporarily storing the data. For example, when you extract an archive, the contents are first extracted to the /tmp directory and moved to the location you provided.
14. User folder /usr
This folder is home to all user-related programs, libraries, and documentation. The sub-directories in /usr relate to those described in this article.
15. Variable data /var
Variable data like system log files reside here. These files get constantly modified depending on ongoing user and system tasks.