In the second chapter of our ‘Learn Linux’ series, today we learn about the Linux Directory structure. Every operating systems have certain hierarchy of directory for organizing the files as a way to help users keep track of 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. Let’s take a look at each one of these directories.
1. Root /
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 anyway. 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 as “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 system administrator. Obviously system admin uses it for system maintenance purpose.
4. Boot Loader /boot
As the name of the folder 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 the place where all the configuration files required by all programs are stored. Each program will have a config file that is used to control the operation of a program including start or stop of the program. It is not an executable binary.
6. Home /home
Home directory has all users personal files. Inside it, each user account of the system will have a individual directory for instance “kiran” in my system.
7. System Libraries /lib /lib64
This folder contains library files that are needed to boot the system and run the commands in the 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 which is 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 which is used as an interface to kernel data structures. This file system stores text information about system resources.
12. Root /root
When a user sign 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 cleanup 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 are then 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.