Статьи

Как использовать подсистему Windows для Linux 2 и Windows Terminal

В этой статье вы узнаете, как использовать подсистему Windows для Linux 2 для настройки и запуска локального интерфейса оболочки Linux в Windows без использования виртуальной машины. Это не похоже на использование терминалов, таких как Git Bash или cmder , для которых в $ PATH добавлено подмножество инструментов UNIX. Это на самом деле похоже на запуск полного ядра Linux в Windows, которое может запускать собственные приложения Linux. Это довольно круто, не правда ли?

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

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

  • Двойная загрузка Windows и Linux (переключитесь на Linux для добавления кода)
  • Запустите виртуальную машину Linux, используя платформу, такую ​​как Vagrant, VirtualBox, VMWare и т. Д.
  • Запустите приложение проекта внутри контейнера Docker

Всем вышеперечисленным решениям требуется несколько минут с момента запуска для запуска полноценного интерфейса Linux. В новой подсистеме Windows для Linux версии 2 (WSL2) доступ к полной оболочке Linux занимает не более секунды. Это означает, что теперь вы можете работать над проектами на базе Linux внутри Windows с высокой скоростью. Давайте посмотрим, как мы можем установить один на локальной машине.

Установка Ubuntu в Windows

Во-первых, вам нужно будет использовать последнюю версию Windows. В моем случае это сборка 1903 года. Как только вы подтвердите это, вам нужно активировать функцию Windows Subsystem for Linux . Просто зайдите в Панель управления -> Программы -> Включить или отключить функцию Windows . Найдите «Подсистема Windows для Linux» и установите флажок. Дайте Windows одну или две минуты, чтобы активировать функцию. Как только это будет сделано, нажмите кнопку перезагрузки машины, которая появится рядом.

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

Далее перейдите в Windows Store и установите Ubuntu. Первый вариант Ubuntu установит последние версии. Другие параметры Ubuntu позволяют установить более старую поддерживаемую версию.

Microsoft Store Linux

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

После завершения установки образа вам будет предложено создать новую учетную запись пользователя root в этой оболочке:

Установка Ubuntu в командной строке

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

Команды использования Ubuntu

Вам будет приятно отметить, что git , python3 , ssh , vim , nano , curl , wget и многие другие популярные инструменты доступны из коробки. В следующем разделе мы будем использовать команду sudo apt-get для установки большего количества фреймворков. Во-первых, давайте рассмотрим несколько способов получения доступа к этому новому интерфейсу терминала оболочки Linux. Вероятно, это хорошая идея для обновления установленных пакетов:

 $ sudo apt-get update && sudo ap-get upgrade 

Доступ к интерфейсу оболочки Linux

Существует несколько интересных способов доступа к интерфейсу оболочки Linux.

  1. Зайдите в Пуск меню Windows > введите «Ubuntu». Вы можете прикрепить его к началу для быстрого доступа

  2. Откройте командную строку или Windows PowerShell и выполните команду bash

  3. В проводнике Windows SHIFT + щелкните правой кнопкой мыши папку, чтобы открыть специальное контекстное меню. Нажмите Открыть оболочку Linux здесь .

  4. В проводнике Windows перейдите в любую wsl папку, затем в адресной строке введите wsl и нажмите клавишу ввода .

  5. В Visual Studio Code измените терминал по умолчанию на wsl .

VS Code WSL Terminal

Если вы столкнетесь с новыми способами, пожалуйста, дайте мне знать. Давайте настроим Node.js в следующем разделе.

Установка Node.js

Лучший способ установить и настроить Node.js — через nvm . Внутри оболочки Linux выполните следующие команды:

 $ sudo apt-get install build-essential $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash $ nvm install --lts 

Приведенные выше команды должны установить самую последнюю версию LTS Node.js. Если вы столкнулись с проблемой при выполнении команды nvm , добавьте следующую строку в файл .bashrc :

 source ~/.nvm/nvm.sh 

Вам нужно будет перезапустить оболочку Linux или просто выполнить команду source ~/.bashrc прежде чем пытаться выполнить команду nvm. После завершения установки Node.js попробуйте установить пакет npm глобально, чтобы убедиться, что он работает.

Вы также можете перейти к существующему проекту Node.js на диске Windows и попробовать запустить его, чтобы убедиться, что он работает. Очень интересная особенность подсистемы Windows для Linux заключается в том, что вы все еще используете localhost при запуске веб-приложений. Node.js прекрасно работает в Windows. Следовательно, это не такая большая выгода для подсистемы Windows для пользователей Linux. Где он действительно сияет, так это в открытых серверных средах, таких как Django, Ruby on Rails и Lamp Stack. Настройка их в Windows иногда может быть сложной задачей. Для некоторых проектов это может быть невозможно из-за отсутствия поддержки Windows для некоторых библиотек с открытым исходным кодом. С WSL2 это больше не проблема. В следующем разделе мы установим стек LAMP в Windows, который, как мне кажется, легче установить и настроить, чем стек WAMP.

Установка LAMP на Windows

Внутри оболочки Linux введите следующую команду для установки Apache2 , MySQL и PHP . Это значительная загрузка, поэтому дайте ей немного времени для завершения:

 $ sudo apt-get install lamp-server^ 

Далее, давайте запустим и настроим нашу базу данных MySQL:

 # Start the MySQL service $ sudo service mysql start # Define password for root@localhost $ sudo mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; exit 

Вы также можете использовать CTRL + D для выхода из оболочки MySQL. Далее давайте настроим и запустим веб-сервер Apache. Используя vim , nano или ваш любимый текстовый редактор, добавьте следующие две строки в /etc/apache2/apache2.conf :

 Servername localhost AcceptFilter http none 

Запустите веб-сервер Apache с помощью команды sudo service apache2 start . Перейдите по http://localhost чтобы подтвердить, что Apache успешно запущен:

Apache работает

Далее давайте установим PhpMyAdmin :

 $ sudo apt-get install phpmyadmin 

Добавьте следующую строку в /etc/apache2/apache2.conf :

 Include /etc/phpmyadmin/apache.conf 

Перезагрузите веб-сервер Apache, чтобы новая конфигурация вступила в силу:

 $ sudo service apache2 reload 

Чтобы подтвердить, что phpmyadmin был успешно настроен, перейдите по URL-адресу http://localhost/phpmyadmin . Введите учетные данные пользователя MySQL, которые вы установили ранее. (Обратите внимание, что имя пользователя root ). Вы должны иметь похожий вид:

PHPMyAdmin

Вот как просто настроить LAMP на Windows. Это должно быть достаточной демонстрацией того, что вы можете удобно настроить среду разработки Linux на Windows. В следующем разделе мы кратко рассмотрим новый терминал Windows, который разрабатывает Microsoft.

Терминал Windows

Windows Terminal — это проект Microsoft с открытым исходным кодом, целью которого является предоставление функций, запрашиваемых сообществом, таких как:

  • богатый текст
  • глобализация
  • поддержка вкладок
  • тематика и стиль
  • и много других …

Реализация этих функций в существующем консольном интерфейсе была невозможна без нарушения совместимости со старыми консольными приложениями. Поэтому был создан проект Windows Terminal, который позволил разработчикам радикально изменить архитектуру, не беспокоясь об обратной совместимости. Проект все еще находится в стадии разработки, поэтому ожидайте увидеть больше функций, выпущенных в будущем. Давайте посмотрим, как мы можем установить и настроить новый терминал Windows.

Установка и обновление

Перед установкой Windows Terminal убедитесь, что на вашем компьютере установлена ​​последняя версия Windows 10. В противном случае установка завершится неудачно со старыми сборками. В настоящее время существует два способа установки Windows Terminal. Первый способ через Microsoft Store:

Windows Terminal Store

Второй метод — использование инструмента Chocolatey , который похож на npm для приложений Windows. После того, как вы установите Chocolatey на своем компьютере, вы можете установить Windows Terminal на свой компьютер через PowerShell следующим образом:

 choco install microsoft-windows-terminal 

Вы должны ожидать аналогичного выхода. В моем случае я обновлял:

Обновление Windows Terminal Choco.png

После завершения установки вы можете запустить его из меню «Пуск». Терминал по умолчанию, который вы найдете, — это PowerShell. Каждый раз, когда вы нажимаете знак + , новая вкладка будет создаваться с использованием терминала по умолчанию. Используя выпадающее меню, вы можете выбрать другой тип терминала.

Терминал Windows

Если щелкнуть « Настройки» , откроется редактор по умолчанию для JSON. Для вас это может быть NotePad, NotePad ++, VS Code или любой другой редактор. Я предпочитаю VS Code или что-то подобное, потому что он автоматически закрывает теги JSON при наборе текста. Если вы посмотрите внимательно, вы заметите разделы для:

  • Globals — глобальные настройки: например, профиль по умолчанию, настройки вкладок, размер терминала и т. Д.
  • Сочетания клавиш — горячие клавиши
  • Профили — запуск терминала: например, PowerShell, командная строка
  • Схемы — цветовые схемы

Как вы можете видеть, очень легко понять и настроить параметры в формате JSON. Один быстрый совет, который я хотел бы показать, предназначен для таких пользователей, как я, которые установили более старую версию Windows Terminal. Некоторые из вас, вероятно, заметили, что некоторые профили отсутствуют на скриншоте выше. Несмотря на обновление приложения, настройки моего профиля остаются прежними. Чтобы быстро добавить отсутствующие настройки без необходимости вручную, все, что мне нужно сделать, это:

  1. Закройте приложение Windows Terminal полностью
  2. Удалить profile.json (находится в %USERPROFILE%\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState )
  3. Перезапустить приложение терминала

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

Кроме того, были добавлены новые сочетания клавиш, которые включают следующее:

 { "command" : "closePane", "keys" : [ "ctrl+shift+w" ] }, { "command" : "copy", "keys" : [ "ctrl+shift+c" ] }, { "command" : "duplicateTab", "keys" : [ "ctrl+shift+d" ] }, { "command" : "paste", "keys" : [ "ctrl+shift+v" ] }, 

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

Укладка консоли

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

 "acrylicOpacity" : 0.2, "useAcrylic" : true "colorScheme" : "One Half Dark", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 10, "padding" : "0, 0, 0, 0", "background":"#002B36", "backgroundImage": "<insert image path here>" "backgroundImageOpacity": 1, "backgroundImageStretchMode": "none" 

Я считаю, что приведенные выше настройки говорят сами за себя, за исключением acrylic . Это фоновый эффект, который делает фон терминала слегка прозрачным и размытым. acrylicOpacity контролирует прозрачность. Чтобы иметь полностью непрозрачный фон, установите useAcrylic в false . Вы можете использовать GIF для backgroundImage . Анимация будет воспроизводиться автоматически. Довольно круто, правда?

colorScheme происходит из разделов schemes . Те, которые приходят по умолчанию:

  • Кэмпбелл
  • Одна половина темная
  • Одна половина света
  • Соляризованная темнота
  • Солнечный свет

Резюме

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