Linux คืออะไร ทำไมนักพัฒนาทุกคนควรใช้เป็น
เคยเจอไหม สมัครเช่าเซิร์ฟเวอร์มาตัวหนึ่ง พอ SSH เข้าไปก็เจอหน้าจอดำ ๆ มีแค่ตัวหนังสือกะพริบ ไม่มีปุ่มให้กด ไม่มีเมาส์ให้คลิก พิมพ์อะไรก็ไม่รู้ สุดท้ายก็ปิดหน้าต่างหนี
หรือทำเว็บเสร็จแล้วอยากเอาขึ้นออนไลน์ ทุกคู่มือบอกให้ “รันคำสั่งนี้บน Ubuntu” แต่เราใช้ Windows อยู่ ไม่รู้จะเริ่มตรงไหน
ซีรีส์นี้จะพาคุณจากศูนย์ไปถึงจุดที่ “อยู่บนเทอร์มินัล Linux ได้อย่างสบายใจ” ดูแลเซิร์ฟเวอร์ Ubuntu ตัวเล็ก ๆ ได้เอง เขียนสคริปต์อัตโนมัติได้ และไม่กลัวหน้าจอดำอีกต่อไป
Linux คืออะไร
Linux คือ ระบบปฏิบัติการ (operating system — OS) เหมือน Windows หรือ macOS คือซอฟต์แวร์ที่อยู่ระหว่าง “ฮาร์ดแวร์” (ซีพียู แรม ดิสก์ การ์ดเน็ต) กับ “โปรแกรมที่คุณใช้งาน” คอยจัดสรรว่าโปรแกรมไหนได้ใช้ซีพียูตอนไหน ไฟล์เก็บอยู่ที่ไหน โปรแกรมคุยกับเน็ตยังไง
จุดต่างที่สำคัญ: Linux เป็น โอเพนซอร์ส (open source) — ซอร์สโค้ดเปิดให้ทุกคนดู แก้ และแจกจ่ายต่อได้ฟรี ภายใต้สัญญาอนุญาตชื่อ GPL ใครจะเอาไปดัดแปลงทำระบบของตัวเองก็ได้ นี่คือเหตุผลที่มี Linux “หลายรุ่น” (เดี๋ยวจะอธิบาย) และเป็นเหตุผลที่บริษัทคลาวด์ทั่วโลกเลือกใช้ — ไม่ต้องจ่ายค่าไลเซนส์ต่อเครื่อง และควบคุมได้เต็มที่
Linus Torvalds เริ่มเขียน Linux ตั้งแต่ปี 1991 ตอนเป็นนักศึกษา ตอนนี้มันกลายเป็นโครงการซอฟต์แวร์ที่ใหญ่ที่สุดโครงการหนึ่งในโลก มีคนช่วยพัฒนาหลายพันคนจากหลายบริษัท
kernel กับ distribution ไม่ใช่สิ่งเดียวกัน
มือใหม่สับสนเรื่องนี้มาก แยกให้ชัดตั้งแต่ตอนนี้
พูดให้ตรงเป๊ะ “Linux” หมายถึงแค่ kernel (เคอร์เนล) — หัวใจของระบบที่คุยกับฮาร์ดแวร์โดยตรง แต่ kernel เปล่า ๆ ใช้งานไม่ได้ ต้องมีของประกอบอีกเยอะ เช่น
- โปรแกรมพื้นฐาน (
ls,cp,cat— มาจากโครงการ GNU) - ตัวจัดการแพ็กเกจ (ไว้ติดตั้งซอฟต์แวร์)
- shell (ตัวรับคำสั่งที่คุณพิมพ์)
- ระบบจัดการบริการตอนบูต
- (ถ้าเป็นเดสก์ท็อป) หน้าจอกราฟิก
พอเอา kernel + ของประกอบทั้งหมดมามัดรวมเป็นชุดพร้อมติดตั้ง เรียกว่า distribution (ดิสทริบิวชัน หรือเรียกสั้น ๆ ว่า “distro”)
โปรแกรมที่คุณใช้ (เว็บเซิร์ฟเวอร์, ฐานข้อมูล, editor)
↑
┌─ distribution = kernel + เครื่องมือ + แพ็กเกจ + ...
│
│ ┌─ Linux kernel — คุยกับฮาร์ดแวร์โดยตรง
│ └─
└─
↑
ฮาร์ดแวร์ (CPU / RAM / Disk / Network)distro ยอดนิยม
| distro | ตระกูล | ใช้ทำอะไรบ่อย | ตัวจัดการแพ็กเกจ |
|---|---|---|---|
| Ubuntu | Debian | เซิร์ฟเวอร์, เดสก์ท็อป, มือใหม่ | apt |
| Debian | Debian | เซิร์ฟเวอร์ที่เน้นเสถียร | apt |
| Linux Mint | Debian/Ubuntu | เดสก์ท็อปสำหรับคนย้ายจาก Windows | apt |
| Fedora | Red Hat | เดสก์ท็อปนักพัฒนา, ของใหม่ล่าสุด | dnf |
| RHEL / Rocky / Alma | Red Hat | องค์กร, enterprise | dnf |
| Arch | Arch | คนชอบประกอบเอง เรียนรู้ลึก | pacman |
| Alpine | — | คอนเทนเนอร์ Docker (เล็กมาก) | apk |
ทุก distro ใช้ Linux kernel ตัวเดียวกัน (เวอร์ชันอาจต่างกัน) ความรู้ในซีรีส์นี้ย้ายข้าม distro ได้เกือบหมด จะต่างกันหลัก ๆ ที่ “คำสั่งติดตั้งซอฟต์แวร์” (apt vs dnf vs pacman)
Ubuntu คืออะไร ทำไมซีรีส์นี้ใช้ Ubuntu
Ubuntu เป็น distro ที่สร้างต่อยอดจาก Debian โดยบริษัทชื่อ Canonical ออกรุ่นใหม่ทุก 6 เดือน และมีรุ่นพิเศษชื่อ LTS (Long-Term Support) ทุก 2 ปี ที่ได้รับอัปเดตความปลอดภัยยาว 5 ปี (เช่น Ubuntu 22.04 LTS, 24.04 LTS — ตัวเลขคือ ปี.เดือน ที่ออก)
เหตุผลที่ซีรีส์นี้เลือก Ubuntu
- เป็นมาตรฐานโดยพฤตินัยของเซิร์ฟเวอร์ — ผู้ให้บริการคลาวด์ทุกเจ้า (AWS, DigitalOcean, Google Cloud, Vultr) มี Ubuntu ให้เลือกเป็นค่าเริ่มต้น
- คู่มือเยอะที่สุด — พิมพ์ปัญหาไปใน Google ต่อท้ายด้วย “ubuntu” มักเจอคำตอบทันที
aptใช้ง่าย — ติดตั้งซอฟต์แวร์ได้ด้วยคำสั่งเดียว- ลองได้ฟรีบน Windows ผ่าน WSL2 (บทหน้าจะสอน) ไม่ต้องลงเครื่องจริง ไม่ต้องแบ่งพาร์ทิชัน
Linux อยู่ที่ไหนบ้าง (อาจมากกว่าที่คิด)
- เว็บเซิร์ฟเวอร์ — เว็บส่วนใหญ่ในโลกรันบน Linux
- คลาวด์ — AWS, Google Cloud, Azure ข้างในเป็น Linux แทบทั้งหมด
- Android — ข้างใต้เป็น Linux kernel
- อุปกรณ์ IoT / เราเตอร์ / สมาร์ททีวี / ระบบในรถ
- ซูเปอร์คอมพิวเตอร์ — 500 อันดับแรกของโลกเป็น Linux ทั้งหมด
- Docker / Kubernetes — คอนเทนเนอร์ทุกตัวคือ Linux
พูดง่าย ๆ ถ้าคุณเขียนโปรแกรมที่ต้องไปรันบนเซิร์ฟเวอร์ที่ไหนสักแห่ง — เกือบแน่นอนว่ามันคือ Linux
ทำไมนักพัฒนาต้องใช้ Linux เป็น
- โปรแกรมที่คุณเขียน สุดท้ายจะไปรันบน Linux — dev บนเครื่องตัวเองให้เหมือน production มากที่สุดช่วยลดปัญหา “ในเครื่องผมรันได้นี่”
- เครื่องมือ dev สมัยใหม่เกิดมาเพื่อ command line — Git, Docker, ตัวจัดการแพ็กเกจของทุกภาษา, CI/CD ล้วนใช้ผ่านเทอร์มินัล
- แก้ปัญหาเซิร์ฟเวอร์ได้เอง — เว็บล่มตอนตี 2 ไม่ต้องรอใคร SSH เข้าไปดู log เองได้
- อัตโนมัติทุกอย่างได้ — งานซ้ำ ๆ เขียน shell script สั่งทีเดียวจบ
- เข้าใจว่าคอมพิวเตอร์ทำงานยังไงจริง ๆ — Linux ไม่ซ่อนอะไรจากคุณ ทุกอย่างเป็นไฟล์ที่เปิดอ่านได้
ภาพรวมสิ่งที่จะได้เรียนในซีรีส์นี้
- เฟส 1: เข้าถึง Ubuntu, รู้จักเทอร์มินัล, โครงสร้างไฟล์ระบบ, คำสั่งจัดการไฟล์
- เฟส 2: แก้ไฟล์ด้วย nano, สิทธิ์ไฟล์ (permissions), ผู้ใช้และ
sudo, ค้นหาไฟล์และข้อความ, ท่อ (pipe) - เฟส 3: เครื่องมือประมวลผลข้อความ (
sed,awk), การทำงานของ shell, เขียน shell script, ตั้ง cron - เฟส 4: กระบวนการ (process), systemd, ติดตั้งซอฟต์แวร์ด้วย
apt, ดิสก์, log ของระบบ - เฟส 5: เครือข่าย, SSH, โอนไฟล์ (
scp/rsync), บีบอัด (tar), ไฟร์วอลล์ - เฟส 6: ตั้งค่า server ตัวใหม่ทั้งเครื่อง, เทคนิคทำงานเร็วขึ้น, ปรับแต่ง shell, แก้ปัญหาที่เจอบ่อย
ทุกบทมีคำสั่งให้พิมพ์ตามได้จริง ไม่ต้องท่อง ขอแค่เข้าใจว่าแต่ละคำสั่งกำลังทำอะไรกับอะไร
เรื่องที่คนมักพลาด
- คิดว่า Linux ต้องเป็นหน้าจอดำล้วน ๆ — Ubuntu มีหน้าจอกราฟิกสวยงามเหมือน Windows แต่บนเซิร์ฟเวอร์เรามักใช้แค่เทอร์มินัลเพราะเบาและสั่งงานทางไกลง่าย ซีรีส์นี้เน้นเทอร์มินัลเพราะเป็นทักษะที่ย้ายไปใช้ที่ไหนก็ได้
- สับสนระหว่าง “Linux” กับ “Ubuntu” — Linux คือ kernel, Ubuntu คือ distro หนึ่งที่ห่อ kernel นั้นมาให้พร้อมใช้ เวลาคนพูดว่า “ลง Linux” มักหมายถึง “ลง distro สักตัว”
- กลัวว่าต้องลบ Windows ทิ้ง — ไม่ต้องเลย บทหน้าจะใช้ WSL2 รัน Ubuntu อยู่ข้างใน Windows พร้อมกันได้
- คิดว่าคำสั่งของ distro หนึ่งใช้กับอีก distro ไม่ได้ — ส่วนใหญ่ใช้ได้หมด ต่างกันหลัก ๆ แค่คำสั่งติดตั้งแพ็กเกจ
- ข้ามพื้นฐานไปลองทำ server จริงเลย — พลาดคำสั่งเดียวบนเครื่องจริงอาจลบข้อมูลถาวรหรือ lock ตัวเองออกจากเซิร์ฟเวอร์ เรียนบนเครื่องทดลองก่อนเสมอ
สรุป
- Linux = ระบบปฏิบัติการโอเพนซอร์ส ขับเคลื่อนเซิร์ฟเวอร์ คลาวด์ Android และอุปกรณ์เกือบทุกอย่าง
- “Linux” จริง ๆ หมายถึงแค่ kernel — ต้องมี distribution ห่อมาให้พร้อมใช้ (Ubuntu, Debian, Fedora, …)
- ทุก distro ใช้ kernel เดียวกัน ความรู้ย้ายข้ามได้ ต่างกันหลักที่ตัวจัดการแพ็กเกจ (
apt/dnf/pacman) - Ubuntu เป็นมาตรฐานของเซิร์ฟเวอร์ คู่มือเยอะ
aptใช้ง่าย ลองฟรีบน Windows ได้ผ่าน WSL2 - นักพัฒนาต้องใช้เป็นเพราะโค้ดสุดท้ายไปรันบน Linux และเครื่องมือ dev สมัยใหม่ทำงานผ่าน command line
บทถัดไปเราจะลงมือ — ดูวิธีเข้าถึง Ubuntu ทั้งบน Windows (WSL2), เครื่องเสมือน, และ cloud VPS แล้วเลือกทางที่เหมาะกับคุณ