Linux File System
Chapter Overview
In this chapter you will learn:
- Linux filesystem philosophy
- Everything is a file
- Filesystem Hierarchy Standard (FHS)
- Linux directory structure
- Absolute and Relative paths
- Inodes
- File Types
- Hidden Files
- Hard Links
- Symbolic Links
- Real Server Examples
- PocketMine Hosting Structure
Introduction
One of the biggest differences between Windows and Linux is:
The filesystem structure.
Windows:
C:\
D:\
E:\
Linux:
/
Everything starts from one root directory.
Linux Philosophy
Linux follows:
Everything is a File
This is one of the most important Linux concepts. In Linux, many things behave like files: ✅ Directories ✅ Hard Disks ✅ USB Devices ✅ Network Interfaces ✅ Processes ✅ System Information
Examples
Hard Drive:
/dev/sda
USB:
/dev/sdb
Terminal:
/dev/tty
CPU Information:
/proc/cpuinfo
Memory Information:
/proc/meminfo
Everything behaves like files.
Linux Filesystem Hierarchy
Everything starts from:
/
called:
Root Directory
Visualization
/
├── bin
├── boot
├── dev
├── etc
├── home
├── lib
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin
├── srv
├── sys
├── tmp
├── usr
└── var
Filesystem Hierarchy Standard (FHS)
Linux follows a standard called:
FHS
Filesystem Hierarchy Standard
This ensures all Linux distributions use similar structures. This makes administration easier.
Root Directory
/
This is the parent of everything.
Example:
/home
/etc
/var
/usr
all exist inside:
/
Visualization
/
↓
Everything
/home
Contains user files. Example:
/home/aayan
/home/admin
/home/student
Equivalent to:
C:\Users\
in Windows.
Example:
ls /home
Output:
aayan
student
User Directory Structure
/home/aayan
├── Documents
├── Downloads
├── Pictures
└── Desktop
Why Important?
This directory stores:
- Personal files
- Scripts
- Projects
- SSH keys
- Downloads
PocketMine Example
/home/minecraft/server/
Usually server files are hosted inside:
/home
/root
Home directory of:
root user
Not same as:
/
Example:
/root
contains administrator files.
/etc
One of the most important directories. Contains:
Configuration Files
Examples:
/etc/passwd
/etc/hosts
/etc/ssh/
/etc/nginx/
/etc/mysql/
Server Examples
Nginx:
/etc/nginx/nginx.conf
SSH:
/etc/ssh/sshd_config
Why Important?
As Linux Administrator:
You will use /etc every day.
/var
Stores:
Variable Data
Examples:
- Logs
- Cache
- Databases
Important Folders
/var/log
/var/cache
/var/www
Log Files
/var/log/syslog
Contains:
System Logs
Useful for troubleshooting.
Web Hosting Example
/var/www/html
Contains website files.
Apache usually serves files from here.
/usr
Contains:
Programs
Libraries
Documentation
Examples:
/usr/bin
/usr/lib
/usr/share
Visualization
/usr
│
├── bin
├── lib
└── share
/usr/bin
Contains commands. Examples:
ls
cp
mv
nano
Check location:
which ls
Output:
/usr/bin/ls
/bin
Contains essential commands. Examples:
cp
mv
cat
ls
bash
/sbin
Contains administrative commands. Examples:
shutdown
fdisk
reboot
mkfs
/tmp
Temporary files. Anyone can write here.
Example:
cd /tmp
Files may automatically be deleted.
Useful for:
- Installers
- Temporary scripts
- Testing
/boot
Contains boot files. Examples:
Linux Kernel
GRUB
Initramfs
Visualization:
/boot
│
├── vmlinuz
├── initrd
└── grub
/dev
One of Linux's most powerful concepts. Contains:
Devices as files.
Examples:
/dev/sda
/dev/sdb
/dev/null
/dev/random
Hard Drives
/dev/sda
means:
First disk
Partitions
/dev/sda1
/dev/sda2
Useful Devices
/dev/null
The black hole. Everything sent here disappears. Example:
echo hello > /dev/null
Output:
Nothing
/dev/random
Generates random data.
/proc
Virtual filesystem. Contains:
Process Information
Kernel Information
CPU Information
Memory Information
Examples:
/proc/cpuinfo
/proc/meminfo
/proc/version
CPU Information
cat /proc/cpuinfo
Memory Information
cat /proc/meminfo
Process Information
Each process gets directory. Example:
/proc/1
/proc/1234
/sys
Contains kernel information. Used for:
- Drivers
- Hardware Management
- Device Control
Mostly used by advanced users.
/media
Used for:
USB Drives
CD/DVD
External Storage
Example:
/media/aayan/USB
/mnt
Temporary mount location. Used by administrators. Example:
mount /dev/sdb1 /mnt
Linux Paths
There are two types.
Absolute Path
Starts from:
/
Example:
/home/aayan/Documents/file.txt
Relative Path
Starts from current directory. Example:
Documents/file.txt
Visualization
Current:
/home/aayan
Absolute:
/home/aayan/file.txt
Relative:
file.txt
Special Directories
Current Directory
.
Parent Directory
..
Examples:
cd ..
Go back one folder.
cd .
Current folder.
Hidden Files
Files beginning with:
.
are hidden. Examples:
.bashrc
.profile
.gitconfig
.ssh
Show hidden files:
ls -la
Why Hidden?
Usually:
- Configurations
- User Settings
- Sensitive Data
Linux File Types
Regular File
-
Examples:
file.txt
test.php
Directory
d
Symbolic Link
l
Character Device
c
Block Device
b
Socket
s
Pipe
p
View:
ls -l
Example:
drwxr-xr-x
First character:
d
means directory.
Inodes
One of Linux's most important concepts.
What is an Inode?
An inode stores:
- File Permissions
- Owner
- Group
- Size
- File Location
- Timestamps
It does NOT store:
Filename
Visualization:
Filename
↓
Inode
↓
Actual Data Blocks
View Inodes
ls -i
Example:
128731 file.txt
Why Important?
Useful for:
- File Recovery
- Hard Links
- Forensics
- Filesystem Repair
Hard Links
Multiple filenames pointing to same inode.
Example:
ln file1 file2
Both files:
Share same inode.
Visualization:
file1
↓
inode
↑
file2
Properties
✅ Same inode ✅ Same data ❌ Cannot cross disks ❌ Cannot link directories
Symbolic Links
Like Windows shortcuts.
Create:
ln -s file1 link
Visualization:
link
↓
file1
Properties: ✅ Can cross filesystems ✅ Can link directories ❌ Different inode
View Links
ls -l
Example:
link -> file1
Hard Link vs Symbolic Link
| Feature | Hard | Symbolic |
|---|---|---|
| Same Inode | ✅ | ❌ |
| Cross Filesystems | ❌ | ✅ |
| Link Directories | ❌ | ✅ |
| Break if Original Deleted | ❌ | ✅ |
Real Server Example
PocketMine Hosting:
/home/minecraft/
│
├── server/
├── backups/
├── plugins/
└── worlds/
Logs:
/var/log
PHP:
/etc/php
Nginx:
/etc/nginx
VPS Example
/
│
├── home
├── var
├── etc
├── root
└── usr
As Linux Administrator, these directories are used daily.
Useful Commands
Show filesystem:
tree /
Current directory:
pwd
Show hidden files:
ls -la
Show inode:
ls -i
Filesystem usage:
df -h
Disk usage:
du -sh
Exercises
Exercise 1
Navigate to:
/home
Exercise 2
Find:
/etc/passwd
Exercise 3
Create symbolic link.
Exercise 4
Create hard link.
Exercise 5
View inode numbers.
Mini Project
Create Linux structure:
/home/student
│
├── Projects
├── Scripts
├── Downloads
└── Backups
Create:
- Hidden files
- Hard links
- Symbolic links
Summary
You learned: ✅ Linux Filesystem Hierarchy ✅ Root Directory ✅ Important Directories ✅ Absolute Paths ✅ Relative Paths ✅ Hidden Files ✅ File Types ✅ Inodes ✅ Hard Links ✅ Symbolic Links The Linux filesystem is one of the most important foundations for server administration and ethical hacking.
References
Filesystem Hierarchy Standard: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html Linux Filesystem: https://www.kernel.org/doc/html/latest/filesystems/
Next Chapter
➡ Linux Terminal Basics ➡ First Commands ➡ pwd ➡ ls ➡ cd ➡ Navigation Exercises