Как установить и использовать оболочку 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” в списке шрифта.
Ubuntu интегрировали в Windows 10
Сегодня на конференции Build компания Microsoft расскажет о последних нововведениях, которые сделаны в новом билде
Windows 10 Redstone. Незадолго до презентации стало известно, что на конференцию приглашены сотрудники Canonical, и этому есть веская причина.
Дело в том, что Microsoft совместно с Canonical сумели интегрировать операционную систему Ubuntu внутрь Windows 10 (что-то вроде эмулятора). Дастин Кирклэнд, сотрудник группы Ubuntu Product and Strategy, рассказал на конференции об этом. Видео.
«Это немного странно для меня, — пишет Дастин, — потому что я не использовал Windows уже около 16 лет. Но всё изменилось пару месяцев назад, когда погрузился в сверхсекретный (и абсолютно невероятный) проект между Microsoft и Canonical,
который анонсировал сегодня во вступительной речи Кевин Галло».
Итак, в новом билде Windows 10 пространство пользователя Ubuntu и оболочка bash работают нативно в консоли cmd.exe!
Работает это следующим образом.
Пользователь Windows 10
Открывает меню «Пуск»
Набирает там «bash» [enter]После чего открывается консоль cmd.exe
С запущенным /bin/bash от Ubuntu
С полным доступом ко всему пространству пользователя Ubuntu
Да, там есть apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch.
И большинство из десятков тысяч бинарных пакетов в архивах Ubuntu!
Дастин Кирклэнд говорит, что это не виртуальная машина, никаких контейнеров и не Cygwin, а нечто похожее на эмулятор, где системные вызовы Linux в реальном времени транслируются в системные вызовы Windows. Сейчас в Windows 10
используется Ubuntu 14.04 LTS.
Microsoft называет это «Windows Subsystem for Linux» (исходный код пока закрыт).
Трансляция вызовов очень эффективная: утилита sysbench показывает почти одинаковую производительность CPU, памяти и операций ввода/вывода.
Все логические диски, вроде C:, монтируются для чтения и записи в директории /mnt, то есть /mnt/c, /mnt/d и т.д. И наоборот, файловая система Ubuntu доступна через «Проводник» в C:\Users\Kirkland\AppData\Local\Lxss\rootfs\.
Из «подсистемы Linux» нормально запускается ssh.
Конечно, пока есть некоторые глюки, особенно с tty и vt100. Не очень хорошо работают byobu screen и tmux. Но всё равно Microsoft и Canonical проделали огромную работу, что такое вообще стало возможным.
В Windows 10 появилась поддержка любых приложений Linux
Анонсы конференции Microsoft Build 2020
В рамках конференции Microsoft Build 2020, которая в этом году впервые полностью проходит в онлайн-формате, компания анонсировала новые инструменты и возможности, которые, в первую очередь, нацелены на разработчиков.
В частности, на мероприятии были представлены Project Reunion, направленный на унификацию разработки приложений для Windows 10, новые терминал и пакетный менеджер для этой ОС, а также существенные улучшения подсистемы Windows для Linux (WSL, Windows Subsystem for Linux).
WSL2 и графические приложения Linux
Усовершенствованная версия подсистема Windows для Linux (WSL2) получит возможность прямого запуска приложений Linux с графическим интерфейсом, а также поддержку аппаратного ускорения с помощью GPU. Таким образом, программы, предназначенные для Linux, смогут работать бок о бок с «родным» ПО Windows 10.
Кроме того, вскоре WSL будет поддерживать упрощенный процесс установки с помощью команды “wsl.exe — -install”, что позволит быстрее начать работу с Linux-приложениями в Windows.
О разработке второй версии WSL Microsoft впервые сообщила в мае 2019 г. Новое поколение эмулятора для запуска бинарных файлов станет важной частью предстоящего релиза Windows 10 2004, который должен состояться в конце мая 2020 г. Однако некоторые из улучшений, в том числе и поддержка приложений Linux с графическим интерфейсом, не будут доступ доступны на старте, их развертывание будет происходить поэтапно.
Первое поколение Windows Subsystem for Linux было анонсировано в апреле 2016 г. и вошло в состав финальной сборки Windows 10 в августе 2016 г. Это своего рода эмулятор для запуска бинарных файлов Linux непосредственно в среде Windows (WSL есть в Windows 10 и Windows Server 2019), релиз которого способствовал появлению в дальнейшем дистрибутивов Ubuntu, Fedora и Suse в фирменном магазине приложений Microsoft Store. После установки, к примеру, Ubuntu пользователь получает возможность запускать скрипты Bash, пользоваться инструментами командной строки Linux, такими как awk и grep, а также использовать Python, Ruby и Git непосредственно внутри Windows. В марте 2018 г. список доступных дистрибутивов пополнил Kali Linux.
«Родной» эмулятор терминала
Microsoft также сообщила о релизе первой стабильной версии эмулятора терминала Windows Terminal с открытым исходным кодом.
Помимо централизованного доступа к средам Powershell, Cmd и WSL, утилита Windows Terminal обеспечивает поддержку нескольких вкладок, а также выбор темы и кастомизацию для тех, кто хочет точнее настроить программу под свои нужды.
Для работы Windows Terminal используется движок рендеринга текста на базе DirectX с поддержкой графических ускорителей. Благодаря этому увеличились скорость и плавность вывода текста, а также появилась поддержка юникода. Терминал поставляется со специальным шрифтом Cascadia Code.
Приложение доступно в Microsoft Store и на Github – в виде исходных кодов. Microsoft также планирует выпускать ежемесячные экспериментальные обновления программы, которые можно будет установить отдельно от стабильной версии.
Microsoft представила Windows Terminal в рамках Microsoft Build 2019. Релиз первой официальной версии ожидался в конце 2019 г.
В Windows Terminal Microsoft объединила функции Powershell и CMD с доступом к Linux-командам через WSL, а также добавила поддержку вкладок, шрифтов, тем оформления, расширений, эмоджи (смайликов) и рендеринга с помощью графических ускорителей.
Пакетный менеджер в стиле Linux
Microsoft анонсировала новый менеджер пактов для операционной системы Windows 10, который облегчит разработчикам настройку рабочего окружения.
Представленный диспетчер пакетов winget во многом напоминает аналогичное ПО, применяемое в популярных дистрибутивах Linux, к примеру, APT из Debian. Он позволяет находить необходимые приложения в заранее подготовленном репозитории (поддерживать его собирается сама Microsoft), а затем при помощи одной простой команды (“winget install ”) осуществлять их установку.
Благодаря поддержке новым пакетным менеджером интерфейса командой строки разработчики смогут быстро устанавливать необходимое в работе ПО с помощью простых сценариев, без необходимости всякий раз запускать установщик каждого из необходимых приложений и взаимодействовать с многочисленными диалоговыми окнами.
Для работы winget требуется Windows 10 не старше версии 1709. Программу уже сейчас можно загрузить на Github в виде исходных кодов. Первый стабильный релиз запланирован на май 2021 г.
Унификация Win32 и UWP
В рамках проекта «Воссоединение» (Project Reunion), анонсированного Microsoft, компания планирует обеспечить простую интеграцию между программными интерфейсами Win32 и Universal Windows Platform (UWP). предоставляя единую платформу для разработки с поддержкой обратной совместимости.
Другими словами, теперь разработчики смогут создавать такие приложения, которые заработают на любом устройстве с Windows 10, вне зависимости от аппаратной платформы и версии операционной системы. Существующие приложения также будет возможно адаптировать к новой модели.
Первыми компонентами новой платформы стали нативный фреймворк для проектирования интерфейса WinUI 3 и WebView2, позволяющий интегрировать веб-содержимое в любое приложение.
Исходный код обеих библиотек открыт и доступен любому желающему в соответствующих репозиториях Github.