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ตระกูลใช้ทำอะไรบ่อยตัวจัดการแพ็กเกจ
UbuntuDebianเซิร์ฟเวอร์, เดสก์ท็อป, มือใหม่apt
DebianDebianเซิร์ฟเวอร์ที่เน้นเสถียรapt
Linux MintDebian/Ubuntuเดสก์ท็อปสำหรับคนย้ายจาก Windowsapt
FedoraRed Hatเดสก์ท็อปนักพัฒนา, ของใหม่ล่าสุดdnf
RHEL / Rocky / AlmaRed Hatองค์กร, enterprisednf
ArchArchคนชอบประกอบเอง เรียนรู้ลึก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 แล้วเลือกทางที่เหมาะกับคุณ