Notes & software courses · Free to learn
Aph's Blog
On this page

ระบบปฏิบัติการ, ไฟล์ & Command Line

👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ

OS จัดการฮาร์ดแวร์ให้โปรแกรมใช้, ระบบไฟล์ทำงานอย่างไร และคำสั่ง terminal พื้นฐานที่นักพัฒนาต้องรู้

ระหว่างฮาร์ดแวร์กับโปรแกรมที่เราใช้ มีตัวกลางสำคัญคือระบบปฏิบัติการ (OS) และนักพัฒนาทุกคนต้องคุ้นเคยกับการสั่งงานผ่าน command line บทย่อยนี้ปูพื้นทั้งสองเรื่อง

ระบบปฏิบัติการ (Operating System) คืออะไร

OS เช่น Windows, macOS, Linux คือโปรแกรมตัวกลางที่จัดการฮาร์ดแวร์ให้โปรแกรมอื่น ๆ ใช้งานได้ ถ้าไม่มี OS โปรแกรมแต่ละตัวจะต้องรู้วิธีคุยกับฮาร์ดแวร์ทุกชิ้นเอง ซึ่งยุ่งยากมาก

  • จัดสรร RAM ให้แต่ละโปรแกรม ไม่ให้แย่งกัน
  • จัดคิวให้ CPU ว่าจะทำงานของโปรแกรมไหนเมื่อไหร่
  • จัดการไฟล์และโฟลเดอร์ใน storage
  • ควบคุมการเข้าถึงอุปกรณ์ (จอ คีย์บอร์ด เครือข่าย)
Process คืออะไร

เมื่อเปิดโปรแกรมหนึ่งตัว OS จะสร้าง "process" ขึ้นมา — คือโปรแกรมที่กำลังรันพร้อมหน่วยความจำของมัน OS สลับ CPU ไปมาระหว่าง process หลายตัวเร็วมากจนเหมือนทำงานพร้อมกัน (multitasking)

ระบบไฟล์ (File System)

ข้อมูลใน storage จัดเก็บเป็นไฟล์ (file) และจัดกลุ่มในโฟลเดอร์ (folder/directory) ซ้อนกันเป็นลำดับชั้นเหมือนต้นไม้ ตำแหน่งของไฟล์ระบุด้วย path (เส้นทาง)

/Users/aphisit/                 <- โฟลเดอร์ผู้ใช้
├── Documents/
│   └── project/
│       ├── main.py            <- ไฟล์โค้ด
│       └── notes.txt
└── Pictures/
    └── photo.jpg

path ของ main.py:
/Users/aphisit/Documents/project/main.py

นามสกุลไฟล์ (.py, .txt, .jpg) บอกชนิดของไฟล์ ช่วยให้ OS และโปรแกรมรู้ว่าควรเปิดด้วยอะไร เช่น .py คือไฟล์ Python, .txt คือข้อความธรรมดา

Absolute path vs Relative path (ต้องแยกให้ออก)

path มี 2 แบบ: absolute เริ่มจากรากของระบบ (ชี้ตำแหน่งเดียวเสมอ) ส่วน relative อ้างจากโฟลเดอร์ปัจจุบันที่เรายืนอยู่ — เป็นเรื่องที่มือใหม่งงบ่อยเวลารันโปรแกรมแล้ว "หาไฟล์ไม่เจอ"

absolute (เต็ม):  /Users/aphisit/Documents/project/main.py
relative (จากในโฟลเดอร์ project):
  main.py            <- ไฟล์ในโฟลเดอร์ปัจจุบัน
  ./main.py          <- . = โฟลเดอร์ปัจจุบัน (เหมือนกัน)
  ../notes.txt       <- .. = โฟลเดอร์แม่ (ถอยขึ้นหนึ่งชั้น)
  data/users.csv     <- เข้าโฟลเดอร์ย่อย data
บั๊กยอดฮิต: รันโปรแกรมแล้วหาไฟล์ไม่เจอ

มักเกิดเพราะใช้ relative path แต่รันโปรแกรมจากโฟลเดอร์อื่น (path อ้างจาก "ที่ที่รัน" ไม่ใช่ที่ไฟล์โค้ดอยู่) — ตรวจด้วย pwd ว่าตอนรันอยู่โฟลเดอร์ไหน หรือใช้ absolute path เมื่อไม่แน่ใจ

Command Line (Terminal)

นอกจากคลิกเมาส์ เรายังสั่งงานคอมพิวเตอร์ด้วยการพิมพ์คำสั่งใน terminal ได้ เครื่องมือสายพัฒนาจำนวนมาก (เช่น Git, การรันโปรแกรม, การติดตั้ง package) ใช้ผ่าน terminal ทักษะนี้จึงสำคัญมาก

bash
# คำสั่ง terminal พื้นฐาน (macOS / Linux)
pwd            # บอกว่าตอนนี้อยู่โฟลเดอร์ไหน (print working directory)
ls             # แสดงไฟล์ในโฟลเดอร์ปัจจุบัน
cd project     # เข้าไปในโฟลเดอร์ชื่อ project (change directory)
cd ..          # ถอยออกไปโฟลเดอร์แม่
mkdir test     # สร้างโฟลเดอร์ใหม่ชื่อ test
touch a.py     # สร้างไฟล์ว่างชื่อ a.py
python a.py    # รันไฟล์ Python
คำสั่งทำอะไรWindows (cmd) เทียบเท่า
pwdบอกโฟลเดอร์ปัจจุบันcd
lsแสดงไฟล์dir
cd <ชื่อ>เข้าโฟลเดอร์cd <ชื่อ>
mkdir <ชื่อ>สร้างโฟลเดอร์mkdir <ชื่อ>
cat <ไฟล์>แสดงเนื้อหาไฟล์type <ไฟล์>
cp <a> <b>ก็อปไฟล์copy
mv <a> <b>ย้าย/เปลี่ยนชื่อmove / ren
rm <ไฟล์>ลบไฟล์ (ระวัง! ไม่มีถังขยะ)del
rm อันตราย — ไม่มีถังขยะ

ใน terminal คำสั่ง rm ลบไฟล์ทิ้งถาวรทันที ไม่ไปลง Recycle Bin/Trash โดยเฉพาะ rm -rf <โฟลเดอร์> ที่ลบทั้งโฟลเดอร์ — ตรวจให้ดีก่อน Enter ทุกครั้ง นี่คือคำสั่งที่นักพัฒนาเผลอลบงานตัวเองบ่อยที่สุด

ในเว็บนี้สั่งคำสั่งได้เลย

ถ้าใช้ Claude Code อยู่ พิมพ์ขึ้นต้นด้วย ! ตามด้วยคำสั่ง (เช่น !ls) เพื่อรันใน session ได้เลย แต่ตอนนี้แค่เข้าใจแนวคิดและจำคำสั่งพื้นฐานก็พอ ฝึกใช้จริงตอนติดตั้งเครื่องมือพัฒนา

สรุปหัวข้อนี้

  • OS (Windows/macOS/Linux) คือตัวกลางจัดการฮาร์ดแวร์ให้โปรแกรมใช้ — RAM, CPU, ไฟล์, อุปกรณ์
  • process = โปรแกรมที่กำลังรัน; OS สลับ CPU ให้หลาย process จนเหมือนทำงานพร้อมกัน
  • ไฟล์จัดในโฟลเดอร์เป็นลำดับชั้น ระบุตำแหน่งด้วย path; นามสกุลบอกชนิดไฟล์
  • command line สั่งงานด้วยการพิมพ์ — pwd, ls, cd, mkdir คือพื้นฐานที่ต้องรู้
แบบฝึกหัด

1) เปิด terminal (Terminal บน Mac / Command Prompt บน Windows) ลองพิมพ์ pwd และ ls 2) สร้างโฟลเดอร์ชื่อ practice ด้วย mkdir แล้ว cd เข้าไป 3) เขียน path เต็มของไฟล์ใดไฟล์หนึ่งในเครื่องคุณ 4) ไฟล์ .py, .jpg, .txt ต่างกันอย่างไร