Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

ทำความเข้าใจโครงสร้างไดเรกทอรีเสมือน (Virtual Directory Structure) ของ Linux

Linux ไม่มี "C:, D:" เหมือน Windows ใช้ Virtual Directory System (VFS) ทุกอย่างเป็นไฟล์ เริ่มจาก root (/) ทุก partition, device, network share ถูก mount เข้ามาในโครงสร้างต้นไม้เดียวกัน

ไดเรกทอรีหลักและหน้าที่

Pathชื่อหน้าที่หลัก
/Rootรากของทุกอย่าง จุดเริ่มต้นของ VFS
/binBinariesคำสั่งพื้นฐานสำหรับทุกผู้ใช้ (ls, cp, mv, cat, bash) - มัก symlink ไป /usr/bin
/bootBootKernel images (vmlinuz), initramfs, GRUB config - แยก partition บ่อยครั้ง
/devDevicesDevice files: sda (disk), tty (terminal), null, zero, random, stdin/stdout/stderr
/etcEtceteraConfig files ทั้งระบบ (systemd, ssh, nginx, fstab, passwd, hosts)
/homeHomeข้อมูลส่วนตัวของผู้ใช้ (/home/username)
/lib, /lib64LibrariesShared libraries สำหรับ /bin, /sbin - มัก symlink ไป /usr/lib
/mediaMediaMount point สำหรับ removable media (USB, CD, DVD) - auto-mount โดย udisks2
/mntMountMount point ชั่วคราว/manual (network share, extra disk)
/optOptionalThird-party software แบบ standalone (Google Chrome, VS Code, Oracle)
/procProcessVirtual fs: ข้อมูล kernel, hardware, processes (ไม่เก็บบนดิสก์)
/rootRoot HomeHome directory ของ root user
/runRunRuntime data (PID files, sockets, locks) - ล้างตอน reboot
/sbinSystem Binariesคำสั่งสำหรับ root/admin (reboot, fdisk, iptables, systemctl) - symlink ไป /usr/sbin
/srvServiceData สำหรับ network services (www, ftp, cvs)
/sysSysfsVirtual fs: ข้อมูล kernel/device/driver model (ควบคุม hardware ได้)
/tmpTemporaryไฟล์ชั่วคราว ล้างตอน reboot (หรือโดย systemd-tmpfiles)
/usrUnix System ResourcesUser programs, libraries, docs, share data (ใหญ่ที่สุด) - /usr/bin, /usr/lib, /usr/share
/varVariableข้อมูลที่เปลี่ยนแปลง: logs (/var/log), spool, cache, lib (DB, VM images), mail

จุดสำคัญ

  • /bin, /sbin, /lib → /usr/bin, /usr/sbin, /usr/lib (merged /usr ใน distro สมัยใหม่)
  • Everything is a file: device, socket, pipe, process info → อ่าน/เขียนได้เหมือนไฟล์
  • FHS (Filesystem Hierarchy Standard) กำหนดมาตรฐานนี้ ทำให้ distro ต่างๆ เข้าใจกัน

การนำทางพื้นฐาน

cd /          # ไป root
ls /          # ดูไดเรกทอรีหลัก
pwd           # แสดง current path
find / -name "filename" 2>/dev/null  # หาไฟล์ทั่วระบบ

เข้าใจโครงสร้างนี้ = จะหา config, log, binary, mount point ได้ง่าย ไม่หลงทางใน Linux!