7. WSL: Linux внутри Windows
Что такое WSL?
Заголовок раздела «Что такое WSL?»WSL (Windows Subsystem for Linux) — это слой совместимости, позволяющий запускать Linux прямо внутри Windows без виртуальной машины. Это не эмуляция — WSL 2 использует настоящее ядро Linux.
С WSL ты получаешь все преимущества Linux-разработки (bash, apt, git, docker) не выходя из Windows.
WSL 1 vs WSL 2
Заголовок раздела «WSL 1 vs WSL 2»| Характеристика | WSL 1 | WSL 2 |
|---|---|---|
| Совместимость syscalls | Частичная | Полная |
| Производительность файловой системы | Высокая на Windows FS | Высокая на Linux FS |
| Изоляция | Нет VM | Легковесная VM |
| Docker | Плохо | Отлично |
| Рекомендуется | Нет | Да |
WSL 2 — выбор по умолчанию для разработки.
Установка WSL
Заголовок раздела «Установка WSL»# В PowerShell (с правами администратора)wsl --install # установить WSL + Ubuntu
# Выбрать конкретный дистрибутивwsl --install -d Ubuntu-22.04wsl --install -d Debianwsl --install -d kali-linux
# Посмотреть доступные дистрибутивыwsl --list --online
# Посмотреть установленныеwsl --list --verbosewsl -l -vПосле установки нужно перезагрузить компьютер и создать пользователя Ubuntu.
Основные команды WSL
Заголовок раздела «Основные команды WSL»# Запуск WSLwsl # запустить в текущей директорииwsl -d Ubuntu # конкретный дистрибутивwsl ~ # запустить в домашней директории Linux
# Управление дистрибутивамиwsl --list --verbose # статус всех дистрибутивовwsl --set-default Ubuntu # установить по умолчаниюwsl --set-version Ubuntu 2 # обновить до WSL 2
# Остановкаwsl --shutdown # остановить все дистрибутивыwsl --terminate Ubuntu # остановить конкретный
# Экспорт/импортwsl --export Ubuntu backup.tarwsl --import MyUbuntu C:\WSL\ backup.tarФайловая система: Windows ↔ Linux
Заголовок раздела «Файловая система: Windows ↔ Linux»# Из WSL: доступ к Windows дискамls /mnt/c/ # C:\ls /mnt/d/ # D:\cd /mnt/c/Users/username/Desktop
# Открыть Windows Explorer из WSLexplorer.exe . # открыть текущую директорию в Explorer
# Из Windows PowerShell: доступ к файлам WSL\\wsl$\Ubuntu\home\username\# или в Explorer: \\wsl$\UbuntuЗапуск Linux команд из Windows
Заголовок раздела «Запуск Linux команд из Windows»# Запустить Linux команду из PowerShellwsl ls -lawsl cat /etc/os-releasewsl python3 --version
# Комбинироватьwsl find /home -name "*.py" | Select-String "import"
# Запустить скриптwsl bash ~/myscript.shЗапуск Windows программ из WSL
Заголовок раздела «Запуск Windows программ из WSL»# Из WSL bashnotepad.exe file.txt # открыть в Notepadcode . # открыть VS Code (если установлен)explorer.exe . # открыть в Explorerpowershell.exe -c "Get-Date" # запустить PowerShell командуcmd.exe /c "dir" # запустить CMD командуИнтеграция с VS Code
Заголовок раздела «Интеграция с VS Code»VS Code имеет отличную интеграцию с WSL через расширение “Remote - WSL”:
# Установи расширение Remote - WSL в VS Code# Затем из WSL:code . # откроет VS Code подключённый к WSL
# Или из VS Code:# Ctrl+Shift+P → "Remote-WSL: New Window"В этом режиме:
- Файлы хранятся в Linux файловой системе
- Терминал в VS Code — это bash/zsh
- Все инструменты запускаются в Linux
- Полная производительность Linux FS
Настройка WSL для разработки
Заголовок раздела «Настройка WSL для разработки»# Обновить пакетыsudo apt update && sudo apt upgrade -y
# Установить основные инструментыsudo apt install -y \ git curl wget \ build-essential \ python3 python3-pip \ nodejs npm \ htop vim
# Установить Node.js через nvm (лучший вариант)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bashsource ~/.bashrcnvm install --ltsnvm use --lts
# Установить Docker Desktop (с WSL 2 интеграцией)# Скачать с docker.com → включить WSL 2 интеграцию в настройкахКонфигурация .wslconfig
Заголовок раздела «Конфигурация .wslconfig»Файл C:\Users\username\.wslconfig (Windows) настраивает глобальные параметры WSL 2:
[wsl2]memory=4GB # лимит памятиprocessors=2 # количество CPUswap=2GB # размер swaplocalhostForwarding=trueNetworking в WSL
Заголовок раздела «Networking в WSL»# Из WSL доступ к Windows-сервисам через localhostcurl http://localhost:3000 # если сервер запущен в Windows
# Из Windows доступ к WSL-сервисам# WSL 2 получает свой IPhostname -I # IP адрес WSLПрактика
Заголовок раздела «Практика»# 1. Установи WSL (если ещё нет)# wsl --install
# 2. Проверь версиюwsl --list --verbose
# 3. Запусти Linux команды из PowerShellwsl uname -awsl cat /etc/os-release
# 4. Зайди в WSLwsl
# 5. В bash: создай проектmkdir -p ~/projects/testcd ~/projects/testecho "console.log('Hello from WSL!')" > index.jsnode index.js
# 6. Открой папку в VS Codecode .
# 7. Из WSL получи доступ к файлам Windowsls /mnt/c/Users/WSL — это не компромисс, это лучшее из двух миров. Используй Windows для игр и GUI, Linux для разработки!