Разное

Windows subsystem for linux: Установка WSL в Windows 10 | Microsoft Docs

Содержание

Установка Терминала Windows | Microsoft Docs



  • Чтение занимает 2 мин

В этой статье

Установка

Терминал Windows можно установить из Microsoft Store.

Если у вас нет доступа к Microsoft Store, можно скачать сборки, опубликованные на странице выпусков GitHub. При установке из GitHub терминал не будет автоматически обновляться с установкой новых версий.

Первый запуск

После установки при открытии терминала он запустится с помощью PowerShell в качестве профиля по умолчанию в открытой вкладке.

Динамические профили

Если у вас установлены дистрибутивы WSL или несколько версий PowerShell, терминал автоматически создаст профили. Дополнительные сведения о динамических профилях см. на этой странице.

Открытие новой вкладки

Новую вкладку профиля по умолчанию можно открыть, нажав сочетание клавиш Ctrl+Shift+T или кнопку «+» (плюс). Открыть другой профиль можно с помощью раскрывающегося меню. Для этого щелкните «˅» (стрелка) рядом с кнопкой «+». Из этого меню можно выбрать, какой профиль следует открыть.

Открытие новой панели

Вы можете параллельно запустить несколько оболочек с помощью панелей. Чтобы открыть панель, нажмите сочетание клавиш ALT+SHIFT+D. С помощью этого настраиваемого сочетания клавиш можно открыть еще одну панель выделенного профиля. Дополнительные сведения о панелях см. на этой странице.

Конфигурация

Чтобы выполнить настройку параметров Терминала Windows, в раскрывающемся меню выберите Параметры. В текстовом редакторе по умолчанию откроется файл settings.json. (Текстовый редактор по умолчанию определяется в параметрах Windows. )

Терминал поддерживает настройку глобальных свойств, влияющих на все приложение, свойств профиля, влияющих на параметры каждого профиля, а также сочетания клавиш, позволяющих взаимодействовать с терминалом с помощью клавиатуры.

Аргументы командной строки

Вы можете запустить терминал в определенной конфигурации с помощью аргументов командной строки. С помощью этих аргументов можно открыть терминал с конкретными вкладками и панелями, применяя параметры настраиваемого профиля. Дополнительные сведения об аргументах командной строки см. на этой странице.

Диагностика

В случае возникновения каких-либо проблем при использовании терминала посетите страницу устранения неполадок. Если вы заметите какие-либо ошибки или захотите отправить запрос функции, щелкните в меню терминала О программе ссылку «Отзыв», чтобы перейти на страницу GitHub и сообщить об ошибке.



Обзор Терминала Windows | Microsoft Docs



  • Чтение занимает 2 мин

В этой статье

Терминал Windows — это современное приложение терминала для пользователей таких программ и оболочек командной строки, как «Командная строка», PowerShell и «Подсистема Windows для Linux» (WSL). К его основным функциям относится поддержка нескольких вкладок, панелей, символов Юникода и UTF-8, а также модуль отрисовки текста с ускорением GPU, возможность создания собственных тем и настройки текста, цвета, фона и сочетаний клавиш.

Несколько профилей, поддерживающих различные приложения командной строки

Любое приложение с интерфейсом командной строки можно выполнять в Терминале Windows. Это касается всех приложений: от PowerShell и Командной строки до Azure Cloud Shell и любого дистрибутива WSL, например Ubuntu или Oh-My-Zsh.

Настраиваемые схемы и конфигурации

В Терминале Windows можно настроить различные цветовые схемы и параметры. Сведения о создании собственной цветовой схемы см. на этой странице. Пользовательские конфигурации Терминала также можно найти на странице о настраиваемой коллекции терминала.

Настраиваемые действия

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

Например, для копирования текста из командной строки по умолчанию используются клавиши CTRL+SHIFT+C. Вы можете изменить его на CTRL+1 или другое сочетание. Для открытия новой вкладки по умолчанию используется сочетание клавиш CTRL+SHIFT+T, но его можно изменить на CTRL+2. Для перехода на другие открытые вкладки по умолчанию используется сочетание клавиш CTRL+TAB. Его можно изменить на CTRL+- и использовать для создания новой вкладки.

Дополнительные сведения о настройке сочетаний клавиш см. на странице «Действия».

Поддержка символов Юникода и UTF-8

В Терминале Windows могут отображаться символы Юникода и UTF-8, например эмодзи и символы из различных языков.

Отрисовка текста с ускоренным GPU

Терминал Windows использует GPU для отрисовки текста, что обеспечивает повышенную производительность по сравнению с использованием интерфейса командной строки Windows по умолчанию.

Поддержка фоновых изображений

В окне Терминала Windows можно использовать фоновые изображения и изображения в формате GIF. Сведения о добавлении фоновых изображений в профиль см. на странице Профиль — внешний вид.

Аргументы командной строки

Вы можете настроить запуск Терминала Windows в определенной конфигурации с помощью аргументов командной строки. Вы можете указать, какой профиль следует открыть на новой вкладке и какой каталог папки следует выбрать. Кроме того, терминал можно открыть с разделенными панелями и выбрать основную вкладку.

Например, чтобы открыть Терминал Windows из PowerShell с тремя панелями (на левой панели будет запущен профиль Командной строки, а правая панель будет разделена для PowerShell и ваш профиль по умолчанию с WSL), введите:

wt -p "Command Prompt" `; split-pane -p "Windows PowerShell" `; split-pane -H wsl. exe

Сведения о настройке аргументов командной строки см. на этой странице.



Устранение неполадок подсистемы Windows для Linux



  • Чтение занимает 10 мин

В этой статье

Для получения поддержки по вопросам, связанным с WSL, изучите наш репозиторий продукта WSL на сайте GitHub.

При возникновении технических проблем используйте репозиторий продукта.

При возникновении проблем, связанных с содержимым этой документации, используйте репозиторий документов.

Отправка отчета об ошибке

При возникновении ошибок, связанных с функциями или компонентами WSL, отправьте сообщение о проблеме в репозитории продуктов: https://github. com/Microsoft/wsl/issues

Отправка запроса на добавление возможностей

Чтобы запросить новую возможность, связанную с функциональностью или совместимостью WSL, создайте запрос в репозитории продуктов.

Участие в разработке документации

Чтобы внести изменения в документацию по WSL, отправьте запрос на вытягивание в репозитории документов: https://github.com/MicrosoftDocs/wsl/issues

Терминал или командная строка

Наконец, если ваша проблема связана с терминалом Windows, консолью Windows или интерфейсом командной строки, используйте репозиторий терминалов Windows: https://github.com/microsoft/terminal

Распространенные проблемы

Я использую Windows 10 версии 1903, но не вижу параметры для WSL 2.

Скорее всего, это связано с тем, что на компьютере еще не установлены исправления для WSL 2. Чтобы решить эту проблему самым простым способом, перейдите в параметры Windows, нажмите кнопку «Проверить наличие обновлений» и установите последние обновления в системе. Изучите полные инструкции по получению исправления для старой версии.

Если после нажатия кнопки «Проверить наличие обновлений» вы не получили обновление, можно установить исправления KB4566116 вручную.

Ошибка. 0x1bc, когда

wsl --set-default-version 2

Это может произойти, если язык интерфейса или язык системы не является английским.

wsl --set-default-version 2
Error: 0x1bc
For information on key differences with WSL 2 please visit https://aka.ms/wsl2

Фактическая ошибка для 0x1bc:

WSL 2 requires an update to its kernel component. For information please visit https://aka.ms/wsl2kernel

См. сведения о проблеме 5749.

Не удается получить доступ к файлам WSL из Windows

Файловый сервер протокола 9p предоставляет службу на стороне Linux, которая позволяет Windows получить доступ к файловой системе Linux. Если вы не можете получить доступ к WSL с помощью \\wsl$ в Windows, возможно, это вызвано неправильным запуском 9P.

Чтобы убедиться в этом, можно проверить журналы запуска с помощью команды dmesg |grep 9p. Если ошибки есть, отобразятся сведения о них. Вывод выглядит следующим образом:

[    0.363323] 9p: Installing v9fs 9p2000 file system support
[    0.363336] FS-Cache: Netfs '9p' registered for caching
[    0.398989] 9pnet: Installing 9P2000 support

Дополнительные сведения об этой ошибке см. в этом потоке GitHub.

Не удается запустить дистрибутив WSL 2, а в выходных данных отображается только WSL 2.

Если язык интерфейса не английский, возможно, отображается усеченная версия текста ошибки.

C:\Users\me>wsl
WSL 2

Чтобы устранить эту проблему, перейдите по адресу https://aka.ms/wsl2kernel и установите ядро вручную, следуя инструкциям на этой странице документации.

Ошибка

command not found при выполнении исполняемых файлов Windows в Linux

Пользователи могут запускать исполняемые файлы Windows, например notepad. exe, прямо в среде Linux. Но иногда это действие приводит к ошибке «Команда не найдена», как показано ниже:

$ notepad.exe
-bash: notepad.exe: command not found

Если в переменной $PATH нет обязательных путей Win32, подсистема взаимодействие не сможет найти EXE-файл.
Чтобы проверить это, выполните echo $PATH в среде Linux. В выходных данных вы должны увидеть путь к win32 (например, /mnt/c/Windows).
Если вы не видите эти пути Windows, скорее всего переменная PATH перезаписана оболочкой Linux.

Ниже приведен пример файла /etc/profile на ОС Debian, который вызывал такую проблему:

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi

Чтобы решить эту проблему в среде Debian, нужно удалить приведенные выше строки.
Вы также можете добавить значения в переменную $PATH во время назначения, как показано ниже, но это может вызвать другие проблемы с WSL и VSCode.

if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:$PATH"
fi

Дополнительные сведения см. в описании проблем 5296 и 5779.

«Ошибка: 0x80370102 The virtual machine could not be started because a required feature is not installed (Не удалось запустить виртуальную машину, так как не установлена необходимая функция).

Включите компонент платформы виртуальных машин Windows и убедитесь, что в BIOS включена виртуализация.

  1. Проверка требований к системе Hyper-V

  2. Если компьютер является виртуальной машиной, включите вложенную виртуализацию вручную. Запустите PowerShell с правами администратора и выполните следующую команду:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    
  3. Следуйте рекомендациям производителя компьютера, чтобы включить виртуализацию. Как правило, для проверки того, что эти функции включены в ЦП, может использоваться BIOS системы. Инструкции для этого процесса могут быть разными для разных компьютеров, один из примеров вы можете изучить в этой статье от Bleeping Computer.

  4. Перезагрузите компьютер после включения дополнительного компонента Virtual Machine Platform.

Bash утрачивает подключение к сети после подключения к сети VPN

Если после подключения к VPN в Windows оболочка Bash утрачивает подключение к сети, попробуйте воспользоваться этим обходным решением в Bash. Это решение позволит вручную переопределить разрешение DNS с помощью /etc/resolv.conf.

  1. Запишите DNS-сервер виртуальной частной сети. Для этого выполните ipconfig.exe /all
  2. Создайте копию существующего resolv.conf, выполнив sudo cp /etc/resolv.conf /etc/resolv.conf.new
  3. Разорвите связь с текущим файлом resolv.conf, выполнив команду sudo unlink /etc/resolv. conf.
  4. sudo mv /etc/resolv.conf.new /etc/resolv.conf
  5. Откройте /etc/resolv.conf и сделайте следующее.
    a. Удалите из файла первую строку с текстом «# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line.» (Этот файл был автоматически создан WSL. Чтобы остановить автоматическое создание этого файла, удалите данную строку).
    b. Добавьте запись DNS из пункта 1 выше в качестве первой записи в списке DNS-серверов.
    c. Закройте файл.

После отключения VPN необходимо будет отменить изменения в /etc/resolv.conf. Для этого сделайте следующее.

  1. cd /etc
  2. sudo mv resolv.conf resolv.conf.new
  3. sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

При запуске WSL или установке дистрибутива возвращается код ошибки

Выполните эти инструкции, чтобы получить подробные журналы и сообщить о возникшей проблеме на портале GitHub.

Обновление Bash для Ubuntu в Windows

Два компонента Bash для Ubuntu в Windows могут требовать обновления.

  1. Подсистема Windows для Linux

    Обновление этой части Bash для Ubuntu в Windows обеспечит применение всех новых исправлений, описанных в заметках о выпуске. Убедитесь, что вы подписаны на Программу предварительной оценки Windows и что ваша сборка обновлена. Чтобы обеспечить более точное управление, включая сброс экземпляра Ubuntu, ознакомьтесь со страницей справочных материалов по командам.

  2. Двоичные файлы пользователя Ubuntu

    При обновлении этой части Bash для Ubuntu в Windows будут установлены все обновления двоичных файлов пользователя Ubuntu, включая приложения, установленные с помощью apt-get. Чтобы выполнить обновление, выполните следующие команды в Bash.

    1. apt-get update
    2. apt-get upgrade

Ошибки apt-get upgrade

Некоторые пакеты используют функции, которые еще не реализованы. Например, udevпока не поддерживается и вызывает несколько ошибок apt-get upgrade.

Чтобы устранить проблемы, связанные с udev, выполните следующие действия.

  1. Введите приведенный ниже код в /usr/sbin/policy-rc.d и сохраните изменения.

    #!/bin/sh
    exit 101
    
  2. Добавьте разрешения на выполнение в /usr/sbin/policy-rc.d:

    chmod +x /usr/sbin/policy-rc.d
    
  3. Выполните следующие команды:

    dpkg-divert --local --rename --add /sbin/initctl
    ln -s /bin/true /sbin/initctl
    

«Ошибка: 0x80040306» при установке

Это связано с тем, что мы не поддерживаем устаревшую консоль.
Чтобы отключить устаревшую консоль, выполните следующие действия.

  1. Выполните файл cmd.exe.
  2. Щелкните правой кнопкой мыши строку заголовка и выберите «Свойства», затем снимите флажок «Использовать прежнюю версию консоли».
  3. Нажмите кнопку «ОК».

«Ошибка: 0x80040154» после обновления Windows

Компонент «Подсистема Windows для Linux» может быть отключен во время обновления Windows. В этом случае данную функцию Windows необходимо включить заново. Инструкции по включению подсистемы Windows для Linux можно найти в руководстве по установке.

Изменение отображаемого языка

Установщик WSL попытается автоматически изменить языковой стандарт Ubuntu в соответствии с языковым стандартом установки Windows. Если это нежелательно, можно выполнить приведенную ниже команду, чтобы изменить языковой стандарт Ubuntu после завершения установки. Чтобы это изменение вступило в силу, потребуется повторно запустить bash.exe.

В приведенном ниже примере языковой стандарт изменяется на EN-US.

sudo update-locale LANG=en_US.UTF8

Проблемы установки после восстановления системы Windows

  1. Удалите папку %windir%\System32\Tasks\Microsoft\Windows\Windows Subsystem for Linux.
    Примечание. Не делайте этого, если дополнительный компонент полностью установлен и работает.
  2. Включите дополнительный компонент WSL (если он еще не включен).
  3. Выполните перезагрузку.
  4. Выполните команду lxrun /uninstall /full
  5. Установите Bash.

Нет доступа к Интернету в WSL

Некоторые пользователи сообщили о проблемах с определенными приложениями брандмауэра, блокирующими доступ к Интернету в WSL. Сообщили о следующих брандмауэрах:

  1. Kaspersky;
  2. AVG;
  3. Avast.
  4. Symantec Endpoint Protection

В некоторых случаях отключение брандмауэра обеспечивает доступ. В некоторых случаях доступ блокируется просто при наличии установленного брандмауэра.

Ошибка «Отказ в разрешении» при проверке связи

В выпуске Windows Anniversary Update, версия 1607 для проверки связи в WSL требуются права администратора. Чтобы выполнить проверку связи, запустите Bash для Ubuntu в Windows от имени администратора или запустите bash. exe из командной строки или сеанса PowerShell с привилегиями администратора.

В более поздних версиях Windows (сборка 14926+) права администратора не требуются.

Bash перестал отвечать на запросы

Если при работе с Bash вы обнаружите, что Bash перестал отвечать на запросы (или взаимозаблокирован), помогите нам диагностировать проблему путем сбора и передачи дампа памяти. Обратите внимание на то, что выполнение этих действий приведет к сбою системы. Не делайте этого, если вас это не устраивает, либо предварительно сохраните результаты своей работы.

Сбор дампа памяти

  1. Измените тип дампа памяти на «Полный дамп памяти». При изменении типа дампа запишите текущий тип.

  2. Выполните эти действия, чтобы настроить аварийное завершение с помощью клавиатуры.

  3. Воспроизведите взаимоблокировку или прекращение ответа на запросы.

  4. Выполните аварийное завершение системы с помощью последовательности клавиш из пункта 2.

  5. Произойдет аварийное завершение системы и будет собран дамп памяти. OS Version»

    Подтверждение включения WSL

    Вы можете убедиться, что подсистема Windows для Linux включена, выполнив в PowerShell следующую команду.

    Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    

    Проблемы с подключением к серверу OpenSSH

    Попытка подключения к серверу SSH завершается следующей ошибкой: «Connection closed by 127.0.0.1 port 22» (Подключение закрыто узлом 127.0.0.1 через порт 22).

    1. Убедитесь, что сервер OpenSSH работает

      sudo service ssh status
      

      и вы следовали указаниям в этом руководстве: https://ubuntu.com/server/docs/service-openssh.

    2. Завершите работу службы sshd и запустите sshd в режиме отладки.

      sudo service ssh stop
      sudo /usr/sbin/sshd -d
      
    3. Проверьте журналы запуска и убедитесь, что ключи сервера доступны и в журнале нет сообщений, как показано ниже.

      debug1: sshd version OpenSSH_7. 2, OpenSSL 1.0.2g  1 Mar 2016
      debug1: key_load_private: incorrect passphrase supplied to decrypt private key
      debug1: key_load_public: No such file or directory
      Could not load host key: /etc/ssh/ssh_host_rsa_key
      debug1: key_load_private: No such file or directory
      debug1: key_load_public: No such file or directory
      Could not load host key: /etc/ssh/ssh_host_dsa_key
      debug1: key_load_private: No such file or directory
      debug1: key_load_public: No such file or directory
      Could not load host key: /etc/ssh/ssh_host_ecdsa_key
      debug1: key_load_private: No such file or directory
      debug1: key_load_public: No such file or directory
      Could not load host key: /etc/ssh/ssh_host_ed25519_key
      

    Если вы видите такие сообщения и в разделе /etc/ssh/ отсутствуют ключи, потребуется повторно создать ключи или просто очистить и установить сервер OpenSSH.

    sudo apt-get purge openssh-server
    sudo apt-get install openssh-server
    

    «Указанная сборка не найдена».

    Это сообщение может появиться при включении дополнительного компонента WSL.

    Данная ошибка связана с неправильным состоянием установки. Чтобы устранить эту проблему, выполните следующие действия.

    • Если вы используете команду включения компонента WSL в PowerShell, попробуйте использовать графический пользовательский интерфейс. Для этого откройте меню «Пуск», выполните поиск фразы «Включение или отключение компонентов Windows», а затем из списка выберите «Подсистема Windows для Linux». Этот дополнительный компонент будет установлен.

    • Обновите версию Windows, выбрав «Параметры» > «Обновления» и щелкнув «Проверить наличие обновлений».

    • Если оба способа не помогли и вам нужно использовать WSL, рассмотрите возможность обновления на месте, переустановив Windows 10 с установочного носителя и выбрав параметр «Сохранить все», чтобы сохранить свои приложения и файлы. Инструкции по такой установке можно найти на странице Переустановка Windows 10.

    Правильные (связанные с SSH) ошибки разрешений

    Если вы видите эту ошибку:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0777 for '/home/artur/.ssh/private-key.pem' are too open.
    

    Чтобы устранить эту проблему, добавьте следующий текст в файл /etc/wsl.conf:

    [automount]
    enabled = true
    options = metadata,uid=1000,gid=1000,umask=0022
    

    Обратите внимание, что добавление этой команды будет включать метаданные и изменять разрешения для файлов Windows, показанных в WSL. См. сведения о разрешениях файловой системы.

    Выполнение команд Windows завершается сбоем в дистрибутиве

    Некоторые дистрибутивы, доступные в Microsoft Store, еще не полностью поддерживают возможность выполнения команд Windows в Терминале. Если при выполнении powershell. exe /c start . или любой другой команды Windows возникает ошибка -bash: powershell.exe: command not found, ее можно устранить, выполнив следующие действия:

    1. В дистрибутиве WSL выполните echo $PATH.
      Если /mnt/c/Windows/system32 отсутствует, что-то переопределяет стандартную переменную PATH.
    2. Проверьте параметры профиля с помощью cat /etc/profile.
      Если присутствует назначение переменной PATH, измените файл, чтобы закомментировать блок назначения PATH, используя символ # .
    3. Проверьте, существует ли файл wsl.conf (cat /etc/wsl.conf), и убедитесь, что он не содержит appendWindowsPath=false. В противном случае закомментируйте эту строку.
    4. Перезапустите дистрибутив, введя wsl -t , после чего следует имя дистрибутива, либо выполните wsl --shutdown в cmd или PowerShell.

    Не удается выполнить загрузку после установки WSL 2

    Мы осведомлены о проблемах, из-за которых пользователям не удается выполнить загрузку после установки WSL 2. Пока мы полностью диагностировали эту проблему, от пользователей поступали сообщения о том, что помочь в ее устранении может изменение размера буфера или установка правильных драйверов. Просматривайте новейшие сведения об этой проблеме на сайте GitHub.



    Что собой представляет подсистема Windows для Linux



    • Чтение занимает 2 мин

    В этой статье

    Подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux с большинством программ командной строки, служебных программ и приложений непосредственно в Windows без каких-либо изменений и необходимости использовать традиционную виртуальную машину или двойную загрузку.

    Можно сделать следующее.

    • Выберите предпочтительные дистрибутивы GNU/Linux из Microsoft Store.
    • Запускайте средства командной строки, например grep, sed, awk, или другие двоичные файлы ELF-64.
    • Запускайте сценарии Bash Shell и приложения командной строки GNU/Linux, включая:
      • инструменты: vim, emacs, tmux;
      • языки: NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Rust, Go и пр.
      • Службы. SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
    • Установите дополнительное программное обеспечение с помощью своего собственного диспетчера пакетов дистрибутивов GNU/Linux.
    • Вызывайте приложения Windows с помощью оболочки командной строки, похожей на UNIX.
    • Вызывайте приложения GNU/Linux в Windows.

    Что такое WSL 2?

    WSL 2 — это новая версия архитектуры подсистемы Windows для Linux, которая поддерживает подсистему Windows для Linux, чтобы запускать двоичные файлы Linux ELF64 в Windows. Ее основными приоритетами является увеличение производительности файловой системы и добавление полной совместимости системных вызовов.

    Эта новая архитектура изменяет способ взаимодействия этих двоичных файлов Linux с Windows и с оборудованием компьютера, но по-прежнему предоставляет то же взаимодействие с пользователем, что и WSL 1 (текущая общедоступная версия).

    Отдельные дистрибутивы Linux можно запускать с архитектурой WSL 1 или WSL 2. Каждый дистрибутив можно обновить или использовать на более старой версии в любое время, кроме того вы можете запустить дистрибутивы WSL 1 и WSL 2 параллельно. WSL 2 использует совершенно новую архитектуру, которая дает преимущества от работы с реальным ядром Linux.

    Дальнейшие действия

    Windows Subsystem for Linux, или как разрабатывать приложения на Windows без боли

    Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.

    19 569

    просмотров

    Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!

    Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.

    Конечная цель

    Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.

    Кроме того, WSL включает в себя целый ряд утилит для интеграции с Windows — пути в файловой системе автоматически преобразовываются в нужный формат, из-под Linux можно запускать приложения в Windows (но не наоборот!), Linux в WSL имеет доступ ко всем портам и сервисам в Windows.

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

    В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.

    Установка для Windows 10 x64

    Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.

    • Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:

    PS C:\Windows\system32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

    • Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
    • Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:

    PS C:\Windows\system32> cd ~
    PS C:\Users\somebody> Rename-Item . \Ubuntu.appx .\Ubuntu.zip
    PS C:\Users\somebody> Expand-Archive .\Ubuntu.zip .\Ubuntu
    PS C:\Users\somebody> cd .\Ubuntu\
    PS C:\Users\somebody> .\ubuntu1804.exe

    При первом запуске необходимо задать ваши логин и пароль.

    vagrant up

    Далее уже вам откроется консоль с Ubuntu.

    Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1

    К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.

    Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:

    Vagrant.configure(«2») do |config|
    config.vm.box = «bento/ubuntu-18.04»
    config.vm.synced_folder «c:/», «/windows»
    # Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
    config.vm.network :forwarded_port, host: 5432, guest: 5432
    config. vm.provider «virtualbox» do |vb|
    vb.memory = 2048
    end
    end

    После чего в том же PowerShell или cmd выполните команду:

    После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!

    Устанавливаем всякие скучные вещи

    Разворачиваем наше окружение под Python/JS/Go.

    :~$ sudo apt update
    :~$ sudo apt install build-essential
    :~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
    :~$ curl -L https://raw. githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
    :~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
    :~$ source ~/.bashrc
    :~$ pyenv install 3.7.2
    :~$ pyenv global 3.7.2

    Быстро проверяем работоспособность версий и, собственно, версии:

    :~$ nodejs -v
    v8.10.0
    :~$ go version
    go version go1.10.4 linux/amd64
    :~$ python -V
    Python 3.7.2
    :~$

    Неужели всё уже работает?

    Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).

    И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:

    {
    «terminal.integrated.shell.windows»: «C:\\Windows\\System32\\wsl.exe»,
    # Добавьте сюда иные настройки по вашему усмотрению
    }

    На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.

    • Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
    • Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
    • Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
    • Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
    • Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:
    • После этого выполните команду source ~/.bashrc для применения изменений.
    • Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.

    :~$ sudo apt install -y xfce4
    :~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted

    :~$ sudo apt install libgtk2. 0-0 libxss1 libasound2
    :~$ sudo dpkg -i <code deb file>
    :~$ sudo apt install -f

    • Запустите VS Code при помощи команды code.

    Вот теперь работает 🙂 Ещё более кратко и по сути расписано вот тут.

    Однако до совершенства есть ещё один штрих.

    {

    «window.titleBarStyle»: «native»,

    }

    А ты ещё докажи, что работает

    Разворачивается оно стандартно для подобного рода проектов.

    # You are on a project root
    :~$ python -m venv env/
    :~$ source env/bin/activate
    :~$ pip install -r requirements.txt
    :~$ cd frontend
    :~$ npm install
    :~$ ng build outDir=../backend/microblog/static
    :~$ cd ../backend
    :~$ python manage.py runserver

    Отличия в настройке между Vagrant и WSL

    Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.

    Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.

    Итоги

    Но стоит заметить, что даже подобные извращения могут помочь многим людям, вынужденно сталкивающимися с… не всегда очевидным поведением новой технологии от Microsoft.

    Установка и использование подсистемы Linux (WSL 2) в Windows 10

    Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows. В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра. Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).

    Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).

    Изначально компонент WSL отключен. Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows (Control Panel\All Control Panel Items\Programs and Features\Turn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.

    Вы можете включить компоненты WSL в Windows 10 с помощью dism:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    или PowerShell

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

    В Windows Server 2004 Semi-Annual Channel (SAC) для установки компонента WSL используется командлет Install-WindowsFeature:

    Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux

    После этого также необходимо перезагрузить компьютер.

    В настройка BIOS/UEFI компьютера должна быть включена поддержка аппаратной виртуализации: Intel VT (Intel Virtualization Technology) или AMD-V.

    Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку

    Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:

    wsl --set-default-version 2

    Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.

    Если у вас отключен Windows Store или вы хотите установить дистрибутив WSL в Core редакции Windows Server, вы можете скачать дистрибутив Ubuntu с помощью PowerShell командлета Invoke-WebRequest:

    Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing

    Распакуйте архив:

    Expand-Archive -Path .\ubuntu-2004.zip

    Запустите установку образа Linux с помощью файла Ubuntu.exe.

    Также вы можете скачать образ в виде appx файла и установить его с помощью командлета Add-AppxPackage.

    После установки можно проверить используемую версию WSL с помощью команды

    wsl --list –-verbose

    Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:

    wsl --set-version Ubuntu-20.04 2

    Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.

    После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl. При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo. В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.

    Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:

    wsl
    ls /mnt
    ls/mnt/c

    dir | wsl grep Sa
    wsl ls ‑la > 123.txt
    wsl ls ‑la /proc/cpuinfo
    wsl ls ‑la “/mnt/c/Program Files”

    Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in

    Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:

    notepad \\wsl$\Ubuntu-20.04\home\1122.txt

    Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:

    sudo apt-get update
    sudo apt-get upgrade

    После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.

    Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды

    sudo apt-get install mc

    Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.

    Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:

    ip addr | grep eth0

    В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).

    С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:

    sudo apt-get install gedit
    sudo apt-get install firefox
    sudo apt-get install x11-app

    Затем создайте файл в директории root:

    cd /~
    vim .bash_login

    впишите строку

    export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

    сохраните запись

    Esc -> :wr -> :q

    Теперь можете запустить графические программы Linux через WSL командами:

    firefox

    или

    gedit

    Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:

    wsl --list –all

    чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:

    wsl --shutdown

    Подсистема Windows для Linux 2 (WSL2) стала доступна на ОС Windows 10 версии 1903 и версии 1909 / Хабр

    20 августа 2020 года Microsoft выпустила кумулятивное обновление KB4566116. После установки этого патча пользователи ОС Windows 10 версии 1903 и версии 1909 могут установить вторую версию подсистемы Windows для Linux (WSL 2). Ранее обновленная версия WSL была доступна только в Windows 10 версии 2004.


    С помощью WSL 2 можно запускать в Windows 10 не только консольные приложения, но и линуксовые GUI-программы. Предлагаемое Microsoft для WSL2 ядро основано на выпуске ядра Linux 4.19.

    Инструкция по установке подсистемы Windows для Linux и обновению до WSL 2. Также можно установить различные версии дистрибутивов Linux на WSL 1 или WSL 2, например, Kali Linux с графическим интерфейсом с помощью надстройки Win-Kex (Windows + Kali Desktop EXperience). Сейчас еще доступны в каталоге Microsoft Store для установки в WSL: Ubuntu, Debian GNU/Linux, Fedora, Alpine, SUSE и openSUSE.

    Сравнение версий WSL 1 и WSL 2.

    Как активировать подсистему Windows для Linux.

    Открыть PowerShell (сейчас и далее под администратором) и запустить:

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

    Перезагрузить ПК.

    Открыть PowerShell и запустить:

    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

    Перезагрузить ПК.

    Далее необходимо скачать и установить WSL2.

    Потом нужно открыть PowerShell и запустить:

    wsl --set-default-version 2

    Далее нужно установить нужную версию Linux из магазина Microsoft Store.

    Чтобы поменять тип установки установленной версии Linux с WSL1 на WSL2 нужно в PowerShell запустить:

    wsl --set-version "dist Name Linux" 2

    См. также:

    Установить WSL в Windows 10

    • 10 минут на чтение

    В этой статье

    Есть два варианта установки подсистемы Windows для Linux (WSL):

    • Упрощенная установка (предварительная версия) : wsl --install

      Команда упрощенной установки wsl --install требует, чтобы вы присоединились к программе предварительной оценки Windows и установили предварительную сборку Windows 10 (сборка ОС 20262 или выше), но устраняет необходимость следовать инструкциям по установке вручную.Все, что вам нужно сделать, это открыть командное окно с правами администратора и запустить wsl --install , после перезапуска вы будете готовы использовать WSL.

    • Ручная установка : Выполните шесть шагов, перечисленных ниже.

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

    Упрощенная установка для инсайдеров Windows

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

    Чтобы использовать упрощенную команду установки wsl --install , необходимо:

    • Присоединяйтесь к программе предварительной оценки Windows
    • Установите предварительную сборку Windows 10 (сборка ОС 20262 или выше).
    • Открыть окно командной строки с правами администратора

    Как только эти требования будут выполнены, для установки WSL:

    • Введите эту команду в командной строке, которую вы открыли в режиме администратора: wsl.exe --install
    • Перезагрузите машину

    При первом запуске только что установленного дистрибутива Linux откроется окно консоли, и вам будет предложено подождать, пока файлы будут распакованы и сохранены на вашем ПК.Все будущие запуски должны занять менее секунды.

    Затем вам нужно будет создать учетную запись пользователя и пароль для вашего нового дистрибутива Linux.

    ПОЗДРАВЛЯЕМ! Вы успешно установили и настроили дистрибутив Linux, полностью интегрированный с вашей операционной системой Windows!

    Команда —install выполняет следующие действия:

    • Включает дополнительные компоненты WSL и платформы виртуальных машин
    • Загружает и устанавливает последнее ядро ​​Linux
    • Устанавливает WSL 2 по умолчанию
    • Скачивает и устанавливает дистрибутив Linux (может потребоваться перезагрузка)

    По умолчанию установленный дистрибутив Linux будет Ubuntu.Это можно изменить с помощью wsl --install -d <Имя распространения> . (замена на имя желаемого дистрибутива.) Дополнительные дистрибутивы Linux могут быть добавлены на ваш компьютер после начальной установки с помощью команды wsl --install -d .

    Чтобы увидеть список доступных дистрибутивов Linux, введите wsl --list --online .

    Шаги ручной установки

    Если вы не используете сборку участников программы предварительной оценки Windows, функции, необходимые для WSL, необходимо будет включить вручную, выполнив следующие действия.

    Шаг 1. Включите подсистему Windows для Linux

    Вы должны сначала включить дополнительную функцию «Подсистема Windows для Linux» перед установкой любых дистрибутивов Linux в Windows.

    Откройте PowerShell от имени администратора и запустите:

      DISM.exe / онлайн / включить-функцию / имя-функции: Microsoft-Windows-Subsystem-Linux / all / norestart
      

    Мы рекомендуем сейчас перейти к шагу № 2, обновлению до WSL 2, но если вы хотите установить только WSL 1, теперь вы можете перезапустить свой компьютер и перейти к шагу 6 — Установка выбранного вами дистрибутива Linux.Чтобы выполнить обновление до WSL 2, дождитесь перезапуска вашего компьютера и перейдите к следующему шагу.

    Шаг 2. Проверьте требования для запуска WSL 2

    Для обновления до WSL 2 у вас должна быть установлена ​​Windows 10.

    • Для систем x64: Версия 1903 или выше, с Build 18362 или выше.
    • Для систем ARM64: Версия 2004 или выше, с Build 19041 или выше.
    • Сборки ниже 18362 не поддерживают WSL 2.Используйте помощник по обновлению Windows, чтобы обновить свою версию Windows.

    Чтобы проверить версию и номер сборки, нажмите Клавиша с логотипом Windows + R , введите winver , выберите OK . Обновите Windows до последней версии в меню «Настройки».

    Шаг 3. Включите функцию виртуальной машины

    Перед установкой WSL 2 необходимо включить дополнительную функцию Virtual Machine Platform . Для использования этой функции вашей машине потребуются возможности виртуализации.

    Откройте PowerShell от имени администратора и запустите:

      DISM.exe / онлайн / включить-функцию / имя функции: VirtualMachinePlatform / all / norestart
      

    Перезагрузите свой компьютер, чтобы завершить установку WSL и обновить до WSL 2.

    Шаг 4. Загрузите пакет обновления ядра Linux

    1. Загрузите последний пакет:

      Примечание

      Если вы используете компьютер ARM64, загрузите вместо него пакет ARM64. Если вы не знаете, какой у вас компьютер, откройте командную строку или PowerShell и введите: systeminfo | найдите "Тип системы" . Предупреждение: В неанглоязычных версиях Windows вам может потребоваться изменить поисковый текст, например, на немецком языке это будет systeminfo | найдите "Systemtyp" .

    2. Запустите пакет обновления, загруженный на предыдущем шаге. (Дважды щелкните, чтобы запустить — вам будет предложено ввести повышенные разрешения, выберите «Да», чтобы утвердить эту установку.)

    После завершения установки переходите к следующему шагу — установке WSL 2 в качестве версии по умолчанию при установке новых дистрибутивов Linux.(Пропустите этот шаг, если вы хотите, чтобы ваши новые установки Linux были установлены на WSL 1).

    Шаг 5. Установите WSL 2 в качестве версии по умолчанию

    Откройте PowerShell и запустите эту команду, чтобы установить WSL 2 в качестве версии по умолчанию при установке нового дистрибутива Linux:

      wsl --set-default-version 2
      

    Шаг 6. Установите предпочтительный дистрибутив Linux

    1. Откройте Microsoft Store и выберите свой любимый дистрибутив Linux.

      Следующие ссылки открывают страницу магазина Microsoft для каждого дистрибутива:

    2. На странице раздачи выберите «Получить».

    При первом запуске только что установленного дистрибутива Linux откроется окно консоли, и вам будет предложено подождать минуту или две, чтобы файлы были распакованы и сохранены на вашем ПК. Все будущие запуски должны занять менее секунды.

    Затем вам нужно будет создать учетную запись пользователя и пароль для вашего нового дистрибутива Linux.

    ПОЗДРАВЛЯЕМ! Вы успешно установили и настроили дистрибутив Linux, полностью интегрированный с вашей операционной системой Windows!

    Установить терминал Windows (необязательно)

    Windows Terminal позволяет использовать несколько вкладок (быстро переключаться между несколькими командными строками Linux, командной строкой Windows, PowerShell, Azure CLI и т. Д.), Создавать настраиваемые привязки клавиш (сочетания клавиш для открытия или закрытия вкладок, копирования + вставки и т. Д.)), используйте функцию поиска и настраиваемые темы (цветовые схемы, стили и размеры шрифтов, фоновое изображение / размытие / прозрачность). Учить больше.

    Установите терминал Windows.

    Установите версию дистрибутива WSL 1 или WSL 2

    Вы можете проверить версию WSL, назначенную каждому из установленных вами дистрибутивов Linux, открыв командную строку PowerShell и введя команду (доступна только в Windows Build 18362 или более поздней версии): wsl -l -v

      wsl --list --verbose
      

    Чтобы установить, что дистрибутив будет поддерживаться любой версией WSL, запустите:

      wsl --set-version <название дистрибутива> 
      

    Обязательно замените <имя дистрибутива> фактическим именем вашего дистрибутива, а — числом ‘1’ или ‘2’.Вы можете вернуться к WSL 1 в любое время, выполнив ту же команду, что и выше, но заменив «2» на «1».

    Примечание

    Обновление с WSL 1 до WSL 2 может занять несколько минут в зависимости от размера целевого дистрибутива. Если вы используете более старую (устаревшую) установку WSL 1 из Windows 10 Anniversary Update или Creators Update, вы можете столкнуться с ошибкой обновления. Следуйте этим инструкциям, чтобы удалить все устаревшие дистрибутивы.

    Если команда wsl --set-default-version является недопустимой, введите wsl --help .Если --set-default-version отсутствует в списке, это означает, что ваша ОС не поддерживает его, и вам необходимо выполнить обновление до версии 1903, Build 18362 или выше. Если вы используете сборку 19041 для ARM64, эта команда может завершиться ошибкой при использовании PowerShell, и в этом случае вы можете вместо этого использовать командную строку для выполнения команды wsl.exe .

    Если вы видите это сообщение после выполнения команды: WSL 2 требует обновления компонента ядра. Для получения информации посетите https: // aka.ms / wsl2kernel . Вам по-прежнему необходимо установить пакет обновления ядра MSI Linux.

    Кроме того, если вы хотите сделать WSL 2 своей архитектурой по умолчанию, вы можете сделать это с помощью этой команды:

      wsl --set-default-version 2
      

    Это установит версию любого нового установленного дистрибутива на WSL 2.

    Устранение неполадок при установке

    Ниже приведены связанные ошибки и предлагаемые исправления. Обратитесь к странице устранения неполадок WSL, чтобы узнать о других распространенных ошибках и их решениях.

    • Установка завершилась ошибкой 0x80070003

      • Подсистема Windows для Linux работает только на вашем системном диске (обычно это ваш диск C: ). Убедитесь, что дистрибутивы хранятся на вашем системном диске:
      • Открыть настройки -> Система -> Хранилище -> Дополнительные настройки хранилища: изменение места сохранения нового содержимого
    • Ошибка WslRegisterDistribution с ошибкой 0x8007019e

      • Не включен дополнительный компонент подсистемы Windows для Linux:
      • Откройте панель управления -> Программы и компоненты -> Включите или выключите функцию Windows -> Проверьте подсистему Windows для Linux или с помощью командлета PowerShell, упомянутого в начале этой статьи.
    • Установка завершилась ошибкой 0x80070003 или 0x80370102

      • Убедитесь, что виртуализация включена в BIOS вашего компьютера. Инструкции о том, как это сделать, будут отличаться от компьютера к компьютеру и, скорее всего, будут в параметрах, связанных с процессором.
      • WSL2 требует, чтобы ваш ЦП поддерживал функцию преобразования адресов второго уровня (SLAT), которая была представлена ​​в процессорах Intel Nehalem (Intel Core 1-го поколения) и AMD Opteron.Старые процессоры (например, Intel Core 2 Duo) не смогут запускать WSL2, даже если платформа виртуальных машин успешно установлена.
    • Ошибка при попытке обновления: Неверный параметр командной строки: wsl --set-version Ubuntu 2

      • Убедитесь, что у вас включена подсистема Windows для Linux и что вы используете сборку Windows версии 18362 или выше. Чтобы включить WSL, запустите эту команду в командной строке PowerShell с правами администратора: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux .
    • Запрошенная операция не может быть завершена из-за ограничений системы виртуального диска. Файлы виртуального жесткого диска должны быть несжатыми и незашифрованными и не должны быть разреженными.

      • Снимите флажок «Сжимать содержимое» (а также «Зашифровать содержимое», если он отмечен), открыв папку профиля для вашего дистрибутива Linux. Он должен находиться в папке в файловой системе Windows, например: USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited...
      • В этом профиле дистрибутива Linux должна быть папка LocalState. Щелкните эту папку правой кнопкой мыши, чтобы отобразить меню параметров. Выберите «Свойства»> «Дополнительно», а затем убедитесь, что флажки «Сжимать содержимое для экономии места на диске» и «Зашифровать содержимое для защиты данных» не установлены (не отмечены). Если вас спросят, применять ли это только к текущей папке или ко всем подпапкам и файлам, выберите «только эту папку», потому что вы снимаете только флаг сжатия. После этого должна работать команда wsl --set-version .

    Примечание

    В моем случае папка LocalState для моего дистрибутива Ubuntu 18.04 находилась в C: \ Users <имя-пользователя> \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc

    Проверьте поток документов WSL на GitHub № 4103, где отслеживается эта проблема, для получения обновленной информации.

    • Термин «wsl» не распознается как имя командлета, функции, файла сценария или работающей программы.

    • Ошибка: это обновление применимо только к машинам с подсистемой Windows для Linux.

      • Для установки пакета MSI с обновлением ядра Linux требуется WSL, который необходимо сначала включить. В случае сбоя вы увидите сообщение: Это обновление применимо только к машинам с подсистемой Windows для Linux .
      • Есть три возможных причины появления этого сообщения:
      1. Вы все еще используете старую версию Windows, которая не поддерживает WSL 2.См. Шаг № 2 для ознакомления с требованиями к версии и ссылками на обновление.

      2. WSL не включен. Вам нужно будет вернуться к шагу № 1 и убедиться, что на вашем компьютере включена дополнительная функция WSL.

      3. После включения WSL требуется перезагрузка, чтобы он вступил в силу, перезагрузите компьютер и повторите попытку.

    • Ошибка: WSL 2 требует обновления компонента ядра. Для получения информации посетите https://aka.ms/wsl2kernel.

      • Если пакет ядра Linux отсутствует в папке% SystemRoot% \ system32 \ lxss \ tools, вы столкнетесь с этой ошибкой. Решите эту проблему, установив пакет MSI с обновлением ядра Linux на шаге 4 этих инструкций по установке. Возможно, вам потребуется удалить MSI из «Установка и удаление программ» и установить его снова.

    Часто задаваемые вопросы о подсистеме Windows для Linux

    Что такое подсистема Windows для Linux (WSL)?

    Подсистема Windows для Linux (WSL) — это функция Windows 10, которая позволяет запускать собственные инструменты командной строки Linux непосредственно в Windows вместе с традиционным рабочим столом Windows и приложениями.

    См. Дополнительную информацию на странице «Информация».

    Для кого предназначен WSL?

    Это в первую очередь инструмент для разработчиков, особенно веб-разработчиков, работающих над проектами с открытым исходным кодом или выполняющих развертывание в серверных средах Linux. WSL предназначен для всех, кто любит использовать Bash, общие инструменты Linux ( sed , awk и т. Д.) И фреймворки, ориентированные на Linux (Ruby, Python и т. Д.), Но также любит использовать инструменты повышения производительности Windows

    Что я могу делать с WSL?

    WSL позволяет запускать Linux в оболочке Bash с выбранным вами дистрибутивом (Ubuntu, Debian, OpenSUSE, Kali, Alpine и т. Д.).Используя Bash, вы можете запускать инструменты и приложения Linux из командной строки. Например, введите lsb_release -a и нажмите Enter; вы увидите подробную информацию о запущенном дистрибутиве Linux:

    Вы также можете получить доступ к файловой системе локального компьютера из оболочки Linux Bash — вы найдете локальные диски, смонтированные в папке / mnt . Например, ваш диск C: смонтирован под / mnt / c :

    Не могли бы вы описать типичный рабочий процесс разработки с использованием WSL?

    WSL нацелен на аудиторию разработчиков с намерением использовать его как часть внутреннего цикла разработки.Допустим, Сэм создает конвейер CI / CD (непрерывная интеграция и непрерывная доставка) и хочет сначала протестировать его на локальном компьютере (ноутбуке), прежде чем развертывать его в облаке. Сэм может включить WSL (и WSL 2 для повышения скорости и производительности), а затем использовать подлинный экземпляр Linux Ubuntu локально (на ноутбуке) с любыми командами и инструментами Bash, которые они предпочитают. После локальной проверки конвейера разработки Сэм может отправить этот конвейер CI / CD в облако (то есть в Azure), превратив его в контейнер Docker и отправив контейнер в облачный экземпляр, где он будет работать на готовой к производству виртуальной машине Ubuntu. .

    Что такое Баш?

    Bash — популярная текстовая оболочка и командный язык. Это оболочка по умолчанию, включенная в Ubuntu и другие дистрибутивы Linux, а также в macOS. Пользователи вводят команды в оболочку для выполнения сценариев и / или выполнения команд и инструментов для выполнения многих задач.

    Как это работает?

    Посетите наш блог, где мы подробно рассказываем о базовой технологии.

    Почему я должен использовать WSL, а не Linux в виртуальной машине?

    WSL требует меньше ресурсов (ЦП, память и хранилище), чем полноценная виртуальная машина.WSL также позволяет запускать инструменты и приложения командной строки Linux вместе с приложениями командной строки Windows, рабочим столом и приложениями магазина, а также получать доступ к файлам Windows из Linux. Это позволяет при желании использовать приложения Windows и инструменты командной строки Linux для одного и того же набора файлов.

    Почему я должен использовать, например, Ruby в Linux вместо Windows?

    Некоторые кроссплатформенные инструменты были созданы с учетом того, что среда, в которой они работают, ведет себя как Linux. Например, некоторые инструменты предполагают, что они могут получить доступ к очень длинным путям к файлам или что существуют определенные файлы / папки.Это часто вызывает проблемы в Windows, которая часто ведет себя не так, как Linux.

    Многие языки, такие как Ruby и node, часто переносятся на Windows и отлично работают на ней. Однако не все владельцы библиотек Ruby Gem или node / NPM переносят свои библиотеки для поддержки Windows, и многие из них имеют зависимости, специфичные для Linux. Это часто может приводить к тому, что системы, построенные с использованием таких инструментов и библиотек, страдают от ошибок сборки, а иногда и от ошибок выполнения или нежелательного поведения в Windows.

    Это лишь некоторые из проблем, которые заставили многих людей просить Microsoft улучшить инструменты командной строки Windows, и что побудило нас сотрудничать с Canonical, чтобы включить встроенные инструменты командной строки Bash и Linux для работы в Windows.

    Что это значит для PowerShell?

    При работе с проектами OSS существует множество сценариев, в которых чрезвычайно полезно перейти в Bash из командной строки PowerShell. Поддержка Bash является дополнительной и повышает ценность командной строки в Windows, позволяя PowerShell и сообществу PowerShell использовать другие популярные технологии.

    Подробнее читайте в блоге команды PowerShell — Bash для Windows: почему это круто и что это значит для PowerShell

    Могу ли я запускать ВСЕ приложения Linux в WSL?

    Нет! WSL — это инструмент, позволяющий пользователям, которым они нужны, запускать Bash и основные инструменты командной строки Linux в Windows.

    WSL еще не поддерживает рабочие столы или приложения с графическим интерфейсом пользователя (например, Gnome, KDE и т. Д.). Следите за обновлениями в блоге командной строки.

    Кроме того, несмотря на то, что вы сможете запускать многие популярные серверные приложения (например, Redis), мы не рекомендуем WSL для размещения производственных сервисов — Microsoft предлагает множество решений для запуска производственных рабочих нагрузок Linux в Azure, Hyper-V и Docker. .

    В какие SKU Windows входит WSL?

    Подсистема Windows

    для Linux доступна в настольной версии Windows 10 Anniversary и Creators update или более поздней версии.

    Начиная с обновления Fall Creators, WSL будет доступен как для настольных ПК, так и для серверных SKU Windows.

    Какие процессоры поддерживает WSL?

    WSL поддерживает процессоры x64 и ARM.

    Как мне получить доступ к моему диску C:?

    Точки монтирования для жестких дисков на локальном компьютере создаются автоматически и обеспечивают легкий доступ к файловой системе Windows.

    / mnt / <буква диска> /

    Пример использования: cd / mnt / c для доступа к c: \

    Как мне настроить Git Credential Manager? (Как использовать разрешения Windows Git в WSL?)

    Git Credential Manager позволяет вам аутентифицировать удаленный сервер Git, даже если у вас есть сложный шаблон аутентификации, такой как Azure Active Directory или двухфакторная аутентификация.Git Credential Manager интегрируется в поток аутентификации для таких сервисов, как GitHub, и после аутентификации у вашего хостинг-провайдера запрашивает новый токен аутентификации. Затем он надежно сохраняет токен в диспетчере учетных данных Windows. После первого раза вы можете использовать git, чтобы поговорить со своим хостинг-провайдером без повторной аутентификации. Он просто получит доступ к токену в диспетчере учетных данных Windows.

    Чтобы настроить Git Credential Manager для использования с распространением WSL, откройте свой дистрибутив и введите следующую команду:

      git config --global credential.помощник "/ mnt / c / Program \ Files / Git / mingw64 / libexec / git-core / git-credential-manager.exe"
      

    Теперь любая операция git, которую вы выполняете в своем распространении WSL, будет использовать диспетчер учетных данных. Если у вас уже есть кэшированные учетные данные для хоста, он будет обращаться к ним из диспетчера учетных данных. В противном случае вы получите диалоговое окно с запросом ваших учетных данных, даже если вы находитесь в консоли Linux.

    Эта поддержка зависит от взаимодействия между подсистемой Windows для Linux и самой Windows.

    Как использовать файл Windows с приложением Linux?

    Одним из преимуществ WSL является возможность доступа к вашим файлам через приложения или инструменты как для Windows, так и для Linux.

    WSL монтирует фиксированные диски вашей машины в папку / mnt / в ваших дистрибутивах Linux. Например, ваш диск C: установлен под / mnt / c /

    Используя подключенные диски, вы можете редактировать код, например, в C: \ dev \ myproj \ , используя Visual Studio / или VS Code, и создавать / тестировать этот код в Linux, обращаясь к тем же файлам через / mnt / с / dev / myproj .

    ВАЖНОЕ ПРИМЕЧАНИЕ : Одним из ключевых ограничений использования WSL является то, что прямой доступ / изменение файлов в файловой системе вашего дистрибутива Linux с помощью приложений или инструментов Windows не поддерживается. См .: Не изменять файлы Linux с помощью приложений и инструментов Windows

    Отличаются ли файлы на диске Linux от подключенного диска Windows?

    1. Файлы в корневом каталоге Linux (например, /) управляются WSL, имитирующим поведение Linux, включая, помимо прочего:

      • Файлы, содержащие недопустимые символы имени файла Windows
      • Символических ссылок, созданных для пользователей без прав администратора
      • Изменение атрибутов файла с помощью chmod и chown
      • Чувствительность к регистру файлов / папок
    2. Файлы на подключенных дисках управляются Windows и имеют следующее поведение:

      • Поддержка чувствительности к регистру
      • Все разрешения настроены так, чтобы наилучшим образом отражать разрешения Windows

    Почему при запуске apt-get upgrade возникает так много ошибок?

    В некоторых пакетах используются функции, которые мы еще не реализовали.Например, udev еще не поддерживается и вызывает несколько ошибок apt-get upgrade .

    Чтобы исправить проблемы, связанные с udev , выполните следующие действия:

    1. Напишите следующее на /usr/sbin/policy-rc.d и сохраните изменения.

        #! / Bin / sh
      выход 101
        
    2. Добавить разрешения на выполнение в /usr/sbin/policy-rc.d

        chmod + x /usr/sbin/policy-rc.d
        
    3. Выполните следующие команды

        dpkg-divert --local --rename --add / sbin / initctl
      ln -s / bin / true / sbin / initctl
        

    Как удалить распространение WSL?

    В сборках до 1709 (16299) откройте командную строку и запустите:

      lxrun / uninstall / full
      

    Дистрибутивы WSL

    , установленные из магазина, можно удалить, как и любое другое приложение Windows, щелкнув правой кнопкой мыши плитку приложения и выбрав «Удалить», или через PowerShell с помощью командлета Remove-AppxPackage ().

    Почему ping генерирует ошибки отказа в разрешении?

    В сборках WSL <14926 ping требовал, чтобы WSL запускался через консоль с повышенными привилегиями. Эта проблема была исправлена ​​в сборке 14926 и более поздних версиях.

    Как запустить сервер OpenSSH?

    Права администратора в Windows необходимы для запуска OpenSSH в WSL. Чтобы запустить сервер OpenSSH, запустите Bash в Ubuntu в Windows от имени администратора или запустите bash.exe из командной строки CMD / PowerShell с правами администратора.

    Почему я получаю «Ошибка: 0x80040306» при попытке установить?

    WSL не поддерживает работу в устаревшей консоли. Чтобы выключить устаревшую консоль:

    1. Откройте WSL, PowerShell или Cmd
    2. Щелкните строку заголовка правой кнопкой мыши -> Свойства -> снимите флажок «Использовать устаревшую консоль»
    3. Нажмите ОК

    Почему я получаю сообщение «Ошибка: 0x80040154» при запуске bash.exe после обновления Windows?

    Функция «Подсистема Windows для Linux» может быть отключена во время обновления Windows.В этом случае необходимо повторно включить функцию Windows. Инструкции по включению функции «Подсистема Windows для Linux» можно найти в Руководстве по установке.

    Как изменить язык отображения WSL?

    Установка

    WSL попытается автоматически изменить локаль Ubuntu в соответствии с локалью вашей установки Windows. Если вам не нужно такое поведение, вы можете запустить эту команду, чтобы изменить локаль Ubuntu после завершения установки. Вам придется перезапустить bash.exe, чтобы это изменение вступило в силу.

    В приведенном ниже примере языковой стандарт изменяется на en-US:

      sudo update-locale LANG = en_US.UTF8
      

    Почему у меня нет доступа в Интернет из WSL?

    Некоторые пользователи сообщали о проблемах с определенными приложениями брандмауэра, блокирующими доступ в Интернет в WSL. Сообщается о следующих межсетевых экранах:

    1. Касперский
    2. СРЕДНЕЕ
    3. Avast
    4. Symantec Endpoint Protection
    5. F-Secure

    В некоторых случаях отключение брандмауэра позволяет получить доступ.В некоторых случаях просто установка брандмауэра блокирует доступ.

    Как мне получить доступ к порту из WSL в Windows?

    WSL использует IP-адрес Windows, так как он работает в Windows. Таким образом, вы можете получить доступ к любым портам на локальном хосте, например. если у вас есть веб-контент на порту 1234, вы можете https: // localhost: 1234 в своем браузере Windows.

    Как я могу создать резервную копию своих дистрибутивов WSL или перенести их с одного диска на другой?

    Лучший способ сделать резервную копию или переместить ваши дистрибутивы — использовать команды экспорта / импорта, доступные в Windows версии 1809 и новее.Вы можете экспортировать весь свой дистрибутив в архив с помощью команды wsl --export . Затем вы можете импортировать этот дистрибутив обратно в WSL с помощью команды wsl --import , которая может указать новое местоположение на диске для импорта, что позволит вам создавать резервные копии и сохранять состояния (или перемещать) ваши дистрибутивы WSL.

    Обратите внимание, что традиционные службы резервного копирования, которые создают резервные копии файлов в папках AppData (например, Windows Backup), не повреждают файлы Linux.

    Где я могу оставить отзыв?

    Вы можете делиться отзывами и задавать вопросы по нескольким каналам.

    Если у вас есть технические проблемы или вы хотите запросить новые функции, перейдите в нашу систему отслеживания проблем Github:

    Если вы хотите быть в курсе последних новостей WSL, вы можете сделать это с помощью:

    Обзор Windows Terminal

    • 2 минуты на чтение

    В этой статье

    Windows Terminal — это современное терминальное приложение для пользователей инструментов командной строки и оболочек, таких как командная строка, PowerShell и подсистема Windows для Linux (WSL).Его основные функции включают в себя несколько вкладок, панелей, поддержку символов Unicode и UTF-8, механизм визуализации текста с ускорением на GPU, а также возможность создавать свои собственные темы и настраивать текст, цвета, фон и ярлыки.

    Несколько профилей, поддерживающих различные приложения командной строки

    Любое приложение, имеющее интерфейс командной строки, может быть запущено в Терминале Windows. Это включает в себя все, от PowerShell и командной строки до Azure Cloud Shell и любого дистрибутива WSL, такого как Ubuntu или Oh-My-Zsh.

    Схемы и комплектации по индивидуальному заказу

    Вы можете настроить терминал Windows на использование различных цветовых схем и настроек. Чтобы узнать, как создать свою собственную цветовую схему, посетите страницу Цветовые схемы. Вы также можете найти пользовательские конфигурации терминала в галерее пользовательских терминалов.

    Пользовательские действия

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

    Например, ярлык по умолчанию для копирования текста из командной строки — ctrl + shift + c . Вы можете изменить это на ctrl + 1 или что угодно. Чтобы открыть новую вкладку, ярлык по умолчанию — ctrl + shift + t , но, возможно, вы захотите изменить его на ctrl + 2 . Ярлык по умолчанию для переключения между открытыми вкладками — ctrl + tab , его можно изменить на ctrl + - и использовать вместо этого для создания новой вкладки.

    Вы можете узнать о настройке ярлыков на странице Действия.

    Поддержка символов Unicode и UTF-8

    Windows Terminal может отображать символы Unicode и UTF-8, такие как эмодзи и символы из разных языков.

    Рендеринг текста с ускорением на GPU

    Терминал Windows

    использует графический процессор для визуализации текста, что обеспечивает улучшенную производительность по сравнению с командной строкой Windows по умолчанию.

    Поддержка фонового изображения

    Вы можете иметь фоновые изображения и гифки внутри окна Терминала Windows.Информацию о том, как добавить фоновые изображения в свой профиль, можно найти на странице Профиль — Внешний вид.

    Аргументы командной строки

    Вы можете настроить Windows Terminal для запуска в определенной конфигурации, используя аргументы командной строки. Вы можете указать, какой профиль открывать на новой вкладке, какую папку следует выбрать, открыть терминал с разделенными панелями окон и выбрать, какая вкладка должна быть в фокусе.

    Например, чтобы открыть Терминал Windows из PowerShell с тремя панелями, с левой панелью, выполняющей профиль командной строки, а правой панелью, разделенной между вашей PowerShell и вашим профилем по умолчанию, на котором запущен WSL, введите:

      wt -p "Командная строка" `; разделенная панель -p "Windows PowerShell"; разделенная панель -H wsl.EXE
      

    Узнайте, как настроить аргументы командной строки на странице аргументов командной строки.

    Установить подсистему Linux на Windows Server

    • 2 минуты на чтение

    В этой статье

    Подсистема Windows для Linux доступна для установки на Windows Server 2019 (версия 1709) и более поздних версий.Это руководство проведет шаги по включению WSL на вашем компьютере.

    Включение подсистемы Windows для Linux

    Прежде чем вы сможете запускать дистрибутивы Linux в Windows, вы должны включить дополнительную функцию «Подсистема Windows для Linux» и перезагрузиться.

    Откройте PowerShell от имени администратора и запустите:

      Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
      

    Скачать дистрибутив Linux

    Следуйте этим инструкциям, чтобы загрузить свой любимый дистрибутив Linux.

    Распакуйте и установите дистрибутив Linux

    Теперь, когда вы загрузили дистрибутив Linux, чтобы извлечь его содержимое и установить вручную, выполните следующие действия:

    1. Извлеките содержимое пакета .appx с помощью PowerShell:

        Переименовать элемент. \ Ubuntu.appx. \ Ubuntu.zip
      Развернуть-Архив. \ Ubuntu.zip. \ Ubuntu
        
    2. Запустите приложение запуска распространения в целевой папке.Средство запуска обычно называется .exe (например, ubuntu.exe ).

    Осторожно

    Установка завершилась ошибкой 0x8007007e : если вы получили эту ошибку, значит, ваша система не поддерживает WSL. Убедитесь, что вы используете сборку Windows 16215 или новее. Проверьте свою сборку. Также убедитесь, что WSL включен и ваш компьютер был перезагружен после включения этой функции.

    3. Добавьте путь к вашему дистрибутиву в PATH среды Windows ( C: \ Users \ Administrator \ Ubuntu в этом примере), используя PowerShell:

      $ userenv = [System.Среда] :: GetEnvironmentVariable ("Путь", "Пользователь")
    [System.Environment] :: SetEnvironmentVariable ("ПУТЬ", $ userenv + "; C: \ Users \ Administrator \ Ubuntu", "Пользователь")
      

    Теперь вы можете запустить дистрибутив с любого пути, набрав .exe . Например: ubuntu.exe .

    Теперь, когда он установлен, вы должны инициализировать новый экземпляр дистрибутива перед его использованием.

    Что такое подсистема Windows для Linux

    • 2 минуты на чтение

    В этой статье

    Подсистема Windows для Linux позволяет разработчикам запускать среду GNU / Linux — включая большинство инструментов командной строки, служебных программ и приложений — непосредственно в Windows без изменений, без дополнительных затрат на традиционную виртуальную машину или установку с двойной загрузкой.

    Вы можете:

    • Выберите свои любимые дистрибутивы GNU / Linux в Microsoft Store.
    • Запускать стандартные инструменты командной строки, такие как grep , sed , awk или другие двоичные файлы ELF-64.
    • Запускать сценарии оболочки Bash и приложения командной строки GNU / Linux, включая:
      • Инструменты: vim, emacs, tmux
      • Языки: NodeJS, Javascript, Python, Ruby, C / C ++, C # и F #, Rust, Go и т. Д.
      • Сервисы: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
    • Установите дополнительное программное обеспечение, используя свой собственный менеджер пакетов дистрибутива GNU / Linux.
    • Вызов приложений Windows с помощью оболочки командной строки, подобной Unix.
    • Вызов приложений GNU / Linux в Windows.

    Что такое WSL 2?

    WSL 2 — это новая версия подсистемы Windows для архитектуры Linux, которая позволяет подсистеме Windows для Linux запускать двоичные файлы ELF64 Linux в Windows. Его основными задачами являются повышение производительности файловой системы , а также добавление полной совместимости системных вызовов .

    Эта новая архитектура меняет способ взаимодействия этих двоичных файлов Linux с Windows и оборудованием вашего компьютера, но по-прежнему обеспечивает тот же пользовательский интерфейс, что и в WSL 1 (текущая широко доступная версия).

    Отдельные дистрибутивы Linux могут работать с архитектурой WSL 1 или WSL 2. Каждый дистрибутив можно обновить или понизить в любое время, и вы можете запускать дистрибутивы WSL 1 и WSL 2 одновременно. WSL 2 использует совершенно новую архитектуру, которая выигрывает от запуска реального ядра Linux.

    Следующие шаги

    Как установить подсистему Windows для Linux (WSL) в Windows 10

    В Windows 10 подсистема Windows для Linux (WSL) — это функция, которая создает облегченную среду, которая позволяет устанавливать и запускать поддерживаемые версии Linux (например, Ubuntu, OpenSuse, Debian и т. Д.) Без сложности настройки. виртуальная машина или другой компьютер.

    Хотя вы не получите графический интерфейс, этот подход позволяет разработчикам и сетевым администраторам использовать длинный список командных инструментов и служб (таких как vim, tmux, andemacs, sshd, Apache и MySQL) и запускать сценарии оболочки Bash. написан на Python, Ruby, C #, F # и многих других с использованием командной консоли.

    В этом руководстве по Windows 10 мы расскажем, как установить подсистему Windows для Linux с помощью приложения «Настройки» и PowerShell. Кроме того, мы покажем вам инструкции по загрузке и установке дистрибутивов Linux, а также шаги по правильному удалению всех компонентов, когда вам больше не нужна среда с открытым исходным кодом.

    VPN-предложения: пожизненная лицензия за 16 долларов, ежемесячные планы за 1 доллар и более

    Как установить подсистему Windows для Linux с помощью настроек

    Если вы хотите запускать дистрибутивы Linux в Windows 10, вы должны сначала включить функцию подсистемы Windows для Linux, прежде чем вы сможете загрузить и установить версию Linux, которую вы хотите использовать.

    Включение подсистемы Windows для Linux с помощью настроек

    Чтобы установить WSL с помощью настроек в Windows 10, выполните следующие действия:

    1. Открыть Настройки .
    2. Щелкните Приложения .
    3. В разделе «Связанные настройки» выберите Программы и компоненты .

      Источник: Windows Central

    4. Щелкните Включение или отключение компонентов Windows на левой панели.

      Источник: Windows Central

    5. Отметьте опцию Подсистема Windows для Linux .

      Источник: Windows Central

    6. Нажмите кнопку ОК .
    7. Нажмите кнопку Перезагрузить сейчас .

    После выполнения этих шагов среда будет настроена для загрузки и запуска дистрибутивов Linux в Windows 10.

    Установка дистрибутивов Linux с помощью Microsoft Store

    Чтобы установить дистрибутив Linux в Windows 10, выполните следующие действия:

    1. Открыть Магазин Microsoft .
    2. Найдите дистрибутив Linux, который вы хотите установить.

      Некоторые из доступных дистрибутивов включают:

    3. Выберите дистрибутив Linux для установки на ваше устройство.

      Источник: Windows Central

    4. Нажмите кнопку Get (или Install ).

      Источник: Windows Central

    5. Нажмите кнопку Запустить .
    6. Создайте имя пользователя для дистрибутива Linux и нажмите Введите .
    7. Укажите пароль для дистрибутива и нажмите Введите .

      Источник: Windows Central

    8. Повторите пароль и нажмите Введите для подтверждения.

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

    Удаление дистрибутивов Linux с помощью настроек

    Если вам больше не нужно запускать Linux на вашем устройстве, рекомендуется удалить дистрибутивы, а затем отключить WSL.

    Чтобы удалить дистрибутив Linux, выполните следующие действия:

    1. Открыть Настройки .
    2. Щелкните Приложения .
    3. Щелкните Приложения и функции .
    4. В разделе «Приложения и функции» выберите дистрибутив, например Ubuntu .
    5. Нажмите кнопку Удалить .

      Источник: Windows Central

    6. Нажмите кнопку Удалить еще раз для подтверждения.

    После выполнения этих шагов установка Linux будет удалена, и вы сможете перейти к шагам по отключению WSL.

    Отключение подсистемы Windows для Linux с помощью настроек

    Чтобы отключить WSL в Windows 10, выполните следующие действия:

    1. Открыть Настройки .
    2. Щелкните Приложения .
    3. В разделе «Связанные настройки» выберите Программы и компоненты .

      Источник: Windows Central

    4. Щелкните Включение или отключение компонентов Windows на левой панели.

      Источник: Windows Central

    5. Очистите опцию Подсистема Windows для Linux .

      Источник: Windows Central

    6. Нажмите кнопку ОК .
    7. Нажмите кнопку Перезагрузить сейчас .

    После выполнения этих шагов подсистема Windows для Linux будет удалена с вашего устройства.

    Как установить подсистему Windows для Linux с помощью PowerShell

    В качестве альтернативы, если у вас нет доступа к графическому интерфейсу Windows или вам удобно использовать командные строки, вы также можете использовать PowerShell, чтобы включить подсистему Windows для Linux, загрузить и установить дистрибутивы Linux и отменить все изменения. .

    Включение подсистемы Windows для Linux с помощью PowerShell

    Чтобы установить подсистему Windows для Linux с помощью PowerShell, выполните следующие действия:

    1. Открыть Старт .
    2. Найдите PowerShell , щелкните правой кнопкой мыши верхний результат и выберите вариант Запуск от имени администратора .
    3. Введите следующую команду, чтобы включить подсистему Linux, и нажмите Введите :

      Включить-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

      Источник: Windows Central

    4. Введите Y и нажмите Введите , чтобы подтвердить и перезагрузить компьютер.

    Выполнив эти шаги, вы можете перейти к инструкциям по загрузке и установке любого совместимого дистрибутива Linux, доступного в Microsoft Store.

    Установка дистрибутивов Linux с помощью PowerShell

    Чтобы загрузить и установить дистрибутив Linux (например, Ubuntu) с PowerShell, выполните следующие действия:

    1. Открыть Старт .
    2. Найдите PowerShell , щелкните правой кнопкой мыши верхний результат и выберите вариант Запуск от имени администратора .
    3. Введите следующую команду, чтобы выбрать папку загрузки, и нажмите Enter:

      cd c: \ PATH \ TO \ DESTINATION-FOLDER

      В этом примере выполняется переход к папке данных в корне главного диска:

      cd c: \ data

    4. Введите следующую команду для загрузки Ubuntu и нажмите Введите :

      Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_1604.2019.523.0_x64.appx -OutFile Ubuntu.appx -UseBasicParsing

      Источник: Windows Central

      Приведенная выше команда загружает версию Ubuntu 16.04, но вам может потребоваться обновить команду, указав имя и версию дистрибутива, который вы пытаетесь загрузить.

      Краткое примечание: Хотя ссылка на этом шаге и ссылка на снимке экрана выглядят по-разному, на самом деле они одинаковы. Тот, что на скриншоте, — это краткая версия.

    5. Введите следующую команду, чтобы просмотреть фактическое имя установщика, и нажмите Введите :

      директор

    6. Введите следующую команду, чтобы установить Ubuntu версии 16.04 и нажмите Введите :

      Добавить-AppxPackage. \ APP-NAME.appx

      В этом примере устанавливается дистрибутив Ubuntu в Windows 10:

      Добавить-AppxPackage. \ Ubuntu.appx

      Источник: Windows Central

    7. Открыть Старт .
    8. Найдите недавно выпущенный дистрибутив Linux (например, Ubuntu ), щелкните верхний результат, чтобы запустить опыт.
    9. Создайте имя пользователя для дистрибутива Linux и нажмите Введите .
    10. Укажите пароль для дистрибутива и нажмите Введите .

      Источник: Windows Central

    11. Повторите пароль и нажмите Введите для подтверждения.

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

    Удаление дистрибутива Linux с помощью PowerShell

    Если вы хотите отменить изменения, вы сначала хотите удалить все дистрибутивы Linux перед отключением WSl.

    1. Открыть Старт .
    2. Найдите PowerShell , щелкните правой кнопкой мыши верхний результат и выберите вариант Запуск от имени администратора .
    3. Введите следующую команду, чтобы узнать имя дистрибутива, и нажмите Введите :

      Get-AppxPackage * PARTIAL-DISTRO-NAME *

      В этом примере выполняется поиск пакета приложения, в имени которого содержится слово «ubuntu»:

      Get-AppxPackage * убунту *

      Источник: Windows Central

      В команде не забудьте заменить «ubuntu» на имя дистрибутива, который вы пытаетесь найти.

    4. Введите следующую команду, чтобы удалить версию Linux, установленную на вашем компьютере, и нажмите Введите :

      Get-AppxPackag ПОЛНОЕ НАЗВАНИЕ | Remove-AppxPackage

      В этом примере удаляется пакет Ubuntu из Windows 10:

      Get-AppxPackage CanonicalGroupLimited.Ubuntu16.04onWindows | Remove-AppxPackage

      Источник: Windows Central

      В команде не забудьте изменить «CanonicalGroupLimited.Ubuntu16.04onWindows «для имени дистрибутива, который вы пытаетесь удалить.

    Выполнив эти шаги, вы можете перейти к отключению подсистемы Windows для Linux на вашем компьютере.

    Отключение подсистемы Windows для Linux с помощью PowerShell

    Чтобы отключить WSL с помощью PowerShell, выполните следующие действия:

    1. Открыть Старт .
    2. Найдите PowerShell , щелкните правой кнопкой мыши верхний результат и выберите вариант Запуск от имени администратора .
    3. Введите следующую команду, чтобы включить подсистему Linux, и нажмите Введите :

      Отключить-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

      Источник: Windows Central

    4. Введите Y и нажмите Введите , чтобы подтвердить и перезагрузить компьютер.

    После выполнения этих шагов среда Linux будет отключена на вашем компьютере.

    Дополнительные ресурсы по Windows 10

    Дополнительные полезные статьи, статьи и ответы на распространенные вопросы о Windows 10 см. На следующих ресурсах:

    Мы можем получать комиссию за покупки, используя наши ссылки.Учить больше.

    Полное руководство по подсистеме Windows для Linux (Windows WSL)

    Подсистема Windows для Linux или Windows WSL — отличное решение для разработчиков, которые могут работать в Linux прямо на рабочем столе с версией Windows 10.

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

    Сказочная мать кода в Microsoft решила дать вам еще один вариант: подсистему Windows для Linux (WSL).WSL делает работу системы Linux вместе с Windows намного проще и гибче.

    Из этого руководства вы узнаете, как начать работу с WSL. Вы узнаете, как начать работу с некоторыми изящными инструментами, которые делают WSL еще более универсальным, чем использование bash или PowerShell самостоятельно.

    Что такое

    WSL?

    WSL или C: \ Windows \ System32 \ wsl.exe — это инструмент Windows, который позволяет установить дистрибутив Linux как приложение из магазина Windows.

    Поскольку WSL — это простой исполняемый файл Windows, его можно вызвать из командной строки или терминала PowerShell. Позже мы рассмотрим эту тему подробнее. На данный момент важно немного больше узнать о том, что делает WSL под капотом.

    wsl.exe

    Как включить

    WSL

    Для настройки и включения WSL необходимо установить дистрибутив Linux вместе с Windows 10. Но таким образом, чтобы две разные операционные системы могли взаимодействовать друг с другом.

    Предварительные требования

    Для установки WSL в Windows необходимо выполнить одно требование; у вас должен быть 64-разрядный компьютер с Windows 10 сборки 18917 или новее.

    Вы можете найти свою сборку Windows 10, запустив утилиту winver.

    Сборка Windows 1809

    Включение WSL компонента Windows

    WSL легко включить; загрузка не требуется. Это просто отдельная функция Windows.

    Чтобы включить WSL, откройте PowerShell от имени администратора и запустите следующее:

       Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux   

    Связано: Как запустить PowerShell от имени администратора

    После завершения перезагрузите компьютер, и все готово!

    Загрузка дистрибутива Linux для WSL

    WSL не устанавливает самостоятельно какой-либо дистрибутив Linux.Вам нужно будет его установить. После восстановления Windows 10 начните настройку выбранного вами дистрибутива Linux.

    Сначала откройте Microsoft Store и выполните поиск по запросу «WSL». Вскоре вы должны увидеть список дистрибутивов Linux.

    Затем выберите нужный дистрибутив и установите его. В этом руководстве будет использоваться Ubuntu 18.04. На момент написания у вас есть еще несколько доступных дистрибутивов, например:

    • Ubuntu 16.04 LTS
    • Ubuntu 18.04 LTS
    • OpenSUSE Leap 15
    • OpenSUSE Leap 42
    • SUSE Linux Enterprise Server 12
    • SUSE Linux Enterprise Server 15
    • Kali Linux
    • Debian GNU / Linux
    • Fedora WSL
    • Peng

    Установка версии WSL

    Возможно, вам придется включить Linux для работы с WSL версии 2. Если это так, вы можете сделать это, следуя приведенным ниже инструкциям.

    В консоли PowerShell:

    1. Укажите, какие версии Linux вы установили, запустив wsl -l или wsl --list .
    2. Когда у вас есть список, скопируйте имя дистрибутива, который вы хотите запустить с WSL2, и запустите wsl --set-version 2 , заменив именем, которое вы скопировали ранее.
    3. Убедитесь, что команда выполнена успешно, запустив wsl -l -v или wsl --list --verbose . Эта команда вернет полный список дистрибутивов WSL и версию, которую использует каждый дистрибутив.

    Настройка дистрибутива WSL Linux

    Вы также можете установить версию WSL по умолчанию для любых дистрибутивов, которые вы устанавливаете в будущем, на WSL2, запустив wsl --set-default-version 2

    Запуск WSL

    Чтобы начать использовать WSL, откройте терминал PowerShell и введите wsl .Если вы правильно настроили WSL, вы войдете в терминал bash, работающий в выбранном дистрибутиве WSL. Отсюда вы можете запускать любые команды Linux, какие захотите.

    Ниже вы найдете ссылку на все параметры, которые wsl.exe предоставляет при запуске.

    указанный дистрибутив WSL

    Команда Объяснение Пример
    exec, -e Запустит команду без использования оболочки по умолчанию wsl -e curl google.com
    Передает все, что находится после этого параметра, в оболочку по умолчанию. Также подойдет и отсутствие оператора. wsl — curl google.com, wsl curl google.com
    distribution, -d Открывает терминал в оболочке указанного дистрибутива wsl -d Ubuntu-18.04
    пользователь, -u Запускает команду WSL от имени указанного пользователя, пока пользователь существует в этом дистрибутиве wsl -d Ubuntu-18.04 -u tux_user
    export Экспортирует указанный дистрибутив в файл tar в вашей локальной системе. wsl –export Ubuntu ./Test-Ubuntu.tar
    import [–version] Импортирует tar-файл как новый дистрибутив WSL. Можно указать версию WSL с параметром –version wsl –import Test-Ubuntu C: \ data \ Test-Ubuntu. \ Test-Ubuntu.tar
    list, -l [Параметры] wsl –list
    все Список всех установленных дистрибутивов WSL wsl -l –all
    запущен Список только распределений WSL, которые в настоящее время работают wsl -l –running
    тихо, -49q 915 Показывать только имена дистрибутивов WSL wsl -l -q
    verbose, -v Показать подробную информацию обо всех дистрибутивах WSL wsl -l -v
    set-default, -s Устанавливает указал распределение WSL в качестве распределения по умолчанию для команд WSL. wsl -s Test-Ubuntu
    set-default-version Изменяет версию WSL по умолчанию для всех новых дистрибутивов, установленных в этой системе wsl –set-default-version 2
    set-version Изменяет версию WSL указанного дистрибутива wsl –set-version Test-Ubuntu 2
    shutdown Немедленно завершает работу всех запущенных WSL-дистрибутивов wsl –shutdown
    15 завершает wsl -t Test-Ubuntu
    unregister Отменяет регистрацию указанного дистрибутива WSL wsl –unregister Test-Ubuntu
    help Показать информацию об использовании WSL 915sl50 915hel

    Когда вы освоите эти переключатели, вы обнаружите, что запуск и управление приложениями через Хотя WSL намного проще, чем управлять виртуальными машинами Linux самостоятельно.

    Подсказка: узнайте все флаги и аргументы для WSL, запустив wsl --help .

    Когда вы закончите, введите exit , чтобы вернуться в терминал PowerShell.

    Совместное использование ресурсов Windows / Linux через WSL

    Одна из лучших частей WSL — то, что он может беспрепятственно обмениваться ресурсами Windows и Linux друг с другом. В настоящее время вы можете совместно использовать файловые системы, переменные среды, сетевые ресурсы и инструменты командной строки, такие как cmd и PowerShell.

    Все примеры, которые вы увидите в этом разделе, относятся к дистрибутиву WSL Ubuntu Linux. Ваш пробег может отличаться, если вы решили загрузить другой дистрибутив.

    Совместное использование файловых систем

    Файловая система — одна из самых полезных вещей, которыми можно поделиться с WSL. WSL позволяет работать с обеими файловыми системами, как если бы они были одной.

    Файловая система Windows 10 смонтирована как каталог в Linux, а ваша файловая система Linux будет смонтирована как папка в Windows.

    Поиск файловой системы Linux из Windows с помощью переменных среды

    Когда вы устанавливаете дистрибутив Linux с WSL, он иногда добавляет переменную среды Windows. В случае дистрибутива WSL Ubuntu Linux он создаст переменную среды с именем UBUNTU_HOME. Эта переменная среды указывает на каталог Linux / home / ubuntu как из Windows, так и из WSL Ubuntu.

    Путь, определенный в UBUNTU_HOME , можно использовать для запуска сценариев, использующих ресурсы между ними, или для установки местоположения по умолчанию для терминала Windows (рассмотрено позже).

    Проверка переменной среды WSL UBUNTU_HOME

    Другие дистрибутивы могут определять аналогичную переменную среды. Проверьте переменные среды Windows с помощью команды PowerShell Get-ChildItem -Path $ Env: \ после установки нового дистрибутива Linux, чтобы узнать, не были ли добавлены какие-либо из них.

    Этот ярлык переменной среды удобен, если вы хотите поместить все в каталог / home / ubuntu . Но давайте разберемся немного глубже, как это произошло и как еще вы можете этого достичь.

    Поиск файловой системы Linux из Windows через папку пакетов Microsoft Store

    Не в каждом дистрибутиве WSL есть простой способ ссылки на него. Важно, чтобы вы научились находить файловую систему Linux альтернативным способом.

    Поскольку большинство дистрибутивов WSL Linux будут установлены из магазина Microsoft, вы можете искать файловую систему Linux в том же месте, что и другие приложения магазина Windows. Перейдите к % USERPROFILE% \ AppData \ Local \ Packages \ , чтобы найти каталог, в котором находятся ваши приложения из магазина Windows.Затем возьмите на себя управление папкой, поскольку она обычно защищена по умолчанию.

    В папке пакетов вы увидите множество подпапок, в которых может быть представлена ​​файловая система вашего дистрибутива Linux. Например, дистрибутив WSL Ubuntu находился для меня в папке CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc .

    Если вы перейдете в папку пакета, вы найдете файловую систему Linux. Для WSL Ubuntu он находится в папке LocalState \ rootfs . Это корневой каталог вашего дистрибутива Linux.

    Файловая система Linux в% USERPROFILE% / AppData / Local / Packages /

    Поиск файловой системы Windows в Linux

    Чтобы найти файловую систему Windows 10 из Linux, откройте WSL в Windows. Затем WSL вызовет терминал bash. Этот терминал bash по умолчанию запускается в вашем каталоге UBUNTU_HOME .

    Вы также можете найти корень ваших томов хранения Windows. Каждый из ваших дисков с буквами Windows (C, D, E и т. Д.) Рассматривается как подключенный диск из файловой системы WSL Linux.Вы увидите, что каждый том смонтирован как / mnt / c , / mnt / d и т. Д., Если у вас есть права root.

    Эквивалент Bash запуска Get-ChildItem C: \ Windows \ System32 | Select-Object -First 5 , работающий на WSL

    Файловая система WSL2

    Навигация по файловой системе WSL довольно проста. Любой, кто не знаком со структурой файловой системы Linux, оценит возможность перемещаться по ней с помощью проводника Windows. Но если вы хотите перейти на WSL2, это будет немного сложнее.

    WSL2 меняет то, как все работает под капотом для совместного использования файловых систем. Для начала, файловая система теперь представляет собой виртуальный жесткий диск в формате vhdx вместо каталога.

    Вы можете найти файл vhdx в папке % USERPROFILE% \ AppData \ Local \ Packages \ CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc \ LocalState для дистрибутива WSL Ubuntu.

    Вы обнаружите, что файлы VHDX можно смонтировать в Windows с помощью инструмента Disk Manager .Но виртуальные диски нельзя смонтировать, пока дистрибутив WSL зарегистрирован.

    Общие переменные среды

    Переменные среды являются важной частью любой операционной системы, позволяя легко ссылаться на двоичные и исполняемые файлы в любом месте ваших приложений.

    До сборки Windows 10 17063 единственной переменной среды, совместно используемой между Windows 10 и WSL Linux, была переменная PATH . С тех пор можно совместно использовать переменные среды, используя WSLENV переменную среды.

    Использование переменной среды WSLENV для совместного использования других переменных среды может показаться немного мета. Чтобы совместно использовать переменные среды на разных платформах, вам действительно нужно установить переменные среды внутри другой переменной среды.

    Обзор

    Совместное использование переменных среды — это трехэтапный процесс, описанный ниже. Единственное существенное различие при совместном использовании в Windows / Linux — это используемый аргумент переключателя (полная ссылка ниже).

    1. Определите переменную среды в Windows или Linux.
    2. Установите переменную среды WSLENV равной ранее определенной переменной среды, за которой следует аргумент переключателя (для преобразования пути).
    3. Прочтите переменную среды в Windows или Linux.
    Параметры доступа

    Вы можете сделать переменные доступными четырьмя различными способами, в зависимости от того, на какой платформе вы хотите, чтобы переменная среды отображалась с помощью переключателей (таблица, показанная ниже).

    • Файловая система Windows будет доступна только сама по себе
    • Файловая система WSL будет доступна только из WSL
    • Файловая система WSL будет доступна как в WSL Linux, так и в Windows
    • Файловая система Windows будет доступна как в WSL Linux, так и в Windows
    Флаг Пояснение
    / p Однопутный.Набор переменных будет переведен между Windows и WSL Linux и станет доступным для обоих.
    / л Список путей. Подобно / p , за исключением того, что он может принимать более одного пути. В Windows этот список будет разделен точкой с запятой, а в WSL Linux — двоеточием.
    / u Путь к Unix. Путь, установленный с помощью этого флага, доступен только при вызове WSL Linux из Windows. Может использоваться с флагами / p или / l
    / w Путь Windows.Путь, установленный с помощью этого флага, доступен только при вызове Windows из WSL Linux. Может использоваться с флагами / p или / l
    Преобразование пути

    Основная причина совместного использования переменных среды — преобразование пути. Как вы, возможно, уже знаете, в Windows есть папки с профилями пользователей, так как в Linux есть, например, каталоги профилей пользователей. У каждого пользователя есть предопределенная «домашняя папка», например C: \ Users \ в Windows и / home / в Linux.

    Используя переключатели / p и / l , WSL преобразует эти пути к папкам между платформами.

    Совместное использование и перевод путей Windows в Linux

    Вы можете использовать один или несколько путей одновременно, используя коммутаторы / p и / l .

    В командной строке Windows и с определенной переменной среды Windows с именем DESKTOP присвойте значение DESKTOP / p переменной WSLENV .Это позволяет вам получить к нему доступ из WSL Linux. Вы можете увидеть пример ниже.

    Установка переменных в Windows и доступ в Linux

    Точно такая же процедура может быть выполнена для нескольких путей одновременно с помощью переключателя / l .

    Совместное использование и перевод путей Linux в Windows

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

    Чтобы подробнее узнать о совместном использовании переменных среды, ознакомьтесь с этой статьей Microsoft.

    Совместное использование сетевых ресурсов

    Сетевой компонент — еще один удобный ресурс, которым Windows и WSL Linux могут совместно пользоваться.

    Сравнение физических и виртуальных сетевых интерфейсов

    В WSL2 сетевые интерфейсы виртуализированы. Виртуализированные сетевые интерфейсы означают, что сетевые экземпляры WSL2 могут содержать конфигурации IP, отличные от их аналогов в Windows 10.

    На момент написания этой статьи IP-адреса для WSL2 Linux используют преобразование сетевых адресов (NAT) для доступа к сетевым ресурсам в Windows, хотя Microsoft упомянула, что удаление NAT является большим количеством проблем, которые необходимо исправить.

    То же сравнение из более раннего, но с дистрибутивом WSL2

    Разрешение DNS клиента

    WSL по-прежнему будет генерировать файлы /etc/resolv.conf и / etc / hosts для разрешения DNS. Пока вы явно не переопределите это поведение в /etc/wsl.conf , разрешение клиентского DNS будет продолжать работать должным образом.

    Подробнее о файле wsl.conf вы узнаете позже в этой публикации.

    Совместное использование PowerShell и Bash

    Одна из самых крутых функций WSL — это возможность беспрепятственно передавать информацию в PowerShell и Bash и обратно на WSL.

    PowerShell -> Bash

    Поскольку исполняемый файл WSL принимает входные данные из конвейера, вы можете вызвать команду wsl.exe внутри PowerShell и принять стандартный ввод. Это позволяет использовать WSL для передачи целых объектов из PowerShell в WSL, которые затем обрабатываются терминалом bash. Вы можете увидеть пример ниже.

    Передача PowerShell в grep

    Bash -> PowerShell / Cmd

    Вы также можете легко передавать информацию из bash в WSL в PowerShell и cmd.Ниже вы можете увидеть пример выполнения команды Linux ls и передачи выходных данных командлету PowerShell Select-Object через конвейер.

    Передача вывода Bash в PowerShell

    Вы также можете вызвать некоторые утилиты Windows cmd из WSL и передать вывод обратно в Linux, если обе команды находятся в системном пути.

    Помните, что WSL знает, какой системный путь находится с обеих сторон, потому что он имеет доступ к переменной Windows PATH по умолчанию

    Ниже вы можете увидеть, что вы можете запустить ipconfig , которая является командой Windows, из WSL и передать этот вывод команде Linux grep .Вы также можете увидеть противоположность вызова команды Linux which и передачи выходных данных команде Windows ipconfig .

    Выполнение команды Windows в Linux

    Выпуски переводов

    Есть некоторые предостережения при передаче вывода команд между bash и PowerShell.

    Одна большая проблема заключается в том, как PowerShell и bash возвращают информацию. PowerShell — это объектно-ориентированный язык программирования, а bash — инструмент для обработки строк. Любые объекты PowerShell, переданные в bash, будут сведены в строку.И наоборот, любой вывод bash, переданный в PowerShell, будет преобразован в строковый объект.

    Вы можете несколько обойти это поведение, преобразовав или явно приведя типы объектов в PowerShell, как в примере ниже. Но если вы ожидаете передавать объекты между PowerShell и WSL без дополнительной работы, вы будете разочарованы.

    Проблемы с прохождением предметов

    Приведя дату bash к классу [datetime] в PowerShell, теперь у нас есть действующий объект PowerShell, который мы можем использовать в нашем скрипте.Если вы пишете сценарии, которые необходимо перейти с Windows на WSL и обратно, можно сделать небольшое изменение кода.

    Установка подсистемы Windows для графического интерфейса пользователя Linux с Xfce4

    Когда инструментов командной строки недостаточно, пора разобраться с графическим интерфейсом пользователя. Если вам нужно запустить графическую утилиту на WSL, изучить собственный дистрибутив или вы еще не знакомы с bash, вы можете установить графический интерфейс Linux.

    Xfce

    Linux имеет множество доступных окружений рабочего стола.Один из наиболее распространенных вариантов настройки для WSL называется Xfce. На момент написания этой статьи Xfce имеет версию 4. Доступны и другие среды рабочего стола, но в этой статье вы узнаете, как настроить Xfce4.

    xRDP

    Если у вас настроена среда рабочего стола Linux, вам понадобится служба, которая понимает протокол RDP. В этой статье мы сосредоточимся на сервере xRDP. xRDP — это сервер RDP с открытым исходным кодом для Linux, который позволяет использовать клиентов RDP для подключения к Linux так же, как если бы вы могли использовать хосты Windows.

    Настройка

    Чтобы получить доступ к графическому интерфейсу Linux из Windows с помощью Xfce4 и xRDP, следуйте приведенным ниже инструкциям. В терминале WSL:

    1. Загрузите и установите Xfce4 — Загрузите и установите Xfce4 с помощью команды sudo apt-get -y install xfce4 && sudo apt-get -y install xubuntu-desktop . Это займет некоторое время. Ожидать.
    2. Установите сервер xRDP — Загрузите и установите xRDP, запустив команду sudo apt-get -y install xrdp .
    3. Настроить xRDP для xfce4 — echo xfce4-session> ~ / .xsession
    4. Перезапустить xRDP sudo service xrdp restart
    5. Найти IP-адрес дистрибутива WSL ifconfig | grep inet

    На этом этапе у вас должна быть возможность открыть сеанс RDP из Windows 10. Откройте окно подключения к удаленному рабочему столу с помощью mstsc и укажите IP-адрес Linux, найденный на шаге №5.

    Если все пойдет хорошо, вы можете открыть RDP-соединение с дистрибутивом Linux, который работает в вашей операционной системе Windows, как показано ниже.

    Подсистема Windows для графического интерфейса Linux с Xfce4 и xRDP

    Советы и хитрости

    Теперь, когда вы знаете основы WSL и как его использовать, что дальше? К счастью, существует множество инструментов, которые либо созданы для WSL, либо хорошо работают с ним.

    Настройка элементов конфигурации WSL при загрузке с помощью

    wsl.conf

    Файл конфигурации существует в WSL по адресу /etc/wsl.conf. Этот файл содержит параметры конфигурации, которые запускаются каждый раз при запуске дистрибутива WSL.Если существует файл wsl.conf , WSL будет принимать любые настройки в этом файле при каждом запуске дистрибутива Linux.

    В файле wsl.conf есть несколько различных разделов, которые вы можете настроить.

    • Automount — Подключение дисков из Windows при запуске
    • Сеть — Создание resolv.conf или hosts файл
    • Interop — Включение или отключение взаимодействия с Windows

    Для получения дополнительных сведений о wsl.conf file , проверьте страницу Microsoft Set WSL Launch Settings .

    Разработка на WSL с помощью кода Visual Studio (VS Code)

    Кажется, что

    VS Code интегрируется со всем, и WSL не исключение. Из VS Code вы можете настроить рабочее пространство в своем WSL Distro, но полностью управлять им с помощью VS Code в Windows. Вам даже не нужно запускать терминал!

    Чтобы настроить VS Code в Windows для работы с WSL, вам, очевидно, сначала потребуется установить VS Code для Windows.Также убедитесь, что у вас установлено расширение Remote — WSL VS Code.

    После установки расширения вы можете подключиться к нему, открыв терминал WSL и запустив код . — это каталог, из которого вы хотите запустить VS Code. Затем VS Code обнаружит, что вы находитесь в дистрибутиве WSL, откроет окно и установит соединение с рабочей областью.

    Убедитесь, что это сработало, заметив значок соединения WSL в нижнем левом углу VS Code.Вы должны увидеть, что это имя вашего дистрибутива WSL.

    Работа с кодом WSL и Visual Studio

    Вы даже можете использовать встроенный терминал для непосредственного взаимодействия с рабочим пространством WSL. Нет необходимости запускать отдельное окно для команд git bash.

    Добавление подсистемы Windows для Linux в терминал Windows

    Еще один полезный вариант использования WSL — добавить консоль WSL в терминал Windows.

    Из Терминала Windows вы добавляете каждый дистрибутив WSL на отдельной вкладке.Вы также можете настроить внешний вид каждой вкладки, чтобы не потеряться.

    Если вы используете дистрибутив WSL, который устанавливает переменную среды для пользовательского каталога, например UBUNTU_HOME , вы также можете установить это как начальный каталог для вашего терминала.

    Проверка даты в PowerShell и Bash

    Если вы хотите получить полное видео-пошаговое руководство по настройке WSL для работы с Windows Terminal, посмотрите видео с практическими рекомендациями TechSnips ниже.

    Заключительные мысли

    Microsoft выпустила WSL, чтобы дать разработчикам Linux возможность разрабатывать в Windows.Пока что WSL был шагом в правильном направлении.

    Похоже, что WSL станет важным компонентом новой дружественной стратегии Microsoft с открытым исходным кодом. Если Microsoft собирается сделать Apple устройством, на котором разработчики пишут свой код, это будет тяжелая битва. Но WSL — сильная карта для игры.

    WSL приносит разработчикам множество полезных преимуществ, например:

    • Значительно легче, чем при запуске локальных виртуальных машин Linux
    • Устранение накладных расходов на установку и управление гипервизором
    • Больше не требуется многораздельных жестких дисков
    • Нет более сложных загрузчиков grub

    WSL просто включается и запускается, поэтому мы могут все программировать долго и счастливо.

    .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *