มีนาคม 2016 Microsoft ประกาศพันธมิตร Canonical โดดเด่นว่า "Linux on Windows" นักพัฒนาตื่นเต้นที่ Bash จะมาบน Windows ไม่ใช่ virtual machine แต Anniversary Update จะนำฟังก์ชัน Bash ทั้งหมดมาสู่ Windows
Bash for Windows ใช้งานได้แล้ว มีความสามารถมาก แม้เน้นนักพัฒนา แต่ฟีเจอร์แอบแฝงอยู่ใต้บรรทัดคำสั่ง เรียนรู้ Bash on Windows ตั้งแต่ติดตั้ง จนถึงฟีเจอร์ซ่อนที่คุณอาจไม่รู้
ข้อกำหนดระบบสำหรับ Bash on Windows
ติดตั้ง Bash on Windows ง่าย มาเริ่มจากพื้นฐาน
ต้องมี: PC รัน Windows 10, 64-bit, ติดตั้ง Anniversary Update แล้ว เนื่องจากเน้นนักพัฒนา ต้องเปิด Developer Mode ด้วย อาจต้องรีบูท กลับมาแล้ว เปิด Windows Subsystem for Linux (Beta) ใน Windows Features รีบูทอีกครั้ง สุดท้ายเปิด Bash ได้แล้ว
ติดตั้งและรัน Bash on Windows ง่ายกว่าที่คิด ตราบใดที่มี Windows 10 64-bit และ Anniversary Update แค่เปิดฟีเจอร์ไม่กี่อย่าง
เปิดใช้งาน Bash on Windows
เปิดใช้งาน Bash on Windows ไมายากเท่าที่คิด วิธีติดตั้ง:
- เปิด Developer Mode: Settings > Update & Security > For Developers เลือก Developer Mode
- กด Windows key + Q ค้นหา Turn Windows Features on or off
- ติ๊ก Windows Subsystem for Linux (Beta) กด OK รีบูท
- เปิด Start Menu ค้นหา Bash คลิก Bash run command
- ยอมรับเงื่อนไข แล้ว Bash จะดาวน์โหลด
- เสร็จแล้ว ค้นหา Ubuntu ใน Start Menu เพื่อรัน Bash
ทำอะไรได้จริงบ้าง
คำถามใหญ่: ทำอะไรได้จริงกับ Bash on Windows? เครื่องมือ GNU command line มาตรฐานรวมถึง...
grep
ssh
nano
...ทำงานได้ดี การติดตั้งแพ็กเกจและอัปเดตด้วย apt และ apt-get ทำงานดี Symlink และไฟล์ระบบผ่าน Windows Subsystem for Linux (WSL) รองรับภาษาโปรแกรมบางอย่าง เช่น Python, NodeJS, Perl แม้ Bash on Windows ไม่ได้ตั้งใจรันแอปกราฟิก แต่ทำได้
โชคดีที่ ไม่สามารถ แก้ไข/เปิด/ลบ แอป Windows หรือเปลี่ยนการตั้งค่าระบบ Windows นี่คือการป้องกันที่ดี เพราะเรารู้ว่าผิดพลาดง่ายตอนใช้ command line
ติดตั้งซอฟต์แวร์ Linux
บน Linux ติดตั้งแอปหลายวิธี คำสั่ง command line ใช้มากที่สุด apt-get ดาวน์โหลดแพ็กเกจจาก repository พร้อม dependencies น่าสนใจ คำสั่งแบบนี้ (ไม่ต้องเว็บ, ใส่ชื่อแพ็กเกจจริง):
sudo apt-get install [packagename]
เช่นติดตั้ง Git:
sudo apt-get install git
ง่าย แต่ต้องใส่ sudo เพราะต้องการสิทธิ์ superuser Git และซอฟต์แวร์อื่น ติดตั้งจาก source ได้ด้วย
Born to Run (Graphical Apps)
Bash on Windows ไร้รองรับแอปกราฟิก Linux อย่างเป็นทางการ แต่ชุมชนหาวิธีทำได้ผ่าน WSL ที่หลากหลาย ไม่ได้สร้างไว้เพื่ออย่างหนึ่ง ไม่ได้หมายความว่าใช้ไม่ได้
ตัวอย่าง: ติดตั้ง Bash for Windows ติดตั้ง Ubuntu user space image ทั้งหมด คุณได้ทุกอย่าง (binaries ทั้งหมด) ของ Ubuntu แบบมี GUI
ด้วย Ubuntu user space เต็มรูปแบบ จึงรันแอปกราฟิก Linux บน Windows ได้ วิธี繞道: ติดตั้ง X Server, 用 apt-get 装程序, 设置 display environment variable, 最后启动应用 虽然不难 但麻烦 每次运行图形应用都要设置 display 环境变量
而且 是 unsupported feature 功能取决于很多因素 任何原生 Linux 用户都知道 装应用常需依赖和调整 更别说强行让 Bash on Windows 跑这些
想跑 Linux 图形应用? 最好用 Cygwin, VM 跑 Linux distro 或 dual boot 但毕竟有 novelty 跑 Linux 图形应用在 Windows 上
เข้าถึงไฟล์
ติดตั้ง Bash for Windows สร้าง Ubuntu user space เต็มรูปแบบ เข้าถึงไฟล์ได้ง่ายด้วย Windows File Explorer แต่ต้องรู้ว่า ที่ไหน ต้องเปิด Show hidden files, folders, and drives ใน File Explorer view options แต่ละบัญชี Windows มี Ubuntu user space ของตัวเอง อยู่ที่:
C:\Users\USERNAME\AppData\Local\Lxssootfs
โฟลเดอร์ home ของบัญชี:
C:\Users\USERNAME\AppData\Local\Lxss\home\USERNAME
โฟลเดอร์ root:
C:\Users\USERNAME\AppData\Local\Lxssoot
เข้าถึงไฟล์ระบบ Windows ใน Bash ต่างออกไป Default ใน Bash คือ Ubuntu root directory ที่สร้างใน Windows file system แต่คุณ mount ไดรฟ์ Windows ได้ เพื่อ mount C: ใช้คำสั่ง:
/mnt/C
D: drive:
/mnt/D
以此类推 既然用 command line 可以搭配 cd (change directory) 權限運作不同 要存取 admin folder Bash on Windows ต้องมีสิทธิ์ "Run as Administrator"
จัดการเซิร์ฟเวอร์
อยากเหตุผลปฏิบัติจริงใช้ Bash for Windows? จัดการเซิร์ฟเวอร์ดีมาก สร้างเซิร์ฟเวอร์ง่าย แตถ้า headless ต้องมีวิธีจัดการ มีแอปเยอะ เช่น PuTTY แต command line ให้โซลูชันง่าย แค่ ssh เข้าเซิร์ฟเวอร์ จัดการจากเทอร์มิ纳尔 รัน remote scripts ทำงานดีมาก ใช้ Bash on Windows เป็นแอปพลิเคชันที่มีประโยชน์มาก
ถอนการติดตั้ง Bash for Windows
ติดตั้ง Bash for Windows แล้ว ถอนได้ง่าย มี 2 วิธีหลัก: วิธีหนึ่งลบ Ubuntu environment แต่เก็บ home folder ไว้ รันคำสั่งใน command prompt หรือ PowerShell:
lxrun /uninstall
จะมีคำเตือน: "This will remove the Ubuntu environment as well as any modifications and new applications..."
พิมพ์ y เพื่อดำเนินการลบ
อีกวิธี ปิด Windows Subsystem for Linux ลบ Ubuntu environment และ home folder:
lxrun /uninstall /full
คำเตือน: "This will uninstall Ubuntu on Windows. This will remove the Ubuntu environment as well as any modifications, new applications, and user data."
พิมพ์ y เพื่ออนุญาตลบซอฟต์แวร์
Bash on Windows มีศักยภาพมาก มีทรัพยากรดีจาก Windows blog, Ubuntu community sites, และ Reddit หัวข้อ /r/bashonubuntuonwindows รวมถึงการรัน Visual Studio code, Samba file servers, พัฒนาด้วย WSL 如运行图形应用所示 可能性近乎无限
คุณใช้ Bash on Windows ทำอะไรอยู่? หรือยังไม่ได้รัน Bash on Windows? บอกมาในความคิดเห็น!