It is very important to know about the Linux directory structure. I most of the case if you work as a System Administrator, you have to work in bash/ multiuser mode / black screen with no graphical interface and only commands of Linux will be used. If you don’t know where to go and in which folder which file are kept or where from a file can be copied or moved you will get stuck.



The image shows the complete Linux (CentOS7 / RHEL 7 ) directory structure. Let’s get to know where we will find which file/ folder and which directory is used for which purpose.

/ (root)Parent of all directories
/rootRoot users (administrator) profile or home directory
/homeNormal users profile or home directory
/binNormal users commend in binary format by system admin
/sbinSuper users commend in binary format
/mntHook to connect removable drive /disks
/mediaAutomatic mount point by System
/etcSystem and server configuration files
/varAll log files location, web and FTP server’s document root
/usrAll local program installation location and all documentation folder
/devAll device files location which is required to access HW
/tmpAll temporary file locations (runtime files)
/procAll running processes(PID), system virtual files, cup memory states
/sysSystem file location (kernel files)
/optAll optional file location (external files/software install location) – while OS gets new updates, it won’t touch this directory as it’s a mother software directory
/libLibraries for 32-bit files
/lib64Libraries for 64-bit files
/srvService-specific data
/bootBooting files (if missing machine won’t start)
/runRuntime files


Hope I  am able to explain which directory is allocated for which purpose in short. Anyway, I don’t know about others but honestly, it felt like pretty much boring and monotonous when I know about the structures and now I feel like, it worth my time learning them.


  • Linux has 3 types of users:
    • Super User (root)  : UID = 0  [ $ ]
    • Normal User: UID = 1000~90,000 [ # ]
    • Application/ System User: UID = 1-999
  • Bash:  An interpretator to send inputted commend to Linux Kernel
  • Linux is a Multitusking OS:  2 types of consoles
    • Physical Console (monitor, keyboard) – Ctrl+Alt+F1
    • Virtual Console – Ctrl+F2~F6
Series Navigation<< Installation: Cent OS 7 Linux distributionPrivate: Commend Line Basics: Linux >>


love coding, freelancer, love to travel and ride bikes