File System Heirarchy
File System Heirarchy
BOOT FOLDER CONTAINS KERNEL FILES. IT ALSO CONTAINS BOOTLOADER FILES KNOWN AS
GRUB / LILO
/dev DEVICE DRIVERS ARE STORED HERE. DRIVER FILES ARE CALLED SPECIAL FILES
/sbin SUPER BIN. THERE ARE COMMAND FILES. ONLY ROOT USER CAN RUN THESE COMMANDS
(MOST OF THE COMMANDS)
VAR
# tailf /var/logs/messages
# dmidecode
# biosdecode
# last
# lastb
RHEL 6 rsyslog
ETC
BIN
LIB
.so ARE BINARY PROGRAMS. IT ITS NOT IN /lib, YOU’LL FIND IT IN /lib64
HOME
/home USER’S HOME DIRECTORY IS STORED HERE
Eg. USER RAMU’S HOME DIRECTORY /home/ramu
ROOT’S HOME DIRECTORY /root
PROC
/proc ALL RAM FILES ARE STORED IN /proc
AS SOON AS SYSTEM IS HUT DOWN /proc WILL BE EMPTY
ALL KERNEL PROCESS ARE ALSO STORED IN /proc
DEV
/dev IT CONTAINS ALL DEVICE DRIVERS
DEVICE DRIVERS ARE LOW LEVEL PROGRAMS THAT COMMUNICATES BETWEEN HARDWARE AND
RESPECTIVE SOFTWARE
EVERY DRIVER WILL HAVE MAJOR AND MINOR NO.
KERNEL USES THESE NOS TO IDENTIFY THE DRIVERS
ALL FILES UNDER /dev DOES NOT HAVE SIZE
AS IT DOES NOT HAVE SIZE IT IS NOT STORED IN HDD. IT IS STORED IN RAM
/dev/proc/sys FILES IN THIS FOLDER HAS NO SIZE
UDEV (UNIVERSAL DEVICE) USES RULES TO INITIALIZE DRIVERS AND LOAD IT IN RAM
ALL RULES ARE STORED IN /etc/udev/rules.d
FILES OF FILE TYPE b , s , p , c ARE CALLED SPECIAL FILES
b (BLOCK) BLOCK LEVEL DATA IS STORED (HDD, PENDRIVE)
HDD WILL BE OF b FILE TYPE. IT IS USED TO COMMUNICATE WITH SROAGE BLOCKS
c (CHARACTER) CHARACTER FILES ARE USED TO READ / WRITE DATA IN
CHARACTER BY CHARACTER FASHION
s (SOCKET) USED BY PERIPHERAL HARDWARE (MOUSE, JOYSTICK)
p (PIP) APP SHARE MEMORY WITH EACH OTHER WITH HELP OF PIPE
DRIVERS
HOW TO FIND ALL BLOCK FILES FROM /dev
# ls -l /dev/* | grep ^ b (^ BEGINNING AND $ END)
IT’LL SEARCH FOR LETTER b AT THE BEGINNING OF THE OUTPUT
TO VIEW RECURSIVE DIRECTORIES IN /etc
# ls -lR /etc/* | grep ^ d | wc -l
IT’LL SHOW COUNT OF ALL DIRECTORIES AND SUB DIRECTORIES
WE CAN DO LOG ROTATION USING LOG ROTATE SERVICE
/dev/lp0 PRINTER DRIVER
/dev/nst0 TAPE DEVICE DRIVER
/dev/loop0 TO MOUNT ISO. IF WE DOWNLOAD ISO ON A LINUX
SYSTEM AND WANT TO MOUNT IT
# mount -o loop <ISO file> /mnt
MNT
/mnt IT IS OPTONAL. IT IS USED FOR TEMPORARY MOUNTING
TMP
/tmp IT CONTAINS TEMPORARY FILES. IT CONTAINS LOCK FILES
(.lck FILES).
FOR Eg. WHEN WE PLAY A SONG IN VLC PLAYER, WE CANNOT PLAY THE SAME SONG
SIMULTAEOUSLY. VLC CREATES A .lck FILE AND AUTOMATICALLY DELETES THE FILE ONCE THE
SONG IS OVER.
/tmp HAS STICKY BIT PERMISSION
BOOT
/boot KERNEL FILES ARE STORED HERE
Vmlinuz-3.10.0-693.el7.x86_64 IS THE KERNEL FILE
KERNEL FILE IS DEVELOPED IN C / C++ AND COMPILED IN BINARY.
THE FILE IS COMPRESSED IN .bzip FORMAT
NEXT IMPORTANT FOLDER IN /boot IS /boot/grub. IT HAS BOOT LOADER FILES LILO AND
GRUB
# du -sh DISK USAGE (s – SUMMARIZE , h – HUMAN READABLE)
du SHOWS SPACE ALLOCATED FOR A FILE ON HDD
# echo $$ SHOWS PID OF CURRENT TERMINAL
WE CANNOT CREATE FOLLOWING AS SEPARATE PARTITIONS:
/etc , /dev , /bin , /sbin , /lib
THESE DIRECTORIES CONTAIN CRITICAL SYSTEM FILES WHICH SHOULD ALWAYS BE AVAILABLE
FOR OS TO RUN . IF WE CREATE THEM AS PARTITIONS, THERE ARE CHANCES THEY CAN GET
UNMOUNTED. IN THIS CASE THE OS WILL NOT LOAD.
WHENEVER RUNNING ANY COMMAND IN THE TERMINAL, stdin , stdout AND stderr ARE THREE
DATA STREAMS THAT BASH CREATES.
ESSENTIALLY THEY ALLOW PIPING / REDIRECTING DATA FROM ONE COMMAND TO ANOTHER
IN COMPUTING, THE TERM STREAM REFERS TO SOMETHING THAT CAN TRANSFER DATA. HENCE,
ALL THREE STREAMS CARRY TEXT AS DATA
stdin STANDARD INPUT. IT TAKES TEXT AS INPUT
stdout STANDARD OUTPUT. TEXT OUTPUT OF A COMMAND IS
STORED IN stdout STREAM
stderr STANDARD ERROR. WHENEVER A COMMAND FACES AN
ERROR, ERROR MESSAGE IS STORED IN stderr
EACH FILES ASSOCAITED WITH A PROCESS IS ALLOCATED A UNIQUE NUMBER TO IDENTIFY IT.
THIS IS KNOWN AS THE FILES DESCRIPTOR. WHENEVER AN ACTION IS REQURIED TO BE
PERFORMED ON A FILE, THE FILE DESCRIPTOR IS USED TO IDENTIFY THE FILE
0 : stdin
1 : stdout
2 : stderr