Saturday, March 29, 2014

Directory Structure in Linux


Have you wondered why certain programs are located under /bin, or /sbin, or /usr/bin, or /usr/sbin?
For example, less command is located under /usr/bin directory. Why not /bin, or /sbin, or /usr/sbin? What is the different between all these directories?
In this article, let us review the Linux filesystem structures and understand the meaning of individual high-level directories.





1. / – Root


  • Every single file and directory starts from the root directory.


  • Only root user has write privilege under this directory.


  • Please note that /root is root user’s home directory, which is not same as /.



  • 2. /bin – User Binaries


    • Contains binary executables.


    • Common linux commands you need to use in single-user modes are located under this directory.


    • Commands used by all the users of the system are located here.


    • For example: ps, ls, ping, grep, cp.



    • 3. /sbin – System Binaries


      • Just like /bin, /sbin also contains binary executables.


      • But, the linux commands located under this directory are used typically by system aministrator, for system maintenance purpose.


      • For example: iptables, reboot, fdisk, ifconfig, swapon



      • 4. /etc – Configuration Files


        • Contains configuration files required by all programs.


        • This also contains startup and shutdown shell scripts used to start/stop individual programs.


        • For example: /etc/resolv.conf, /etc/logrotate.conf



        • 5. /dev – Device Files


          • Contains device files.


          • These include terminal devices, usb, or any device attached to the system.


          • For example: /dev/tty1, /dev/usbmon0



          • 6. /proc – Process Information


            • Contains information about system process.


            • This is a pseudo filesystem contains information about running process. For example: /proc/{pid} directory contains information about the process with that particular pid.


            • This is a virtual filesystem with text information about system resources. For example: /proc/uptime



            • 7. /var – Variable Files


              • var stands for variable files.


              • Content of the files that are expected to grow can be found under this directory.


              • This includes — system log files (/var/log); packages and database files (/var/lib); emails (/var/mail); print queues (/var/spool); lock files (/var/lock); temp files needed across reboots (/var/tmp);



              • 8. /tmp – Temporary Files


                • Directory that contains temporary files created by system and users.


                • Files under this directory are deleted when system is rebooted.



                • 9. /usr – User Programs


                  • Contains binaries, libraries, documentation, and source-code for second level programs.


                  • /usr/bin contains binary files for user programs. If you can’t find a user binary under /bin, look under /usr/bin. For example: at, awk, cc, less, scp


                  • /usr/sbin contains binary files for system administrators. If you can’t find a system binary under /sbin, look under /usr/sbin. For example: atd, cron, sshd, useradd, userdel


                  • /usr/lib contains libraries for /usr/bin and /usr/sbin


                  • /usr/local contains users programs that you install from source. For example, when you install apache from source, it goes under /usr/local/apache2



                  • 10. /home – Home Directories


                    • Home directories for all users to store their personal files.


                    • For example: /home/john, /home/nikita



                    • 11. /boot – Boot Loader Files


                      • Contains boot loader related files.


                      • Kernel initrd, vmlinux, grub files are located under /boot


                      • For example: initrd.img-2.6.32-24-generic, vmlinuz-2.6.32-24-generic



                      • 12. /lib – System Libraries


                        • Contains library files that supports the binaries located under /bin and /sbin


                        • Library filenames are either ld* or lib*.so.*


                        • For example: ld-2.11.1.so, libncurses.so.5.7



                        • 13. /opt – Optional add-on Applications


                          • opt stands for optional.


                          • Contains add-on applications from individual vendors.


                          • add-on applications should be installed under either /opt/ or /opt/ sub-directory.



                          • 14. /mnt – Mount Directory


                            • Temporary mount directory where sysadmins can mount filesystems.



                            • 15. /media – Removable Media Devices


                              • Temporary mount directory for removable devices.


                              • For examples, /media/cdrom for CD-ROM; /media/floppy for floppy drives; /media/cdrecorder for CD writer



                              • 16. /srv – Service Data


                                • srv stands for service.


                                • Contains server specific services related data.


                                • For example, /srv/cvs contains CVS related data.




                                • No comments:

                                  Post a Comment