- Get started with Windows Subsystem for Linux (WSL). – Training | Microsoft Learn
- What is Windows Subsystem for Linux | Microsoft Learn
WSL 2 ติดตั้งได้บน Windows 11 หรือ Windows 10 version 2004+ (Build 19041 and higher)
การติดตั้ง WSL 2
- Open PowerShell or Windows Command Prompt in administrator mode by right-clicking and selecting “Run as administrator“
- Enter the command:
wsl --install
- You’ll need to restart your machine following this installation process to begin using WSL.
คำสั่ง wsl --install
จะติดตั้ง Ubuntu distribution เป็นค่า default แต่เราสามารถติดตั้ง Linux distributions อื่นได้
ดู Linux distribution ที่มีใน Microsoft Store ใช้คำสั่ง wsl --list --online
> wsl --list --online The following is a list of valid distributions that can be installed. Install using 'wsl.exe --install <Distro>'. NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ubuntu-18.04 Ubuntu 18.04 LTS Ubuntu-20.04 Ubuntu 20.04 LTS Ubuntu-22.04 Ubuntu 22.04 LTS OracleLinux_8_5 Oracle Linux 8.5 OracleLinux_7_9 Oracle Linux 7.9 SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4 openSUSE-Leap-15.4 openSUSE Leap 15.4 openSUSE-Tumbleweed openSUSE Tumbleweed
เลือก Linux distribution ที่จะติดตั้งด้วยคำสั่ง wsl --install --distribution <Distribution Name>
> wsl --install Ubuntu-22.04 Installing: Ubuntu 22.04 LTS [====== 11.0% ]
ถ้าจะ uninstall ใช้คำสั่ง
> wsl --unregister Ubuntu-22.04
หลังจาก WSL ติดตั้ง Linux distribution เสร็จ ให้ restart เครื่อง
เรียกใช้งาน installed Linux distribution ได้จาก Windows search แล้วค้นหาคำว่า Ubuntu หรือเปิด Windows Terminal แล้วเลือก Ubuntu
เมื่อเรียกใช้งานครั้งแรก จะให้ตั้ง username และ password.
เมื่อตั้งเสร็จ สามารถดูข้อมูลของ Linux distribution ที่ติดตั้งได้ด้วยคำสั่ง cat /etc/os-release
$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.5 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.5 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal
Update และ upgrade packages ของ Ubuntu ด้วยคำสั่ง sudo apt update && upgrade
Visual Studio Code
ติดตั้ง WSL Extension ให้กับ Visual Studio Code
เรียก Visual Studio Code จาก command line ของ Linux (Bash) ด้วยคำสั่ง code .
File system
ถ้าอยู่ที่ Bash ใน Linux สามารถอ้างถึง drive c บน Windows ได้ที่ /mnt/c/
(mounted C drive)
ถ้าจะกลับไปที่ home directory บน Linux ได้ด้วยคำสั่ง cd ~
ถ้าอยู่ที่ PowerShell สามารถอ้างถึง home directory บน Linux ได้ด้วยคำสั่ง cd \\wsl.localhost\Ubuntu\home\<username>
ถ้าอยู่ที่ Windows File Explorer (explorer.exe) สามารถดูได้ทั้ง Windows file system (c:\
) และ Linux file system (\\wsl.localhost\Ubuntu
)
WSL commands
ถ้ารันจาก PowerShell หรือ Windows Command Prompt (CMD) พิมพ์คำสั่ง wsl
แต่ถ้ารันจาก Bash พิมพ์คำสั่ง wsl.exe
ดูเวอร์ชันของ WSL ด้วย wsl --version
- WSL
- the Linux Kernel used by WSL
- the version for WSLg, which runs Linux GUI apps
- the version for MSRDC, which represents the Microsoft Remote Desktop Client supporting WSL
- the versions of Direct3D and DXCore, used for graphics rendering
- the version of Windows that you’re running
> wsl --version WSL version: 1.1.3.0 Kernel version: 5.15.90.1 WSLg version: 1.0.49 MSRDC version: 1.2.3770 Direct3D version: 1.608.2-61064218 DXCore version: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windows version: 10.0.22621.1344
อัพเดท WSL ด้วย wsl --update
ดูรายการ Linux distributions ที่มีการิดตั้งด้วย wsl --list --verbose
หรือ wsl -l -v
> wsl -l -v NAME STATE VERSION * Ubuntu Running 2
เปลี่ยน default Linux distribution ด้วย wsl --set-default <Distribution Name>
ที่ PowerShell เปิด Bash command line ไปที่ home directory ด้วย wsl ~
หรือ เปิด Bash command line โดยยังอยู่ที่พาทเดิมด้วย wsl
และออกจาก Bash ด้วย exit
ที่ Bash เรียก Windows File Explorer ให้ชี้ไปที่ current directory path ด้วย explorer.exe .
(อย่าลืมพิมพ์จุดด้วย)
คำสั่งของ Ubuntu ใน WSL2
คำสั่ง systemctl
ใช้ไม่ได้
$ sudo systemctl status apache2 [sudo] password for jack: System has not been booted with systemd as init system (PID 1). Can't operate. Failed to connect to bus: Host is down
ให้ใช้คำสั่ง service
แทน
$ sudo service apache2 status