JavaRush /Курсы /Docker SELF /Работа с Linux на Windows: WSL

Работа с Linux на Windows: WSL

Docker SELF
1 уровень , 2 лекция
Открыта

1. Что такое WSL?

Теперь мы подходим к интересной теме: как работать с Linux, если вы используете Windows как основную операционную систему? Добро пожаловать в мир WSL!

WSL (Windows Subsystem for Linux) — это технология от Microsoft, которая позволяет запускать Linux-дистрибутивы прямо в Windows. Существует две версии:

  • WSL1: работает как совместимость на уровне системных вызовов между Windows и Linux. Она эмулирует поведение Linux через ядро Windows.
  • WSL2: использует полноценное ядро Linux через скрытую лёгкую виртуальную машину. Это делает WSL2 быстрее и более совместимой с реальным Linux.

WSL — словно компромисс между двумя мирами: вы получаете инструменты Linux, оставаясь в экосистеме Windows. Для разработчиков это огромный плюс: можно программировать, тестировать и настраивать серверы с помощью любимых Linux-команд.


2. Почему WSL так ценен?

  1. Разработка и тестирование: WSL позволяет разработчикам работать в Linux-окружении, избегая необходимости перезагружать компьютер или использовать виртуальные машины.
  2. Docker и контейнеризация: WSL2 поддерживает Docker, что особенно полезно для работы с контейнерами.
  3. Интеграция файловых систем: Вы можете легко обмениваться файлами между Windows и Linux, используя одну файловую систему.
  4. Лёгкость настройки: Установка WSL занимает буквально несколько минут.

Чем WSL отличается от виртуальной машины?

  • Нет необходимости в виртуализации. Вам не нужно устанавливать VirtualBox, VMware или Hyper-V. WSL работает на уровне системы.
  • Меньше ресурсов. WSL использует меньше оперативной памяти и процессорного времени, чем обычная виртуальная машина.
  • Интеграция с Windows. Вы можете легко обмениваться файлами между Windows и Linux, запускать команды Linux и Windows вместе (!), а также использовать одни и те же сетевые интерфейсы.

3. Установка WSL

1. Проверка системных требований

Перед началом убедитесь, что ваша система соответствует минимальным требованиям:

  • Windows 10 (версия 2004 и выше) или Windows 11.
  • Включённая виртуализация в BIOS/UEFI.

Чтобы проверить версию Windows, откройте PowerShell и выполните:

winver

Вы должны увидеть окно типа такого:

Если вы не знаете как запустить PowerShell в Windwos, то нажмите Win+S и напишите powershell.

2. Включение WSL

Откройте PowerShell от имени администратора и выполните следующую команду:

wsl --install

Эта команда автоматически установит WSL, скачает ядро Linux и настроит WSL2 как версию по умолчанию.

Если по какой-то причине команда не работает, можно активировать WSL вручную через дополнительные компоненты Windows:

  1. Откройте "Панель управления" → "Программы и компоненты" → "Включение или отключение компонентов Windows".
  2. Включите:
    • Подсистема Windows для Linux.
    • Платформа виртуальной машины.

После этого перезагрузите компьютер.

3. Выбор и установка дистрибутива

WSL позволяет установить популярные дистрибутивы Linux, такие как Ubuntu, Debian, Kali Linux и многие другие. Чтобы посмотреть список доступных дистрибутивов, выполните:

wsl --list --online

Вы увидите список доступных дистрибутивов:


PS C:\Users\Admin> 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
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed

Для установки, например, Ubuntu, выполните:

wsl --install -d Ubuntu

После установки запустите дистрибутив, чтобы завершить настройку (например, задания имени пользователя и пароля).


3. Настройка WSL2 по умолчанию

Чтобы использовать WSL2 (а это крайне рекомендуется), убедитесь, что WSL2 включён. Установите его как версию по умолчанию:

wsl --set-default-version 2

Если вы уже установили дистрибутив с WSL1, его можно обновить до WSL2:

wsl --set-version <Имя_дистрибутива> 2

Пример:

wsl --set-version Ubuntu 2

4. Интеграция WSL с Windows

WSL великолепно интегрируется с Windows, что позволяет использовать возможности обеих систем. Вот ключевые моменты:

1. Обмен файлами

WSL монтирует файловую систему Windows в директорию /mnt. Например:

cd /mnt/c/Users/ВашеИмя

Вы можете работать с файлами Windows прямо из Linux. Аналогично можно использовать файлы из WSL в Windows через путь вида \\wsl$\<Имя_дистрибутива> в проводнике.

2. Использование Windows-команд в Linux

Да, вы можете запускать команды Windows прямо из WSL. Например:

explorer.exe .

Откроет текущую директорию в Проводнике.

3. Использование Linux-команд в PowerShell

WSL позволяет запускать Linux-команды прямо из PowerShell. Например:

wsl ls

4. Использование WSL в реальной разработке

Работа с веб-сервером

Вы можете запустить сервер Nginx или Apache в WSL и получить доступ к нему через браузер на Windows. Например:

1. Установите Nginx в WSL:

   sudo apt update
   sudo apt install nginx

2. Запустите сервер:

   sudo service nginx start

3. Откройте браузер и перейдите по адресу http://localhost.

Установка Docker

WSL2 полностью поддерживает Docker. Установите Docker Desktop на Windows, он автоматически интегрируется с WSL2.


6. Полезные команды WSL

  • Просмотр установленных дистрибутивов:

    wsl --list --verbose
    

    Показывает все установленные дистрибутивы, их версии и статус.

  • Остановка всех дистрибутивов:

    wsl --shutdown
    
  • Удаление дистрибутива (осторожно!):

    wsl --unregister <Имя_дистрибутива>
    
  • Открытие WSL в определённой директории:

    wsl ~/
    

7. Типичные ошибки и их решение

1. Ошибка: "WSL is not enabled"

Если вы видите сообщение, что WSL не включён, убедитесь, что вы активировали его в "Панели управления" или через PowerShell. Также проверьте, поддерживает ли ваш процессор виртуализацию (она должна быть включена в BIOS).

2. Команда wsl --install не работает

Это может быть связано с устаревшей версией Windows. Обновите операционную систему до последней версии.

3. Проблемы с запуском Docker

Убедитесь, что ваш дистрибутив использует WSL2, а не WSL1. Проверить можно через:

wsl --list --verbose

4. Невозможно подключиться к серверу из WSL

Убедитесь, что firewall Windows не блокирует соединения.


8. Практическое задание

  1. Установите WSL и дистрибутив Ubuntu.
  2. Проверьте версию WSL вашего дистрибутива:
    wsl --list --verbose
    
  3. Создайте текстовый файл test.txt в директории /mnt/c/Users/ВашеИмя/Documents из WSL:

    echo "Привет, WSL!" > /mnt/c/Users/ВашеИмя/Documents/test.txt
    
  4. Просмотрите содержимое файла через PowerShell:

    type C:\Users\ВашеИмя\Documents\test.txt
    
  5. Задание со звездочкой: Установите Nginx, запустите его и откройте http://localhost в браузере.

Итак, вы только что прошли весь путь от установки до реального использования Linux в Windows. С этим инструментом вы можете легко и быстро разворачивать рабочие окружения для любых задач.

Комментарии (16)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Anonymous #3670678 Уровень 1
5 октября 2025
"Она эмулирует поведение Linux через ядро Windows." Ну, только это не совсем эмуляция. Эмулятор - это программа, воссоздающая функционал системы через отдельный процесс. Скажем, чтобы запустить Android на Windows, мы нуждаемся в BlueStacks, который предоставляет нужный функционал Android и запускает отдельный процесс. Тогда как WSL1 запускает Linux-приложения напрямую через ядро, не создавая прослойку совместимости. Для запуска виндушных аппов на Линух есть приложение WINE. Расшифровывается как Wine Is Not Emulator. Для простоты: эмуляторы жрут больше производительности и делают функционал системы с нуля, отдельным процессом, тогда как Wine и WSL1 - кернельные утилиты, запускающие что-либо с нуля под капотом родной ОС (с добавкой каких-то файловых систем, обращения к которым прописаны). В итоге какая-нибудь AAA-игрушка на Linux может запуститься и работать быстрее, чем на Винде, благодаря тому что все ненужные процессы (и телеметрия!) не мешают комфортному прохождению. А вообще хз, нужны ли вам WSL, можно по сути качать Линукс на VirtualBox или основной осью
24 июля 2025
Зашёл в Ubuntu командой wsl -d Ubuntu Через cd дошёл до директории Documents Не выполняется команда echo "Привет, WSL!" > /mnt/c/Users/ВашеИмя/Documents/test.txt , ошибка permission denied , прогуглил все возможные варианты , у пользователя есть права на запись , у файла режим только чтение убрал , через touch файл создаётся в директории , но никак не могу туда текст записать , пробовал через sudo tee , тоже не помогает.
Сергей Попов Уровень 2
27 июня 2025
посмотреть содержимое cat /mnt/c/Users/ВашеИмя/Documents/test.txt
Кирилл Уровень 2
20 июня 2025
Попробуем)
Ra Уровень 35 Student
4 мая 2025
Имейте в виду, что проект надо держать в домашней папке WSL, а не в винде C:\Users. Иначе скорость работы с диском будет небольшой
Anonymous #3555787 Уровень 1
13 апреля 2025
Мне при вводе команды sudo apt update требуется пароль, я вообще без понятия что за пароль и откуда он, может кто-нибудь знает что это?
Dhomenic Уровень 2
16 апреля 2025
если нет пароля просто ентер жми
Anonymous #3268884 Уровень 24
28 марта 2025
Вот я открыл пауэршелл, и у меня виндовс-сессия. В командной строке виндовс я могу копировать и вставлять текст обычными сочетаниями ctrl+c и ctrl+v. Теперь я командую wsl и перехожу в линукс-сессию. Здесь уже ctrl+c и ctrl+v не работают. А как копировать и вставлять? На ноутбуке с линуксом у меня вставка текста в терминал делается при помощи shift+insert, но в пауэршелл с wsl это не работает. И как теперь копировать и вставлять?
milyasow Уровень 3
6 мая 2025
копировать - выделил мышкой, затем Enter вставлять - правой кнопкой мышы
Дмитрий Огнев Уровень 12
25 февраля 2025
Если файл не получается создать, то сперва убедитесь, что перешли в в режим Ubuntu, команда: pwd. Если видите стандартную директорию Windows типа C:/Users... Значит вы еще в Windows, переходите командой: wsl -d Ubuntu. Снова набираете pwd и там уже сориентируетесь. Указанную в задании директорию не находило, пришлось дойти туда мануально через команду cd. У меня так только сработало.
25 февраля 2025
Вот так можно проверить установленную версию Ubuntu: lsb_release -a
Дмитрий Уровень 2 Expert
27 февраля 2025
cat /etc/os-release
Andrew Lan Уровень 4
16 июля 2025
hostnamectl
25 февраля 2025
Чтобы остановить nginx: sudo service nginx stop