หลายคนมองว่า Windows และ Linux เป็นสองโลกที่แยกจากกัน จนกว่าจะได้รู้จัก Windows Subsystem for Linux ผมเองก็คิดแบบนั้น จนต้องเสียเวลาสามปีสลับระหว่าง virtual machine และ dual-boot เพียงเพื่อรันคำสั่ง Linux พื้นฐาน Bash for Windows ตัดความยุ่งยากเหล่านั้นออกไป โดยนำฟังก์ชันการทำงานของ Linux มาไว้ใน Windows โดยตรง
Bash ถูกสร้างขึ้นมาสำหรับ Linux และทำหน้าที่เป็น interpreter สำหรับประมวลผลคำสั่ง shell พูดง่าย ๆ คือ shell รับคำสั่งที่คุณพิมพ์แล้วส่งต่อไปยังระบบปฏิบัติการเพื่อดำเนินการ ฟังก์ชัน Linux Bash shell นี้มีประโยชน์มากเมื่อคุณต้องการเข้าถึงเครื่องมือและ workflow ของ Linux
แม้ Windows จะมี PowerShell ติดมาอยู่แล้ว แต่หลายคนอาจสงสัยว่าทำไมต้องติดตั้ง Linux Bash บน Windows 10 หรือ Windows 11 ด้วย คำตอบที่ผมได้จากประสบการณ์พัฒนาซอฟต์แวร์มาหลายปีคือ เมื่อต้องการใช้ Linux บน Windows 10 วิธีแก้ปัญหาแบบเดิม ๆ สร้างความปวดหัวมากกว่าจะช่วยได้จริง
นักพัฒนามักพึ่งพา virtual machine, Cygwin และ PuTTY เพื่อใช้งาน Linux บน Windows วิธีเหล่านั้นใช้งานได้จริง แต่ก็มาพร้อมกับปัญหาของตัวเอง
Windows 10 VPS การโฮสติ้ง
รับ Windows 10 VPS สำหรับ Remote Desktop ในราคาที่ดีที่สุด ใช้งาน Windows 10 ฟรี บน NVMe SSD storage และอินเทอร์เน็ตความเร็วสูง
ดูแพ็กเกจ Windows 10 VPSเกิดอะไรขึ้นเมื่อคุณติดตั้ง Bash บน Windows 10?
สิ่งที่เกิดขึ้นคือ เมื่อคุณ ติดตั้ง Linux บน Windows 10คุณจะได้ Linux environment จริง ๆ ที่ทำงานควบคู่ไปกับ Windows โดยตรง พูดง่าย ๆ คือปัญหาทั้งหมดของ emulator หายไป และคุณสามารถรันคำสั่ง Linux ได้โดยไม่มีการสูญเสียประสิทธิภาพแบบเดิม
อย่างไรก็ตาม ความแตกต่างของ kernel ก็สร้างข้อจำกัดที่เป็นรูปธรรมอยู่บ้าง WSL 1 (เวอร์ชันแรก) ต้องแปลง Linux system call เป็น Windows system call ซึ่งทำให้เกิด overhead ด้านประสิทธิภาพที่สังเกตได้ชัด WSL 2 แก้ปัญหาส่วนใหญ่เหล่านี้ด้วยการรวม Linux kernel จริงไว้ใน virtual machine ขนาดเล็ก แต่ประสิทธิภาพก็ยังไม่เทียบเท่า Linux แบบ bare metal
ผลกระทบที่สำคัญที่สุดที่ผมพบคือเรื่องการเข้าถึงฮาร์ดแวร์และ kernel module คุณไม่สามารถโหลด kernel module แบบ custom ได้หากไม่คอมไพล์ WSL kernel เอง และการเข้าถึงฮาร์ดแวร์โดยตรงผ่าน /dev device ทำได้จำกัด เครื่องมืออย่างการ mount ไฟล์ ISO เป็น block device หรือการใช้ driver เฉพาะฮาร์ดแวร์จะไม่ทำงาน เนื่องจากระบบ kernel module ทำงานต่างจาก Linux แบบ native
นอกจากนี้ การตั้งค่า Linux terminal บน Windows ยังขจัดการประนีประนอมที่ผมเคยต้องทำเมื่อทำงานกับ open-source tool บน Windows ไม่ต้องสลับระหว่างระบบระหว่างโปรเจกต์ หรือจัดการปัญหาความเข้ากันได้อีกต่อไป
หมายเหตุ: Bash ติดตั้งได้เฉพาะบนระบบ 64-bit เท่านั้น และไม่รองรับ Windows เวอร์ชัน 32-bit ข้อจำกัดนี้มีขึ้นเพราะ WSL ถูกออกแบบมาเพื่อรัน Linux binary แบบ 64-bit (รูปแบบ ELF64) โดยเฉพาะ ส่วนประกอบ Windows kernel ที่รองรับ WSL พึ่งพา instruction และกลไกเฉพาะ x64 เพื่อประสิทธิภาพและความเสถียร เนื่องจากฮาร์ดแวร์สมัยใหม่รองรับสถาปัตยกรรม 64-bit อย่างแพร่หลาย Microsoft จึงมุ่งพัฒนาเฉพาะบนแพลตฟอร์มนี้
ข้อกำหนดเวอร์ชัน Windows:
- Windows 10: ต้องใช้เวอร์ชัน 2004 (build 19041) ขึ้นไป
- Windows 11: รองรับทุกเวอร์ชัน
ตรวจสอบเวอร์ชันของคุณ: กด Win+R แล้วพิมพ์ winverจากนั้นกด Enter.
ติดตั้ง Linux Bash บน Windows 10 และ Windows 11
คำตอบสั้น ๆ: Go พร้อม Ubuntu เกือบหนึ่งในสี่ของนักพัฒนาทั่วโลกใช้ Ubuntu ในปี 2024 ทำให้เป็น distro Linux ที่ได้รับความนิยมสูงสุด เหมาะสำหรับผู้เริ่มต้น มีเอกสารประกอบครบถ้วน และมีชุมชนผู้ใช้งานที่ใหญ่ที่สุด
ความต้องการของระบบ Windows 10 เวอร์ชัน 2004 (บิลด์ 19041) ขึ้นไป หรือ Windows 11 ทุกเวอร์ชัน ขั้นตอนการติดตั้ง Linux บน Windows 10 นั้นเหมือนกันทุกประการบนทั้งสองระบบโดยใช้วิธีการติดตั้งแบบใหม่
ขั้นตอนเหล่านี้ใช้ได้กับ distro อื่น ๆ เช่น SUSE หรือ Debian ด้วย ดังนั้นไม่ว่าจะเลือก distro ไหนก็ทำตามขั้นตอนเดิมได้เลย นี่คือภาพรวม:
- เปิดใช้งาน Windows Subsystem for Linux
- ดาวน์โหลดและติดตั้ง Linux distro ที่ต้องการ
ขั้นตอนที่ 1: เปิดใช้งานฟีเจอร์ Windows Subsystem for Linux (WSL)
ก่อนติดตั้ง Linux Bash บน Windows คุณต้องเปิดใช้งาน Windows Subsystem for Linux ก่อน พูดง่าย ๆ คือบอกให้ Windows รู้ว่าอนุญาตให้รัน Linux ควบคู่กับโปรแกรม Windows ได้
พิมพ์ "Turn Windows features on or off" ในช่องค้นหาของ Windows แล้วคลิก Open จะเปิดหน้า อินเทอร์เฟซจัดการคุณสมบัติเพิ่มเติม ซึ่งใช้เพิ่มหรือลบส่วนประกอบของระบบได้

จากนั้นติ๊กถูกที่ "Virtual Machine Platform" และ "Windows Subsystem for Linux" ทั้งสองฟีเจอร์นี้จำเป็นสำหรับการทำงานทั้งหมด บางครั้งอาจไม่ได้ถูกเลือกไว้ตั้งแต่ต้น ควรตรวจสอบก่อนดำเนินการต่อ


หาก Windows Features dialog ไม่เปิดหรือหา WSL ไม่พบ: น่าจะเป็นเพราะคุณใช้บิลด์ Windows 10 เวอร์ชันเก่า ให้รัน winver เพื่อตรวจสอบเวอร์ชัน โดยต้องใช้บิลด์ 19041 ขึ้นไป หากเป็นเวอร์ชันเก่ากว่านั้น ให้เปิด Developer Mode ก่อนที่ Settings > Update & Security > For Developers
หรือจะใช้ PowerShell ก็ได้หากถนัดแบบ command-line ค้นหา "Windows PowerShell" แล้วเลือก "Run as Administrator"

จากนั้นรันคำสั่งนี้:
Enable-WindowsOptionalFeature –Online –FeatureName Microsoft-windows-subsystem-linux

หากพบข้อผิดพลาด "access denied": ตรวจสอบให้แน่ใจว่าเปิด PowerShell ในโหมด Administrator คลิกขวาที่ไอคอน PowerShell แล้วเลือก "Run as Administrator"
รอสักครู่จนกว่าจะเห็นหน้าต่างยืนยัน

Windows จะขอให้รีสตาร์ตเครื่อง พิมพ์ Y แล้วกด Enter ระบบของคุณพร้อมสำหรับขั้นตอนถัดไปแล้ว
ขั้นตอนที่ 2: ดาวน์โหลด Linux Distro จาก Microsoft Store
หลังจากที่คอมพิวเตอร์รีสตาร์ทแล้ว ให้เปิด Microsoft Store และค้นหา Ubuntu การดาวน์โหลด Linux สำหรับ Windows 10 ในขั้นตอนนี้ง่ายกว่าวิธีเดิมมาก

เลือก Ubuntu 20.04 LTS (เวอร์ชัน Long-Term Support ล่าสุด) แล้วติดตั้ง

หากการติดตั้งค้างหรือล้มเหลว: ล้าง cache ของ Microsoft Store โดยกด Win+R แล้วพิมพ์ wsreset.exeจากนั้นกด Enter รอให้หน้าต่างว่างปิดตัวลง แล้วลองติดตั้ง Ubuntu ใหม่อีกครั้ง
เคล็ดลับ: ถ้าปิดหน้า Microsoft Store ไปโดยไม่ตั้งใจหลังติดตั้งเสร็จ ให้ค้นหา Ubuntu ในช่องค้นหาของ Windows แล้วเปิดจากที่นั่นได้เลย
สิ่งสำคัญที่ต้องตรวจสอบ: ตรวจให้แน่ใจว่า Ubuntu ติดตั้งลงไดรฟ์ C (ไดรฟ์ระบบ) เนื่องจาก WSL รันได้เฉพาะจากไดรฟ์ระบบเท่านั้น ซึ่งช่วยป้องกันปัญหาที่อาจเกิดขึ้นในภายหลัง

การติดตั้งใช้เวลาสักสองสามนาที เบื้องหลังนั้น Windows กำลังสร้าง Linux subsystem จริงที่ผสานรวมเข้ากับระบบที่มีอยู่ ไม่ใช่ virtual machine แต่เป็นเหมือนการรองรับสองระบบปฏิบัติการบนเครื่องเดียวกัน

เมื่อ terminal เปิดขึ้น ระบบจะให้ตั้ง username และรหัสผ่านสำหรับ Linux ซึ่งไม่จำเป็นต้องตรงกับข้อมูลล็อกอิน Windows ของคุณ เพียงเท่านี้ก็ถือว่าติดตั้ง Bash เสร็จสมบูรณ์แล้ว
หากหา Ubuntu ไม่พบหลังจากติดตั้งแล้ว:ลองทำตามขั้นตอนเหล่านี้ตามลำดับ:
- ค้นหา "Ubuntu" ใน Start menu ของ Windows
- เปิด Command Prompt แล้วพิมพ์ wsl เปิดใช้งานโดยตรง
ถ้ายังไม่ได้ผล ให้รัน wsl –install -d Ubuntu ใน PowerShell เป็นผู้ดูแลระบบ

ประเภท clear เพื่อล้างหน้าจอ เท่านี้ก็เสร็จ คุณมี Linux terminal ที่ใช้งานได้บน Windows พร้อมทำงานควบคู่ไปกับแอปพลิเคชัน Windows อื่นๆ ได้เลย
หมายเหตุ: นอกจากการเปิด Bash เป็นแอปพลิเคชันใน Windows 10 แล้ว คุณยังสามารถเปิด Bash บน Windows 10 ได้โดยพิมพ์ Bash ใน Windows Command Prompt และถ้าต้องการออกจาก Bash กลับไปยัง Windows ให้พิมพ์ exit เท่านี้คุณก็รู้วิธีเปิด Linux terminal บน Windows ครบทุกวิธีแล้ว
ขั้นตอนที่ 3: อัปเกรดเป็น WSL2 และฟีเจอร์ล่าสุด
ในขั้นตอนก่อนหน้า เราได้เปิดใช้งานฟีเจอร์ Virtual Machine Platform ไปแล้ว ตรวจสอบให้แน่ใจว่าทำขั้นตอนนั้นครบถ้วน เพราะจำเป็นสำหรับ WSL2
ตอนนี้เปิด PowerShell ในฐานะ Administrator แล้วรันคำสั่งนี้เพื่ออัปเกรดจาก WSL1 เป็น WSL2:
wsl –set-default-version 2
การอัปเกรดใช้เวลาประมาณ 5 ถึง 10 นาที ตรวจสอบว่าอัปเกรดสำเร็จโดยรัน:
wsl -l -v
ต้องการ Remote Desktop ไหม?
RDP Server ที่เชื่อถือได้พร้อม Uptime 99.95% พกพา Desktop ของคุณไปใช้ได้ทั้งในสหรัฐอเมริกา ยุโรป และเอเชีย
รับ RDP Serverสิ่งที่ WSL2 ทำได้ดีกว่า: WSL2 ใช้ Linux kernel จริงแทนที่จะเป็นชั้นแปลจาก WSL1 ซึ่งหมายถึงการดำเนินการไฟล์ที่เร็วขึ้น ความเข้ากันได้ของการเรียกระบบแบบเต็ม และประสิทธิภาพที่ดีกว่าสำหรับบรรทัดคำสั่ง Linux สำหรับการรวม Windows ประสบการณ์ Linux Bash Windows จะตอบสนองได้อย่างมีนัยสำคัญมากขึ้นด้วย WSL2
การปรับปรุง WSL2 ล่าสุดที่ควรรู้:
Microsoft อัปเดต WSL2 อย่างต่อเนื่องตลอดปี 2024 และ 2025 เคอร์เนล Linux ได้รับการอัปเกรดจากเวอร์ชัน 5.15 เป็น 6.6 ซึ่งช่วยเพิ่มประสิทธิภาพและรองรับฮาร์ดแวร์ได้ดีขึ้นอย่างเห็นได้ชัด อัปเดตเป็นเวอร์ชันล่าสุดได้ทุกเมื่อด้วยคำสั่ง:
wsl –update
อ่านเพิ่มเติม: เปิดตัว Windows Subsystem สำหรับ Linux!
ฟีเจอร์ใหม่ประกอบด้วยการคืนหน่วยความจำอัตโนมัติ (WSL จะปล่อยหน่วยความจำที่ไม่ได้ใช้คืนให้ Windows), การรักษาความปลอดภัยระดับองค์กรที่ดีขึ้น และแอปตั้งค่าแบบ GUI ที่ช่วยให้การปรับแต่งง่ายกว่าการแก้ไขไฟล์ config ด้วยตนเองมาก
สำหรับระบบรุ่นใหม่: ผู้ใช้ Windows 11 จะได้รับสิทธิประโยชน์เพิ่มเติม เช่น รองรับกราฟิกได้ดีขึ้นและระบบไฟล์ทำงานร่วมกันได้ลื่นไหลกว่าเดิม หากคุณใช้ Windows 10 อยู่ คุณยังคงได้รับการปรับปรุงประสิทธิภาพหลักทั้งหมด แต่ฟีเจอร์ขั้นสูงบางอย่างต้องใช้ Windows 11
สรุป
สรุป
Linux และ Windows เป็นระบบปฏิบัติการที่แตกต่างกันโดยธรรมชาติ แต่ละตัวมีจุดเด่นของตัวเอง PowerShell โดดเด่นในด้านการจัดการ Windows ส่วน Bash เปิดประตูสู่ระบบนิเวศโอเพนซอร์สที่กว้างกว่า การมีทั้งสองบนเครื่องเดียวกัน? นั่นคือประโยชน์ที่จับต้องได้จริงๆ
Microsoft สร้าง Windows Subsystem for Linux ขึ้นมาเพื่อแก้ปัญหานี้โดยตรง พูดง่ายๆ คือ พวกเขาทำให้เครื่องมือของ Linux รันได้บน Windows แบบ native โดยไม่ต้องยุ่งยากกับ virtual machine
สิ่งที่คุณทำสำเร็จจากคู่มือนี้ไม่ใช่แค่การติดตั้งซอฟต์แวร์ คุณมีสิทธิ์เข้าถึง command-line tools ชุดเดียวกับที่ web server และ development environment ส่วนใหญ่ใช้งานอยู่ การตั้งค่านี้อาจไม่สมบูรณ์แบบ เนื่องจากยังขาด Linux kernel แต่สำหรับงาน development ทั่วไป ถือว่าใกล้เคียงกับสภาพแวดล้อมจริงมากพอ
Windows 10 VPS การโฮสติ้ง
รับ Windows 10 VPS สำหรับ Remote Desktop ในราคาที่ดีที่สุด ใช้งาน Windows 10 ฟรี บน NVMe SSD storage และอินเทอร์เน็ตความเร็วสูง
ดูแพ็กเกจ Windows 10 VPSการทำความเข้าใจวิธีรัน Linux บน Windows 10 เปิดโอกาสให้พัฒนาซอฟต์แวร์ข้ามแพลตฟอร์มได้ในแบบที่ Virtual Machine แบบดั้งเดิมทำไม่ได้ ไม่ว่าจะสร้างเว็บแอปพลิเคชัน จัดการเซิร์ฟเวอร์ หรือพัฒนาซอฟต์แวร์ข้ามแพลตฟอร์ม Bash terminal สำหรับ Windows นี้มีเครื่องมือครบที่คุณต้องการ
หากคุณใช้ Windows 10 เวอร์ชันเก่า ต้องเปิด Developer Mode ไว้ด้วย และถึงแม้ WSL2 จะทำงานได้ดีกว่า WSL1 การอัปเกรดก็ไม่ได้ยุ่งยากอะไร
แน่นอนว่าการตั้งค่านี้อาจดูซับซ้อนถ้าคุณเพิ่งเริ่มใช้ command-line แต่เมื่อลองใช้งานแล้ว คุณจะเห็นคุณค่าของการมีทั้งแอปพลิเคชัน Windows และยูทิลิตี Linux พร้อมใช้งานในเวลาเดียวกัน และถ้าวันไหนคุณไม่ต้องการเข้าถึง Linux อีกต่อไป การย้อนขั้นตอนเหล่านี้ก็ทำได้ง่ายพอกับตอนติดตั้ง