Linux - Directory Structure                                 Home :




In most case, you wouldn't need to know which file/programs are located in where since most of the necessary files/program directories are set up in path and you would have access to them wherever you, but in some case you need to know exact locations for a certain file/programs to get access to it.

However it wouldn't be easy to locate those especially when you don't have the big picture of Linux directory structure and basic properties of each directories. In this page, I will give you the list of the most common directories you would find in any Linux and some big pictures of each directories.


Followings are those directories that you may find from any variations of Linux.










User Binaries



System Binaries



Configuration Files



Device Files



Process Information



Variable Files



Temprary Files



User Programs



Home Directory



Boot Loader Files



System Libraries



Optional Add-on Apps



Mount Directory



Removable Devices



Service Data





This directory contains most of user binaries (executable files for most of Linux command). Following is the full list of files in this location from the linux on my PC (you may see a little different list from your Linux). You would notice several famous linux command as marked in blue.


bash                  fgconsole       nc                       sed

bunzip2               fgrep           nc.openbsd               setfacl

busybox               findmnt         netcat                   setfont

bzcat                 fuser           netstat                  setupcon

bzcmp                 fusermount      nisdomainname            sh

bzdiff                getfacl         ntfs-3g                  sh.distrib

bzegrep               grep            ntfs-3g.probe            sleep

bzexe                 gunzip          ntfs-3g.secaudit         ss

bzfgrep               gzexe           ntfs-3g.usermap          static-sh

bzgrep                gzip            ntfscat                  stty

bzip2                 hostname        ntfsck                   su

bzip2recover          init-checkconf  ntfscluster              sync

bzless                initctl2dot     ntfscmp                  tailf

bzmore                ip              ntfsdecrypt              tar

cat                   kbd_mode        ntfsdump_logfile         tempfile

chacl                 kill            ntfsfix                  touch

chgrp                 less            ntfsinfo                 true

chmod                 lessecho        ntfsls                   ulockmgr_server

chown                 lessfile        ntfsmftalloc             umount

chvt                  lesskey         ntfsmove                 uname

cp                    lesspipe        ntfstruncate             uncompress

cpio                  ln              ntfswipe                 unicode_start

dash                  loadkeys        open                     vdir

date                  login           openvt                   vmmouse_detect

dbus-cleanup-sockets  lowntfs-3g      pidof                    which

dbus-daemon           ls              ping                     whiptail

dbus-uuidgen          lsblk           ping6                    ypdomainname

dd                    lsmod           plymouth                 zcat

df                    mkdir           plymouth-upstart-bridge  zcmp

dir                   mknod           ps                       zdiff

dmesg                 mktemp          pwd                      zegrep

dnsdomainname         more            rbash                    zfgrep

domainname            mount           readlink                 zforce

dumpkeys              mountpoint      rm                       zgrep

echo                  mt              rmdir                    zless

ed                    mt-gnu          rnano                    zmore

egrep                 mv              running-in-container     znew

false                 nano            run-parts





This directory contains device (device drivers) for the terminal devices (hardware) installed on the PC. Some of the common devices are marked in blue.


alarm            loop0               ram15     tty1   tty37  tty7       ttyS4

ashmem           loop1               ram2      tty10  tty38  tty8       ttyS5

autofs           loop2               ram3      tty11  tty39  tty9       ttyS6

binder           loop3               ram4      tty12  tty4   ttyprintk  ttyS7

block            loop4               ram5      tty13  tty40  ttyS0      ttyS8

bsg              loop5               ram6      tty14  tty41  ttyS1      ttyS9

btrfs-control    loop6               ram7      tty15  tty42  ttyS10     uinput

bus              loop7               ram8      tty16  tty43  ttyS11     urandom

cdrom            loop-control        ram9      tty17  tty44  ttyS12     usb

cdrw             mapper              random    tty18  tty45  ttyS13     v4l

char             mcelog              rfkill    tty19  tty46  ttyS14     vcs

console          mei                 rtc       tty2   tty47  ttyS15     vcs1

core             mem                 rtc0      tty20  tty48  ttyS16     vcs2

cpu              net                 sda       tty21  tty49  ttyS17     vcs3

cpu_dma_latency  network_latency     sda1      tty22  tty5   ttyS18     vcs4

disk             network_throughput  sda2      tty23  tty50  ttyS19     vcs5

dri              null                sda3      tty24  tty51  ttyS2      vcs6

dvd              oldmem              sda5      tty25  tty52  ttyS20     vcs63

dvdrw            port                sda6      tty26  tty53  ttyS21     vcsa

ecryptfs         ppp                 sg0       tty27  tty54  ttyS22     vcsa1

fb0              psaux               sg1       tty28  tty55  ttyS23     vcsa2

fd               ptmx                shm       tty29  tty56  ttyS24     vcsa3

full             pts                 snapshot  tty3   tty57  ttyS25     vcsa4

fuse             ram0                snd       tty30  tty58  ttyS26     vcsa5

hidraw0          ram1                sr0       tty31  tty59  ttyS27     vcsa6

hpet             ram10               stderr    tty32  tty6   ttyS28     vcsa63

input            ram11               stdin     tty33  tty60  ttyS29     vga_arbiter

kmsg             ram12               stdout    tty34  tty61  ttyS3      vhost-net

kvm              ram13               tty       tty35  tty62  ttyS30     video0

log              ram14               tty0      tty36  tty63  ttyS31     zero





The property of this directory is similar to /bin which contains a lot of binary (executable) files. Most of these files work as linux command. However, most of executables stored in this folder is for system adiministrator whereas the /bin directory is for common users. Some of the executables (commands) you would use pretty often are marked in blue.


acpi_available   fstrim             mkfs              resize2fs

agetty           getcap             mkfs.bfs          resolvconf

alsa             getpcaps           mkfs.cramfs       restart

alsactl          getty              mkfs.ext2         rmmod

apm_available    halt               mkfs.ext3         route

apparmor_parser  hdparm             mkfs.ext4         rtacct

badblocks        hwclock            mkfs.ext4dev      rtmon

blkid            ifconfig           mkfs.minix        runlevel

blockdev         ifdown             mkfs.msdos        setcap

bootlogd         ifquery            mkfs.ntfs         setvtrgb

brltty           ifup               mkfs.vfat         sfdisk

brltty-setup     init               mkhomedir_helper  shadowconfig

capsh            initctl            mkntfs            shutdown

cfdisk           insmod             mkswap            slattach

crda             installkernel      mntctl            start

cryptsetup       ip                 modinfo           startpar

ctrlaltdel       ip6tables          modprobe          start-stop-daemon

debugfs          ip6tables-restore  mountall          status

depmod           ip6tables-save     mount.fuse        stop

dhclient         ipmaddr            mount.lowntfs-3g  sulogin

dhclient3        iptables           mount.ntfs        swaplabel

dhclient-script  iptables-restore   mount.ntfs-3g     swapoff

dmsetup          iptables-save      nameif            swapon

dosfsck          iptunnel           nfnl_osf          switch_root

dosfslabel       isosize            ntfsclone         sysctl

dumpe2fs         iw                 ntfscp            tc

e2fsck           iwconfig           ntfslabel         telinit

e2image          iwevent            ntfsresize        tune2fs

e2label          iwgetid            ntfsundelete      udevadm

e2undo           iwlist             on_ac_power       udevd

fdisk            iwpriv             pam_tally         umount.udisks

findfs           iwspy              pam_tally2        unix_chkpwd

fsck             kbdrate            parted            unix_update

fsck.cramfs      killall5           partprobe         upstart-socket-bridge

fsck.ext2        ldconfig           pccardctl         upstart-udev-bridge

fsck.ext3        ldconfig.real      pivot_root        ureadahead

fsck.ext4        logsave            plipconfig        vstp

fsck.ext4dev     losetup            plymouthd         wipefs

fsck.minix       lsmod              poweroff          wpa_action

fsck.msdos       lspcmcia           rarp              wpa_cli

fsck.nfs         MAKEDEV            raw               wpa_supplicant

fsck.vfat        mii-tool           reboot            xtables-multi

fsfreeze         mkdosfs            regdbdump

fstab-decode     mke2fs             reload





This directory contains the information on the processes which are currently running on the system. These are a kind of psuedo file which is not stored as a hard copy and they would keep chaning depending on what kind of application/commands are running.


1      1411  1644  1924   24579  27    7          crypto         modules

1006   1414  1653  1931   24580  270   74         devices        mounts

1034   1422  1692  1936   24581  28    75         diskstats      mtrr

1040   1488  1732  1965   24582  3     76         dma            net

1052   1498  1737  2      24583  30    801        dri            pagetypeinfo

1055   1562  1739  20     24585  31    836        driver         partitions

1058   1564  1749  2006   24586  32    863        execdomains    sched_debug

1081   1569  1751  2067   24587  35    865        fb             schedstat

1083   1575  1753  21     24588  3513  887        filesystems    scsi

1085   1579  1761  22     24596  3524  889        fs             self

1090   1582  1772  224    24597  3525  891        interrupts     slabinfo

1104   1584  1774  226    24625  355   909        iomem          softirqs

1105   1587  1791  228    24626  357   910        ioports        stat

1107   1589  1804  229    24629  36    911        irq            swaps

1248   1590  1814  23     24630  3652  942        kallsyms       sys

1251   1591  1832  230    24631  3656  949        kcore          sysrq-trigger

1266   1593  1834  231    24925  37    982        key-users      sysvipc

1287   1605  1837  23813  24930  38    983        kmsg           timer_list

1362   1609  1838  24046  24935  39    acpi       kpagecount     timer_stats

13765  1613  1865  24093  24938  40    asound     kpageflags     tty

13900  1614  1871  24107  25     41    buddyinfo  latency_stats  uptime

13911  1621  1874  24127  25117  418   bus        loadavg        version

13912  1623  1875  24128  25140  463   cgroups    locks          version_signature

1398   1634  1895  24575  25193  50    cmdline    mdstat         vmallocinfo

1401   1639  1908  24577  26     55    consoles   meminfo        vmstat

1402   1643  1922  24578  269    6     cpuinfo    misc           zoneinfo





This directory contains most of temp files for various programs and the size of the files tend to changes (grows in most cases) as you use the system more, e.g, system log files (/var/log), packages and database files (/var/lib), emails(/var/mail), print queues (/var/spool) etc.


backups  cache  crash  games  lib  local  lock  log  mail  opt  run  spool  tmp





This directory contains the configuration files required by all the programs installed on the system. Some of files you would refer to (or modify) most often are marked in blue.


acpi                    gshadow-             pm

adduser.conf            gtk-2.0              pnm2ppa.conf

adjtime                 gtk-3.0              polkit-1

alternatives            hdparm.conf          popularity-contest.conf

anacrontab              host.conf            ppp

apg.conf                hostname             printcap

apm                     hosts                profile

apparmor                hosts.allow          profile.d

apparmor.d              hosts.deny           protocols

apport                  hp                   pulse

apt                     ifplugd              python

at.deny                 init                 python2.7

at-spi2                 init.d               rc0.d

avahi                   initramfs-tools      rc1.d

bash.bashrc             inputrc              rc2.d

bash_completion         insserv              rc3.d

bash_completion.d       insserv.conf         rc4.d

bindresvport.blacklist  insserv.conf.d       rc5.d

blkid.conf              iproute2             rc6.d               issue                rc.local

bluetooth                 rcS.d

bonobo-activation       kbd                  resolvconf

brlapi.key              kernel               resolv.conf

brltty                  kernel-img.conf      rmt

brltty.conf             kerneloops.conf      rpc

ca-certificates         ldap                 rsyslog.conf

ca-certificates.conf          rsyslog.d

calendar                 samba

chatscripts            sane.d

checkbox.d              legal                securetty

colord.conf             libnl-3              security

compizconfig            libpaper.d           sensors3.conf

ConsoleKit              libreoffice          sensors.d

console-setup           lightdm              services

cron.d                  locale.alias         sgml

cron.daily              localtime            shadow

cron.hourly             logcheck             shadow-

cron.monthly            login.defs           shells

crontab                 logrotate.conf       skel

cron.weekly             logrotate.d          smi.conf

cups                    lsb-base             snmp

cupshelpers     sound

dbus-1                  lsb-release          speech-dispatcher

debconf.conf            ltrace.conf          ssh

debian_version          magic                ssl

default                 magic.mime           sudoers

deluser.conf            mailcap              sudoers.d

depmod.d                mailcap.order        sysctl.conf

dhcp                    manpath.config       sysctl.d

dhcp3                   mime.types           systemd

dictionaries-common     mke2fs.conf          terminfo

doc-base                modprobe.d           thunderbird

dpkg                    modules              timezone

emacs                   motd                 ucf.conf

environment             mtab                 udev

firefox                 mtab.fuselock        ufw

fonts                   mtools.conf          updatedb.conf

foomatic                nanorc               update-manager

fstab                   netscsid.conf        update-motd.d

fstab.d                 network              update-notifier

fuse.conf               NetworkManager       UPower

gai.conf                networks             usb_modeswitch.conf

gconf                   newt                 usb_modeswitch.d

gdb                     nsswitch.conf        vim

ghostscript             obex-data-server     vtrgb

ginn                    opt                  wgetrc

gnome                   os-release           wireshark

gnome-app-install       pam.conf             wodim.conf

gnome-settings-daemon   pam.d                wpa_supplicant

gnome-vfs-2.0           papersize            X11

groff                   passwd               xdg

group                   passwd-              xml

group-                  pcmcia               xul-ext

grub.d                  perl                 zsh_command_not_found

gshadow                 pkcs11





This directory contains the binary (executable) for most of user applications and document, libaries. If you try to find any application/programs, first try witn /bin directory and if you don't find it here, try looking into /usr/bin.


bin  games  include  lib  local  sbin  share  src





This directory contains files related to boot loader e.g, Kernel initrd, vmlinux etc.





This folder contains those files (libraries) that supports the binaries under /bin and /sbin.








init                                                                                                                                                                                    linux-sound-base                           lsb                       modules                          plymouth                      recovery-mode                           resolvconf                     security                       systemd                    terminfo                        udev                    ufw                   x86_64-linux-gnu               xtables