- Установка и использование подсистемы Linux (WSL 2) в Windows 10
- Что такое подсистема Windows для Linux What is the Windows Subsystem for Linux?
- Что такое WSL 2? What is WSL 2?
- Как установить и использовать оболочку Linux Bash в Windows 10
- Что нужно знать про оболочку Bash в Windows 10
- Как установить Bash в Windows 10
- Как использовать оболочку Bash и устанавливать программное обеспечение Linux
- Дополнительно: установка родного шрифта Ubuntu
Установка и использование подсистемы 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
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux
После этого также необходимо перезагрузить компьютер.
Теперь вам нужно выполнить обновление 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, нажмите кнопку Получить.
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, выполните:
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:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘
Теперь можете запустить графические программы Linux через WSL командами:
Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:
чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:
Что такое подсистема Windows для Linux What is the Windows Subsystem for Linux?
Подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux с большинством программ командной строки, служебных программ и приложений непосредственно в Windows без каких-либо изменений и необходимости использовать традиционную виртуальную машину или двойную загрузку. The Windows Subsystem for Linux lets developers run a GNU/Linux environment — including most command-line tools, utilities, and applications — directly on Windows, unmodified, without the overhead of a traditional virtual machine or dualboot setup.
Можно сделать следующее. You can:
- Выберите предпочтительные дистрибутивы GNU/Linux из Microsoft Store. Choose your favorite GNU/Linux distributions from the Microsoft Store.
- Запускайте средства командной строки, например grep , sed , awk , или другие двоичные файлы ELF-64. Run common command-line tools such as grep , sed , awk , or other ELF-64 binaries.
- Запускайте сценарии Bash Shell и приложения командной строки GNU/Linux, включая: Run Bash shell scripts and GNU/Linux command-line applications including:
- инструменты: vim, emacs, tmux; Tools: vim, emacs, tmux
- языки: NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Rust, Go и пр. Languages: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, etc.
- Службы. SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL. Services: SSHD, MySQL, Apache, lighttpd, MongoDB, PostgreSQL.
- Установите дополнительное программное обеспечение с помощью своего собственного диспетчера пакетов дистрибутивов GNU/Linux. Install additional software using your own GNU/Linux distribution package manager.
- Вызывайте приложения Windows с помощью оболочки командной строки, похожей на UNIX. Invoke Windows applications using a Unix-like command-line shell.
- Вызывайте приложения GNU/Linux в Windows. Invoke GNU/Linux applications on Windows.
Что такое WSL 2? What is WSL 2?
WSL 2 — это новая версия архитектуры подсистемы Windows для Linux, которая поддерживает подсистему Windows для Linux, чтобы запускать двоичные файлы Linux ELF64 в Windows. WSL 2 is a new version of the Windows Subsystem for Linux architecture that powers the Windows Subsystem for Linux to run ELF64 Linux binaries on Windows. Ее основными приоритетами является увеличение производительности файловой системы и добавление полной совместимости системных вызовов. Its primary goals are to increase file system performance, as well as adding full system call compatibility.
Эта новая архитектура изменяет способ взаимодействия этих двоичных файлов Linux с Windows и с оборудованием компьютера, но по-прежнему предоставляет то же взаимодействие с пользователем, что и WSL 1 (текущая общедоступная версия). This new architecture changes how these Linux binaries interact with Windows and your computer’s hardware, but still provides the same user experience as in WSL 1 (the current widely available version).
Отдельные дистрибутивы Linux можно запускать с архитектурой WSL 1 или WSL 2. Individual Linux distributions can be run with either the WSL 1 or WSL 2 architecture. Каждый дистрибутив можно обновить или использовать на более старой версии в любое время, кроме того вы можете запустить дистрибутивы WSL 1 и WSL 2 параллельно. Each distribution can be upgraded or downgraded at any time and you can run WSL 1 and WSL 2 distributions side by side. WSL 2 использует совершенно новую архитектуру, которая дает преимущества от работы с реальным ядром Linux. WSL 2 uses an entirely new architecture that benefits from running a real Linux kernel.
Как установить и использовать оболочку Linux Bash в Windows 10
Подсистема Windows для Linux (Windows Subsystem for Linux, WSL), впервые представленная в Windows 10 версии 1607, стала действительно стабильной функцией в Windows 10 (версия 1709). Теперь пользователи получают среду для тестирования Linux-приложений прямо внутри Windows, которая работает быстрее, чем в виртуальной машине.
Что нужно знать про оболочку Bash в Windows 10
Функция WSL на самом деле не является виртуальной машиной, контейнером или программным обеспечением Linux, скомпилированным для Windows. Windows 10 предлагает полноценную подсистему Windows 10, предназначенную для запуска программного обеспечения Linux. Подсистема основана на проекте Microsoft Astoria, который первоначально предназначался для запуска приложений Android в Windows.
WSL можно рассматривать как противоположность Wine. В то время как Wine позволяет вам запускать приложения Windows прямо в Linux, подсистема Windows для Linux позволяет запускать приложения Linux непосредственно в Windows.
При создании среды оболочки на базе Bash Ubuntu, Microsoft работала совместно с компанией Canonical. Оболочка работает поверх подсистемы и технически не является Linux. Linux является основным ядром операционной системы, которое недоступно в подсистеме. Вместо этого функция WSL позволяет запускать оболочку Bash и исполнять такие же бинарные файлы, которые работают в Ubuntu Linux. Многие сторонники открытого программного обеспечения считает, что операционную систем Linux правильно называть именно “GNU/Linux”, потому что на ядре Linux работает много программного обеспечения GNU. Оболочка Bash, которую вы получаете в Windows 10, как раз содержит утилиты GNU и другое программное обеспечение.
Хотя эта функция изначально называлась “Ubuntu Bash в Windows”, она также позволяет запускать Zsh и другие оболочки командной строки. Сейчас поддерживаются и другие дистрибутивы Linux. Вы можете выбрать openSUSE Leap или SUSE Enterprise Server вместо Ubuntu, поддержка Fedora скоро будет реализована.
При использовании оболочки имеются некоторые ограничения. По умолчанию фоновое серверное ПО и графические приложения Linux не поддерживаются. Кроме того, в данной среде работают не все приложения командной строки, потому что функция не идеальна.
Как установить Bash в Windows 10
Данная функция не работает в 32-разрядной версии Windows 10, поэтому убедитесь, что вы используете 64-разрядную версию.
Если вы используете 64-битную версию Windows, то для начала работы перейдите в Панель управления > Программы и компоненты > Включение и отключение компонентов Windows. Отметьте галочкой пункт Подсистема Windows для Linux и нажмите кнопку ОК.
Затем нажмите “Перезагрузить сейчас”, чтобы перезапустить компьютер и применить изменения. Функция не будет работать до перезагрузки.
Примечание: начиная с Windows 10 (версия 1709), чтобы использовать эту функцию вам больше не нужно включать режим разработчика в приложении Параметры. Вам просто нужно включить подсистему в окне “Компоненты Windows”.
После перезагрузки ПК откройте Магазин Microsoft и выполните поисковый запрос “Linux”. Откроется список доступных для установки приложений.
Примечание: начиная с Windows 10 (версия 1709), вы больше не сможете устанавливать Ubuntu, выполнив команду bash. Вместо этого вам нужно установить Ubuntu или другой дистрибутив Linux из Магазина Microsoft.
Итак, вы увидите список всех дистрибутивов Linux, доступных в Магазине Microsoft. Начиная с Windows 10 (версия 1709), в магазине предлагаются Ubuntu, openSUSE Leap, openSUSE Enterprise, Debian Linux, Arch Linux и Kali Linux.
Чтобы установить конкретный дистрибутив, выберите его и нажмите кнопку “Получить” или “Установить”. В результате запуститься обычная установка, как и в случае с другими приложениями из Магазина Microsoft.
Если вы не знаете, какую среду Linux установить, мы рекомендуем Ubuntu. Этот популярный дистрибутив Linux был ранее единственным доступным вариантом, но теперь доступны другие системы Linux для различных нужд пользователей.
Вы также можете установить несколько дистрибутивов Linux, и каждый из них получит свои собственные уникальные ярлыки. Вы даже можете запускать несколько разных дистрибутивов Linux одновременно в разных окнах.
Как использовать оболочку Bash и устанавливать программное обеспечение Linux
После успешной установки вы получаете полноценную командную оболочку Bash на основе Ubuntu или другого выбранного дистрибутива Linux.
Поскольку в системах Linux используются одинаковые бинарные файлы, вы можете использовать команды Ubuntu apt или apt-get, чтобы установить программное обеспечение из репозитория Ubuntu. Просто используйте любую команду, которую вы обычно используете в этом дистрибутиве Linux. У вас будет доступ ко всему программному обеспечению командной строки Linux там, хотя некоторые приложения могут работать не идеально.
Чтобы открыть установленную среду Linux, просто откройте меню Пуск и выполните поиск любого дистрибутива, который вы установили. Например, если вы установили Ubuntu, запустите ярлык Ubuntu.
Вы можете закрепить плитку приложения в меню Пуск, на панели задач или разместить ярлык на рабочий стол для быстрого доступа.
При первом запуске среды Linux вам будет предложено ввести имя пользователя и пароль UNIX. Они не должны совпадать с вашим именем пользователя и паролем Windows, и будут использоваться в среде Linux.
Например, если вы введете “comss” и “qwerty” в качестве своих учетных данных, ваше имя пользователя в среде Linux будет “comss”, а пароль, который вы используете в среде Linux, будет “qwerty”, независимо от имени пользователя и пароля Windows.
Вы можете запустить установленную среду Linux с помощью команды wsl. Если у вас установлено несколько дистрибутивов Linux, вы можете выбрать среду Linux по умолчанию, которую будет запускаться этой командой.
Если у вас установлен Ubuntu, вы также можете запустить команду ubuntu для ее запуска. Для OpenSUSE Leap 42 используйте opensuse-42. Для SUSE Linux Enterprise Server 12 используйте sles-12. Эти команды перечислены на странице каждого дистрибутива Linux в Магазине Microsoft.
Кроме того, вы можете запустить стандартную среду Linux, выполнив команду bash, но Microsoft заявляет, что данный метод устаревает. Это означает, что команда bash может перестать функционировать в будущем.
Если у вас есть опыт использования оболочки Bash в Linux, MacOS или на других платформах, вы будете чувствовать себя уверенно.
В Ubuntu нужно использовать префикс команд sudo чтобы запускать их с правами root. Пользователь “root” на платформах UNIX имеет полный доступ к системе, аналогично “Администратору” в Windows. Файловая система Windows расположена по пути в /mnt/c в среде оболочки Bash.
В WSL можно использовать привычные команды терминала Linux. Если вы привыкли к стандартной командной строке Windows с ее командами DOS, вот несколько основных команд, общих для Bash и Windows:
- Изменить директорию: cd в Bash, cd или chdir в DOS
- Показать содержимое директории: ls в Bash, dir в DOS
- Переместить или переименовать файл: mv в Bash, move и rename в DOS
- Копировать файл: cp а Bash, copy в DOS
- Удалить файл: rm в Bash, del или erase в DOS
- Создать директорию: mkdir in Bash, mkdir в DOS
- Использовать текстовые редактор: vi или nano в Bash, edit в DOS
Важно помнить, что, в отличие от Windows, оболочка Bash и имитирующая ее Linux среда чувствительны к регистру. Другими словами, файл с названием “File.txt” отличается от файла с названием “file.txt”.
Для установки и обновления программного обеспечения среды Ubuntu нужно будет воспользоваться командой apt. Обязательно прикрепите эти команды к sudo, что заставляет их запускаться от пользователя root. Ниже представлены базовые команды apt-get, которые вам нужно знать:
- Загрузить обновленную информацию о доступных пакетах: sudo apt update
- Установить пакет приложения: sudo apt install packagename (замените packagename на название пакета)
- Удалить пакет приложения: sudo apt remove packagename (замените packagename на название пакета)
- Выполнить поиск доступных пакетов: sudo apt search word (замените word на ключевое слово в названии или описании пакета)
- Загрузить и установить новейшие версии установленных пакетов: sudo apt upgrade
После того, как вы загрузили и установили приложение, вы можете ввести его имя в оболочку и нажать Enter для его запуска.
Примечание: Программное обеспечение, которое вы устанавливаете в оболочке Bash, ограничено оболочкой Bash. Вы можете получить доступ к этим программам из командной строки, PowerShell или из другого места в Windows, но только если вы запустите команду bash -c.
Дополнительно: установка родного шрифта Ubuntu
Если вы хотите получить более точный опыт использования Ubuntu в Windows 10, то можете использовать следующую инструкцию, чтобы установить родные шрифты Ubuntu в терминал.
Чтобы установить шрифт, сначала загрузите семейство шрифтов Ubuntu с веб-сайта Ubuntu. Откройте загруженный .zip-файл и найдите файл UbuntuMono-R.ttf. Это шрифт Ubuntu с фиксированный шириной, который используется только в терминале. Это единственный шрифт, который вам нужно установить.
Дважды щелкните файл UbuntuMono-R.ttf, и вы увидите предварительный просмотр шрифта. Нажмите “Установить”, чтобы установить шрифт в систему.
Чтобы моноширинный шрифт Ubuntu стал доступен в консоли, вам нужно добавить параметр в реестр Windows.
Запустите редактор реестра, используя сочетание Windows + R , введя запрос regedit и нажав Enter.
Перейдите по следующему пути:
Щелкните правой кнопкой мыши в правой панели и выберите Создать > Строковый параметр . Назовите новое значение 000. Дважды щелкните на строке “000”, которую вы создали, а затем введите Ubuntu Mono в качестве значения.
Затем запустите окно Ubuntu, щелкните правой кнопкой мыши строку заголовка и выберите команду “Свойства”. Перейдите на вкладку “Шрифт” и выберите “Ubuntu Mono” в списке шрифта.