Skip to content
> ๐Ÿ’ป ๐Ÿง  ืงื•ื“ 1001 > ๐Ÿงช๐Ÿ““ ืœืœื ืงื˜ื’ื•ืจื™ื” > WSL: Linux ื‘ืชื•ืš Windows

WSL: Linux ื‘ืชื•ืš Windows

ืจื•ืฆื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ืœื™ื ื•ืงืก (Docker, Python, Node.js) ืžื‘ืœื™ ืœืฆืืช ืž-Windows? ื”ื›ื™ืจื• ืืช WSL (Windows Subsystem for Linux). ื–ื•ื”ื™ ืœื™ื‘ืช ืœื™ื ื•ืงืก ืžืœืื” ืฉืจืฆื” ื‘ืžืงื‘ื™ืœ ืœืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ืžืจื›ื–ื™ืช ืฉืœื›ื.

ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื, ื›ื ืกื• ืœ-BIOS ืฉืœ ื”ืžื—ืฉื‘. ื”-Virtualization (ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” – VT-x ืื• AMD-V) ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžื•ืคืขืœืช (Enabled). ืœืœื ื”ื”ื’ื“ืจื” ื”ื–ื•, ืœื™ื ื•ืงืก ืœื ื™ืขื‘ื•ื“.

ื‘ื•ืื• ื ืจืื” ืื™ืš ืžื’ื“ื™ืจื™ื ืืช ื”ืžืขืจื›ื•ืช ืœืขื‘ื•ื“ื” ืžืฉื•ืชืคืช ื•ื—ืœืงื”.


1. ื‘ื“ื™ืงืช ืžืฆื‘ ืงื™ื™ื

ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื, ื‘ื“ืงื• ืืช ื”ืžืฆื‘ ื”ื ื•ื›ื—ื™ ื‘-PowerShell:

wsl -l -v

wsl -l -v ื™ื—ื–ื™ืจ ืจืฉื™ืžื” ืฉืœ ื”ืคืฆื•ืช ืžื•ืชืงื ื•ืช:

  • ืชืฉื•ื‘ื” ืจื™ืงื”: ืื™ืŸ ื”ืคืฆื•ืช ืžื•ืชืงื ื•ืช.
  • Ubuntu: ืœื™ื ื•ืงืก ื›ื‘ืจ ืžื•ืชืงืŸ.
  • docker-desktop / docker-desktop-data: ื”ืคืฆื•ืช ื˜ื›ื ื™ื•ืช ืฉืœ Docker Desktop.

โš ๏ธ ื‘ืขืžื•ื“ื” VERSION ืฆืจื™ื›ื” ืœื”ื•ืคื™ืข ื”ืกืคืจื” 2. ืื ืžื•ืคื™ืข 1, ืขื“ื›ื ื• ืืช ื”ื”ืคืฆื” ื‘ืขื–ืจืช ื”ืคืงื•ื“ื” wsl --set-version Ubuntu 2.


2. ื”ืชืงื ื”

ืื ืœื™ื ื•ืงืก ืœื ืžื•ืชืงืŸ, ืคืชื—ื• ืืช PowerShell ื›ืžื ื”ืœื™ื (Administrator) ื•ื”ืงืœื™ื“ื•:

wsl --install

ื”ืžืขืจื›ืช ืชื›ื™ืŸ ืืช ื”-Ubuntu. ื‘ืกื™ื•ื, ื”ืคืขื™ืœื• ืžื—ื“ืฉ ืืช ื”ืžื—ืฉื‘ ื›ื“ื™ ืœื”ืฉืœื™ื ืืช ื”ื’ื“ืจืช ื”ืœื™ื‘ื”.


3. ื”ื’ื“ืจืช ืžืฉืชืžืฉ

ื‘ื”ืคืขืœื” ื”ืจืืฉื•ื ื”, WSL ื™ื‘ืงืฉ ืžื›ื ืœื™ืฆื•ืจ ืžืฉืชืžืฉ. ืื ืืชื ืจื•ืื™ื ื‘ื˜ืจืžื™ื ืœ root@PC_NAME โ€“ ื–ื” ืžืฆื‘ ืชืงื™ืŸ.

ืžืฉืชืžืฉ ื”-root ื ื—ื•ืฅ ืœื”ื’ื“ืจื•ืช ืžืขืจื›ืช; ืœืฆื•ืจื›ื™ ืคื™ืชื•ื—, ืฆืจื• ืžืฉืชืžืฉ ื ืคืจื“.

ืฉื™ืžื• ืœื‘ โš ๏ธ: ืกื™ืžืŸ ื”ื˜ื™ื“ืœื” ~ ืžื™ื™ืฆื’ ืืช ื ืชื™ื‘ ืกืคืจื™ื™ืช ื”ื‘ื™ืช. ืขื‘ื•ืจ root ื–ื” /root, ืขื‘ื•ืจ ืžืฉืชืžืฉ ืจื’ื™ืœ ื–ื” /home/my_user_name. ืื ืชื™ืฆืจื• ืคืจื•ื™ืงื˜ื™ื ืชื—ืช root, ืชื™ืชืงืœื• ื‘ื‘ืขื™ื•ืช ื”ืจืฉืื•ืช ื‘-VS Code. ื”ืคืงื•ื“ื” cd ~/projects ืชื•ื‘ื™ืœ ืืชื›ื ืœืžืงื•ืžื•ืช ืฉื•ื ื™ื ืืฆืœ root ื•ืืฆืœ ืžืฉืชืžืฉ ืจื’ื™ืœ.

ืื™ืš ืœื™ืฆื•ืจ ืžืฉืชืžืฉ:

# ื™ืฆื™ืจืช ืžืฉืชืžืฉ ื‘ืฉื my_user_name
adduser my_user_name
# ืžืชืŸ ื”ืจืฉืื•ืช ืžื ื”ืœ (ืขื‘ื•ืจ sudo)
usermod -aG sudo my_user_name

ื›ื“ื™ ืฉ-WSL ื™ื™ืคืชื— ืชืžื™ื“ ืขื ื”ืžืฉืชืžืฉ ืฉืœื›ื, ื”ื–ื™ื ื• ื‘-Windows PowerShell:

# ื”ื—ืœื™ืคื• ืืช my_user_name ื‘ืฉื ื”ืžืฉืชืžืฉ ืฉื‘ื—ืจืชื
ubuntu config --default-user my_user_name

ืžืขืชื” ื”ื˜ืจืžื™ื ืœ ื™ืงื‘ืœ ืืช ืคื ื™ื›ื ื‘: my_user_name@PC_NAME:~$.


4. ืื™ืคื” ืœืฉืžื•ืจ ืืช ื”ืงื•ื“

ืœ-WSL ื™ืฉ ื’ื™ืฉื” ืœื›ื•ื ื ื™ Windows (ื‘ื ืชื™ื‘ /mnt/c/), ืื‘ืœ ืืœ ืชืฉืžืจื• ืฉื ืืช ื”ืคืจื•ื™ืงื˜ื™ื ืฉืœื›ื.

ืžืขืจื›ื•ืช ื”ืงื‘ืฆื™ื ืฉืœ Windows ื•ืœื™ื ื•ืงืก ืžืชืงืฉืจื•ืช ืœืื˜. ืฉืžื™ืจืช ืคืจื•ื™ืงื˜ ื‘ื›ื•ื ืŸ C: ืื• D: ืชืื˜ ืžืฉืžืขื•ืชื™ืช ืืช ื”ืขื‘ื•ื“ื” ืขื ื”ืงื•ื“.

ื”ืžืงื•ื ื”ื ื›ื•ืŸ: ืชื™ืงื™ื™ืช ื”ื‘ื™ืช ื‘ืชื•ืš ืœื™ื ื•ืงืก.
ื”ืงืœื™ื“ื•:

cd ~
mkdir projects && cd projects

ื›ืืŸ ื”ืžื”ื™ืจื•ืช ื”ื™ื ืžืงืกื™ืžืœื™ืช. ื›ื“ื™ ืœืคืชื•ื— ืืช ื”ืชื™ืงื™ื™ื” ื‘ืกื™ื™ืจ ื”ืงื‘ืฆื™ื ืฉืœ Windows, ื”ืงืœื™ื“ื•: explorer.exe .


5. ืกื‘ื™ื‘ืช ืขื‘ื•ื“ื”

Python (venv)

ื‘ืœื™ื ื•ืงืก, ื‘ื•ื“ื“ื• ื—ื‘ื™ืœื•ืช. ืืœ ืชืชืงื™ื ื• ืกืคืจื™ื•ืช ื’ืœื•ื‘ืœื™ืช, ื”ืฉืชืžืฉื• ื‘ืกื‘ื™ื‘ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช:

sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-venv -y

# ื”ืงืžืช ืคืจื•ื™ืงื˜
mkdir my_project && cd my_project
python3 -m venv venv
source venv/bin/activate

Node.js (NVM)

ื”ืคืงื•ื“ื” ื”ืกื˜ื ื“ืจื˜ื™ืช apt install nodejs ืžืชืงื™ื ื” ื’ืจืกื” ื™ืฉื ื”. ื”ืฉืชืžืฉื• ื‘-NVM (Node Version Manager):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install --lts    # ื™ืชืงื™ืŸ ืืช ื”ื’ืจืกื” ื”ื™ืฆื™ื‘ื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ

6. ืื™ื ื˜ื’ืจืฆื™ื”

VS Code

ื”ืชืงื™ื ื• VS Code ื‘-Windows ื•ืืช ื”ืชื•ืกืฃ Remote – WSL. ื”ืคืงื•ื“ื” code . ื‘ื˜ืจืžื™ื ืœ ืฉืœ Ubuntu ืชืคืชื— ืืช ื”ืคืจื•ื™ืงื˜ ื‘ืžืžืฉืง ืฉืœ Windows, ื‘ื–ืžืŸ ืฉื”ืงื•ื“ ื™ื•ืจืฅ ื‘ืชื•ืš ืœื™ื ื•ืงืก.

Docker

ื‘ื”ื’ื“ืจื•ืช ืฉืœ Docker Desktop (ืชื—ืช Settings -> Resources -> WSL Integration), ืกืžื ื• ื‘-V ืืช Ubuntu. ื›ืขืช ืชื•ื›ืœื• ืœื ื”ืœ ืงื•ื ื˜ื™ื™ื ืจื™ื ื™ืฉื™ืจื•ืช ืžื”ื˜ืจืžื™ื ืœ ืฉืœ ืœื™ื ื•ืงืก.


7. "ืฉืœื™ืฃ" ืคืงื•ื“ื•ืช

  • whoami โ€“ ื‘ื“ื™ืงื”: ื”ืื ืืชื root ืื• ืžืฉืชืžืฉ ืจื’ื™ืœ.
  • pwd โ€“ ื”ื ืชื™ื‘ ื”ืžืœื ืœืชื™ืงื™ื™ื” ื”ื ื•ื›ื—ื™ืช.
  • wsl --shutdown โ€“ (ื‘-PowerShell) ื›ื™ื‘ื•ื™ ืžืœื ืฉืœ ืœื™ื ื•ืงืก ืœืฉื—ืจื•ืจ ื–ื™ื›ืจื•ืŸ RAM.
  • cat file.txt | clip.exe โ€“ ื”ืขืชืงืช ื˜ืงืกื˜ ืžืœื™ื ื•ืงืก ืœืœื•ื— ื”ื”ืขืชืงื” (Clipboard) ืฉืœ Windows.

Workflow (ืชื”ืœื™ืš ืขื‘ื•ื“ื”):

  1. ืคื•ืชื—ื™ื ื˜ืจืžื™ื ืœ (user@...).
  2. ื ื›ื ืกื™ื ืœืคืจื•ื™ืงื˜: cd ~/projects/my-app.
  3. ืžืจื™ืฆื™ื ืืช VS Code ื‘ืขื–ืจืช code ..
  4. Profit

ื›ืชื™ื‘ืช ืชื’ื•ื‘ื”

ื”ืื™ืžื™ื™ืœ ืœื ื™ื•ืฆื’ ื‘ืืชืจ. ืฉื“ื•ืช ื”ื—ื•ื‘ื” ืžืกื•ืžื ื™ื *