โครงสร้างระบบไฟล์ของ Linux แตกต่างจาก Windows อย่างมีนัยสำคัญ แทนที่จะใช้ Drive Letter เช่น C:\ หรือ D:\ ระบบนี้ใช้โครงสร้างแบบต้นไม้ที่มี Root Directory เป็นจุดเริ่มต้นเพียงจุดเดียว ความเข้าใจโครงสร้างนี้เป็นพื้นฐานสำคัญสำหรับการบริหารจัดการ Server ทุกประเภท ตั้งแต่การติดตั้ง Software ไปจนถึงการแก้ปัญหาระบบ
บทความนี้จะอธิบาย Linux Filesystem Hierarchy Standard (FHS) ซึ่งเป็นมาตรฐานที่กำหนดตำแหน่งและหน้าที่ของแต่ละ Directory บน Linux Distribution หลัก ๆ ทั้งหมด
Root Directory และ Filesystem Hierarchy
ทุกอย่างใน Linux เริ่มต้นจาก Root Directory ซึ่งแทนด้วยสัญลักษณ์ / (slash เดียว) ไม่ว่าจะเป็น Hard Disk, USB Drive, Network Storage หรือ Virtual Filesystem ทุกอย่างถูก Mount เข้าไปในต้นไม้ที่มี / เป็นราก Filesystem Hierarchy Standard (FHS) กำหนดให้ทุก Distribution ใช้โครงสร้าง Directory มาตรฐานเดียวกัน ทำให้ Script และ Software ทำงานได้บน Distro ต่าง ๆ โดยไม่ต้องแก้ไข Path
Directory สำคัญและหน้าที่
/bin และ /usr/bin — คำสั่งพื้นฐาน
/bin เก็บคำสั่งพื้นฐานที่จำเป็นสำหรับการ Boot และการซ่อมระบบ เช่น ls, cp, mv, rm, bash บน Distro สมัยใหม่ส่วนใหญ่ /bin จะเป็น Symlink ไปยัง /usr/bin ซึ่งเก็บคำสั่งของผู้ใช้ทั่วไปทั้งหมด ส่วน /sbin และ /usr/sbin เก็บคำสั่งสำหรับผู้ดูแลระบบ เช่น fdisk, iptables, useradd
/etc — Configuration Files
/etc เป็น Directory ที่สำคัญที่สุดสำหรับ System Administrator เพราะเก็บ Configuration File ของทุก Service และระบบ ไฟล์สำคัญที่ควรรู้จัก ได้แก่
/etc/passwd— ข้อมูล User Account (ชื่อ, UID, Home Directory, Shell)/etc/shadow— Password Hash ที่เข้ารหัสแล้ว (อ่านได้เฉพาะ root)/etc/fstab— กำหนด Filesystem ที่ Mount อัตโนมัติตอน Boot/etc/hosts— Static Hostname Resolution/etc/ssh/sshd_config— Configuration ของ SSH Server/etc/crontab— Scheduled Tasks ระดับระบบ
/home — Home Directories
/home เก็บ Home Directory ของ User ทั่วไปแต่ละคน เช่น /home/somchai หรือ /home/deploy User แต่ละคนมีสิทธิ์เต็มใน Home Directory ของตัวเอง แต่ไม่สามารถเข้าถึง Home ของคนอื่นได้ (ยกเว้นมีสิทธิ์พิเศษ) ส่วน root user จะมี Home อยู่ที่ /root แยกต่างหาก
/var — Variable Data
/var เก็บข้อมูลที่เปลี่ยนแปลงบ่อยระหว่างการทำงาน ได้แก่
/var/log— Log File ของระบบและ Service ต่าง ๆ/var/www— Web Root สำหรับ Apache/Nginx (ค่าเริ่มต้น)/var/lib— ข้อมูลของ Application เช่น Database Files/var/spool— Queue Data เช่น Print Queue, Mail Queue/var/tmp— Temporary Files ที่เก็บไว้ระหว่าง Reboot
/tmp — Temporary Files
/tmp เก็บ Temporary File ที่ Application สร้างขึ้นระหว่างทำงาน ถูกล้างทุกครั้งที่ Reboot (บาง Distro Mount เป็น tmpfs ใน RAM) ห้ามเก็บข้อมูลสำคัญไว้ที่นี่เพราะอาจถูกลบได้ตลอดเวลา
/proc และ /sys — Virtual Filesystems
/proc เป็น Virtual Filesystem ที่ Kernel สร้างขึ้นใน Memory เพื่อแสดงข้อมูล Process และ System ตัวอย่างเช่น /proc/cpuinfo แสดงข้อมูล CPU, /proc/meminfo แสดงข้อมูล RAM, /proc/[PID]/ แสดงข้อมูลของ Process แต่ละตัว ส่วน /sys แสดงข้อมูล Hardware และ Kernel Parameter ที่ปรับได้ ทั้งสองไม่มีข้อมูลจริงบน Disk
/dev — Device Files
/dev เก็บ Device File ซึ่งเป็นหน้าต่างไปสู่ Hardware และ Virtual Device ตัวอย่างสำคัญ ได้แก่
/dev/sda,/dev/sdb— Hard Disk หรือ SSD/dev/sda1,/dev/sda2— Partition ของ Disk/dev/null— ทิ้งข้อมูลทุกอย่างที่ส่งเข้าไป (Black Hole)/dev/random,/dev/urandom— Random Number Generator/dev/tty— Terminal Device
/usr — User Programs
/usr เป็น Directory ขนาดใหญ่ที่เก็บโปรแกรมและข้อมูลที่ Share ระหว่าง User ได้แก่ /usr/bin (คำสั่ง), /usr/lib (Library), /usr/share (ข้อมูล Shared เช่น Man Page, Icon), /usr/local (Software ที่ติดตั้งเองนอก Package Manager)
/opt — Optional Packages
/opt ใช้สำหรับ Software ของบริษัทที่ติดตั้งแบบ Self-contained เช่น Google Chrome, JetBrains IDE, หรือ Commercial Application ที่ไม่ได้มาจาก Package Manager แต่ละ Package จะมี Subdirectory ของตัวเองใน /opt
/boot — Boot Files
/boot เก็บไฟล์ที่จำเป็นสำหรับ Boot Process ได้แก่ Kernel Image (vmlinuz), Initial RAM Disk (initrd), และ GRUB Bootloader Configuration ควรระวังไม่ให้ /boot เต็มเพราะจะทำให้ Kernel Update ล้มเหลว
การดู Disk Usage ของแต่ละ Directory
คำสั่งที่ใช้ตรวจสอบการใช้งาน Disk แยกตาม Directory มีดังนี้
# ดู disk usage ระดับบนสุด
du -sh /*
# ดูเฉพาะ /var เพื่อหาว่า log ใช้ space เท่าไร
du -sh /var/*
# ดู filesystem ที่ mount อยู่ทั้งหมด
df -h
Filesystem Types ที่พบบ่อยบน Server
| Filesystem | ใช้กับ | จุดเด่น |
|---|---|---|
| ext4 | Root, Data | เสถียร, ใช้งานทั่วไป, รองรับ Journal |
| xfs | Large Files, Database | ประสิทธิภาพสูง, Scale ได้ดี |
| btrfs | Modern Distros | Snapshot, RAID ในตัว, Compression |
| tmpfs | /tmp, /run | อยู่ใน RAM, เร็วมาก, ไม่ Persist |
| nfs | Network Share | Share ข้าม Server ได้ |
สรุป
การเข้าใจ Linux Filesystem Hierarchy ช่วยให้ผู้ดูแลระบบรู้ว่าต้องไปหา Configuration, Log, และ Executable ได้ที่ไหน หัวใจสำคัญคือ /etc สำหรับ Configuration, /var/log สำหรับ Log, /home สำหรับข้อมูล User, และ /proc กับ /sys สำหรับข้อมูล Runtime ของ Kernel โครงสร้างนี้มาตรฐานเดียวกันทุก Distro ทำให้ทักษะถ่ายโอนได้ทันที
แนะนำบริการ DE
หากต้องการทดลองสำรวจโครงสร้าง Filesystem และฝึกคำสั่งต่าง ๆ บน Server จริง Cloud VPS ของ DE ให้คุณเข้าถึง Root Shell ได้เต็มที่ พร้อม Image หลากหลาย Distro ให้เลือก เหมาะสำหรับฝึกทักษะ Administration โดยไม่กระทบระบบ Production
สำหรับผู้ที่ต้องการโฮสต์เว็บไซต์โดยไม่ต้องจัดการ Filesystem เอง Cloud Hosting ของ DE มีระบบจัดการไฟล์ผ่าน Control Panel ที่ใช้งานง่าย ไม่จำเป็นต้องรู้คำสั่ง Shell

