Linux File System Hunting

Learning web development in public. Writing simple, real-world explanations about web development concepts. Helping beginners understand why things work, not just how.
Search for a command to run...

Learning web development in public. Writing simple, real-world explanations about web development concepts. Helping beginners understand why things work, not just how.
No comments yet. Be the first to comment.
Every day, millions of users upload photos, videos, stories, and reels to Instagram. From a user's perspective, the process appears simple: select media, apply filters, add a caption, and tap "Post."
Building Offline-First Messaging Apps: How Messages Work Without Internet Modern messaging applications have transformed the way people communicate. Whether it's chatting with friends, collaborating w
In this article we'll explore about the Expo Router and React Navigation and answer which one to use in 2026. If you build mobile apps using React Native, one thing becomes obvious very quickly: Navig

Modern mobile apps are no longer just a collection of screens connected together. Apps like Instagram, WhatsApp, Uber, and Netflix operate at massive scale with millions of users, real time systems, o
In this article we'll be exploring react.js and the things of react.js that makes it popular and stand out among other libraries ( no fight over library vs framework ). We'll go through: What problem

Shkaai
68 posts
When I first started using Linux, it felt very simple.
Type a command → press enter → get output.
But during this assignment, my thinking changed.
Instead of asking:
“What command should I run?”
I started asking:
“What is actually happening inside the system when I run this?”
That small shift completely changed how I understand Linux.
Earlier, I treated Linux like a black box.
Now I see it differently.
Linux does not hide things. It exposes almost everything through files.
Processes, networking, users, hardware, system behavior — everything is visible if you know where to look.
/etc — Where System Rules LiveAt first, /etc looked like a random directory.
But when I explored it:
cat /etc/hosts
cat /etc/resolv.conf
cat /etc/passwd
I realized something important:
/etc is where Linux stores its rules.
Examples:
/etc/hosts maps domains to IP addresses
/etc/resolv.conf defines DNS servers
/etc/passwd stores user information
These are not passive files.
They are actively used by the system.
If you change them, system behavior changes.
So Linux is not fixed. It is configurable.
When you type a domain like google.com, the system needs an IP address.
Flow:
System reads /etc/resolv.conf
Contacts DNS server
Gets IP address
Starts connection
Important observation:
If DNS is misconfigured:
Internet appears broken
But the issue is only name resolution
Many network problems are actually DNS problems.
After getting an IP, the system must decide where to send data.
This is handled by routing.
cat /proc/net/route
Routing table defines:
destination
gateway
interface
Flow:
Application sends request
Kernel checks routing table
Kernel decides path
Applications do not control routing. The kernel does.
/proc — Live System DataThis was the most interesting part.
echo $$
ls /proc/$$
cat /proc/meminfo
cat /proc/cpuinfo
At first, /proc looks like a normal directory.
But it is not.
It is created dynamically by the kernel.
There are no real files stored on disk.
What it provides:
Real-time system information
Process-specific data
Instant updates
When you read /proc, you are reading live kernel data.
/dev — Hardware as FilesIn Linux, hardware is also represented as files.
ls /dev
echo "hello" > /dev/null
Examples:
disks
input devices
system devices
Special case:
/dev/null discards all data written to itLinux follows one core idea:
Everything is treated as a file.
This simplifies how the system interacts with hardware.
cat /etc/passwd
This file contains:
username
user ID
home directory
Passwords are stored separately in /etc/shadow.
Linux stores user data in structured files instead of hiding it.
ls -l file.txt
chmod 000 file.txt
cat file.txt
Result: access denied.
Reason:
The kernel checks permissions before allowing access.
Commands do not enforce security. The kernel does.
systemctl status
ls /etc/systemd
Observations:
Services run in the background
They start automatically
They are controlled through configuration
Linux systems are structured. Nothing runs randomly.
ls /boot
Contains:
kernel
bootloader files
Boot flow:
Bootloader loads kernel
Kernel initializes system
Services start
This is the starting point of the system.
Everything connects like this:
Command → Kernel → File System → Hardware
Each part has a role:
/etc controls behavior
/proc shows system state
/dev connects hardware
/var/log records activity
Earlier:
Linux = commands
Now:
Linux = a transparent, structured system
The key realization:
Linux does not hide complexity.
It organizes it in a way that can be explored and understood.
Once you understand this structure, Linux becomes logical and much easier to work with.