1) Big picture: one tree, rooted at /
·
Linux organizes everything
in a single tree that starts at / (called
root).
·
Drives/partitions
(C:, D: in Windows) are mounted as folders inside
this tree (e.g., /home, /mnt/data).
·
Case-sensitive: Report.txt ≠ report.txt.
/├─ bin/ ─ programs used by everyone├─ sbin/ ─ admin/system programs├─ etc/ ─ system-wide config files├─ usr/ ─ userland apps & libraries├─ var/ ─ variable data (logs, caches)├─ home/ ─ users’ personal folders├─ root/ ─ home of the root user├─ tmp/ ─ temporary files (auto-cleaned)├─ boot/ ─ bootloader, kernel, initramfs├─ dev/ ─ device files (disks, tty, usb)├─ proc/ ─ process & kernel info (virtual)├─ sys/ ─ devices/driver info (virtual)├─ run/ ─ runtime state since boot├─ media/ ─ auto-mount (USB, DVDs)└─ mnt/ ─ manual mounts (you mount here)Quick meanings (FHS essentials)
·
/bin, /usr/bin:
normal commands; modern distros often link /bin → /usr/bin.
·
/sbin, /usr/sbin: admin commands.
·
/usr/lib, /lib, /lib64: shared libraries.
·
/usr/local: software you install manually (won’t clash with
distro).
·
/opt: optional, large third-party apps.
·
/var/log logs, /var/spool queues, /var/lib app state.
2) “Everything is a file”
Linux exposes many resources as files:
· Regular files (text, binaries)
· Directories (folders)
·
Device
files in /dev:
o Block
devices (disks: /dev/sda, NVMe: /dev/nvme0n1)
o Character devices (serial/tty)
· Links:
o Hard link = another name for the same inode
o Symbolic link (soft link) = pointer to a path
· Sockets (inter-process comms), FIFOs/pipes
·
Virtual
files (/proc, /sys, /dev) reflect live kernel/device state
Check a file’s type:
file somethingstat something3) Inodes & blocks (how Linux tracks files)
· A file’s data lives in blocks on disk; its metadata (owner, size, timestamps, permissions, where blocks are) lives in an inode.
· A directory maps names → inode numbers.
· Hard links point multiple names to the same inode; deleting one name doesn’t delete the data until the link count hits zero.
· Symlinks point to a path (can break if target path disappears).
Try:
ls -li # show inode numbersln file A # hard link (same inode as file)ln -s file B # soft link (B → path "file")4) Mounting: how disks appear as folders
· A filesystem (on a partition, LVM LV, RAID, USB) becomes accessible when you mount it at a mount point (an existing empty directory).
lsblk # view block devices & mountpointssudo mount /dev/sdb1 /mntsudo umount /mnt·
Autoload
at boot via /etc/fstab (advanced, but good to know).
5) Common filesystem types
· ext4 (default on many distros): stable, journaling.
· XFS: great for large files and parallel I/O.
· Btrfs: snapshots, checksums, subvolumes (advanced).
· FAT32/exFAT: for USB sticks; max compatibility (limited features).
·
NTFS: Windows drives (Linux can read/write via ntfs-3g).
· tmpfs: stored in RAM (fast; volatile).
·
procfs /proc, sysfs /sys:
virtual info from kernel/devices.
6) Permissions & ownership (quick recap)
· Owner (user), group, others each have r/w/x.
· View:
ls -l# -rwxr-x--- 1 alice devs 12K Mar 1 10:00 run.sh· Change:
chmod u+x run.sh # add execute for ownerchmod 750 run.sh # u=rwx,g=rx,o=-chown alice:devs run.sh # change owner/group (sudo)Special bits (you’ll see these):
·
setuid (s
on user): run with file owner’s
privileges (e.g., /bin/passwd)
· setgid (s on group): new files inherit directory’s group
·
sticky (t
on dir): only file owner can
delete inside shared dirs (e.g., /tmp)
chmod 4755 binfile # setuidchmod 2755 somedir # setgid on directorychmod 1777 /tmp # sticky(Understand conceptually for first year; use carefully.)
7) Disk usage & finding files
· Space on filesystems:
df -h # free/used per mountpoint· Which folders are big:
du -sh * # sizes in current dirdu -h --max-depth=1 /· Find files:
find . -name "*.log" -size +100M· Search text:
grep -R "ERROR" /var/log8) Partitions, GPT/MBR, LVM, RAID (just awareness)
· Disks are split into partitions (MBR or GPT—modern/safer).
· LVM (Logical Volume Manager) layers:
o PV (physical volume) → VG (volume group) → LV (logical volume)
o Lets you resize, snapshot, and manage storage flexibly.
·
RAID (software via mdadm):
combine disks for redundancy/speed (e.g., RAID1 mirror, RAID5/6 parity). (Admin
topics; know terms.)
9) Good places to put things
·
Your files: /home/<you>/...
·
Custom scripts
for yourself: ~/bin (add to PATH)
·
Software you
compile yourself (system-wide, admin): /usr/local
·
Temporary
scratch: /tmp (can be cleared on reboot)
Avoid dropping random files in /, /bin, /sbin, /usr/bin—use /usr/local or your home.
10) Safety habits
·
Quote paths with spaces: "/home/you/My Files"
·
Use rm -ri (confirm) for deletions while learning.
·
Don’t sudo random commands from the internet.
· Back up before formatting or changing partitions/mounts.
·
Be cautious in
virtual filesystems: never try to “edit” /proc or /sys randomly.
11) Everyday commands you’ll actually use
pwd # where am Ils -la # list with details (shows links/permissions)tree -L 2 # directory tree (sudo apt install tree)file <name> # guess typestat <name> # inode, perms, timestamps df -h # disk free by filesystemdu -sh * # sizes of items in current dirlsblk # block devices + mount pointsmount | column -t # what is mounted where find . -name "*.py" # locate files by patterngrep -R "TODO" . # search text across files12) Mini-labs (hands-on, ~45–60 min)
Lab A: Tour the tree
cd /sudo ls -ld bin sbin etc usr var home root tmp dev proc sys boottree -L 1 /usrtree -L 1 /varWrite 3–4 lines
describing what you saw in /usr vs /usr/local.
Lab B: Inodes & links
cd ~ && mkdir -p fs_lab && cd fs_labecho "hello" > a.txtln a.txt hardlink.txtln -s a.txt softlink.txtls -lirm a.txtcat hardlink.txt # still works (same inode)cat softlink.txt # broken symlink (points to a path)Lab C: Space detectives
df -hdu -h --max-depth=1 ~ | sort -hFind your largest folder; clean safely (e.g., old caches).
Lab D: Mount a USB (read-only example)
1. Plug a USB; run:
2.lsblk
3. Identify partition (e.g., /dev/sdb1),
then:
4.mkdir -p ~/usb && sudo mount -o ro /dev/sdb1 ~/usb
5.ls ~/usb | head
6.sudo umount ~/usb
13) Exam/Interview-ready bullets
·
Linux uses a single
rooted tree /; devices and partitions are mounted
into it.
·
FHS defines standard dirs: /etc, /var, /usr, /home, /tmp, /proc, /sys, /dev, /boot.
·
Everything
is a file: regular, dir, link,
device, socket, pipe; check via ls -l, file, stat.
· Inode stores metadata + block pointers; dirs map name → inode.
· Hard vs soft links: hard = same inode; soft = path reference.
·
Permissions: user/group/others with rwx;
special bits (setuid, setgid, sticky).
· Common FS types: ext4, XFS, Btrfs, FAT/exFAT, NTFS; proc/sys/tmpfs are virtual/in-RAM.
If you want, I can turn this into a printable 2-page cheat sheet or add diagram slides for classroom use.