Как получить Windows 10 Terminal для запуска WSL?

Я использую новый терминал Windows и пытаюсь заставить его запустить мой терминал WSL. Это настройка, которую я пытаюсь использовать:

        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "Campbell",
            "commandline" : "%LOCALAPPDATA%/wsltty/bin/mintty.exe --WSL= --configdir='%APPDATA%/wsltty' -~ ",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : "%USERPROFILE%",
            "useAcrylic" : true
        }

Но все, что он делает, это открывает какую-то CMD.

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

Редактировать:

Я заметил, что GUID - это то же самое, что и обычный CMD, поэтому я изменил это. Затем он запустил внешнюю оболочку.

11 ответов

Решение

Вы должны сделать следующие вещи в первую очередь.

1. Установите Linux (например, Ubuntu)

Ищите "Ubuntu" в магазине Microsoft, затем покупайте и устанавливайте. На самом деле это WSL (подсистема Windows для Linux).

1557633269919

Конечно, вы хотите испытать другие версии Linux, а также Debian:

1557633347262


2. Включите разрешения WSL

После установки WSL-версии Linux вам также необходимо включить разрешения WSL:

Откройте другое окно PowerShell с помощью "Запуск от имени администратора".

1557633727047

Затем введите следующую команду:

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

1557633836814

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

Сначала введите ubuntu в cmd нужно немного времени, чтобы запустить Ubuntu, установить имя пользователя и пароль.

Тогда вы можете играть с Ubuntu счастливо. Ниже я ввел несколько общих команд, таких как ps, touch, ls и т. д., как показано ниже.

1557633540178


3. Изменить настройки

Нажмите "Настройки" в правом верхнем углу изображения выше, файл profile.json файл будет открыт. Тогда внутри слова "profiles" в profile.json файл, добавьте ниже фрагмент.

        {
            "guid": "{78e390db-1bff-4533-9d7c-20f53d8bafa1}",
            "name": "WSL",
            "colorscheme": "Campbell",
            "historySize": 9001,
            "snapOnInput": true,
            "cursorColor": "#FFFFFF",
            "cursorShape": "bar",
            "commandline": "wsl ~",
            "fontFace": "Consolas",
            "fontSize": 12,
            "acrylicOpacity": 0.75,
            "useAcrylic": true,
            "closeOnExit": false,
            "padding": "0, 0, 0, 0"
        }

Рядом со словом "schemes" в profile.json файл, вам необходимо обновить ниже:

"schemes": [
        {
            "name": "Campbell",
            "foreground": "#A7B191", 
            "background": "#0C0C0C",
            "colors": [
                "#0C0C0C",
                "#C50F1F",
                "#13A10E",
                "#C19C00",
                "#0037DA",
                "#881798",
                "#3A96DD",
                "#CCCCCC",
                "#767676",
                "#E74856",
                "#16C60C",
                "#F9F1A5",
                "#3B78FF",
                "#B4009E",
                "#61D6D6",
                "#F2F2F2"
            ]
        }

Полный файл настроек (profile.json), который можно получить здесь.

На самом деле WSL - это Ubuntu.


4. Добавьте значки на разные типы вкладок.

Вы можете добавить иконки для Tab в это место:

 %LOCALAPPDATA%\packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\RoamingState 

Я положил 32x32 PNG в эту папку, а затем в profile.json Я могу ссылаться на ресурс изображения с путем, начинающимся с ms-appdata://,

Значок доступен здесь: Иконки

Затем замените содержимое нового profile-withIcons.json файл ниже с предыдущими настройками. профиль-withIcons.json

После окончания содержимое папки выглядит так:

Dir

Окончательный результат:

Иконки

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

wsl.exe -d <name_of_the_distribution>

Подобно:

wsl.exe -d Ubuntu-18.04

Вы можете перечислить все распределения с:

wsl.exe -l

,

PS: значок Tux для Linux:

ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png

Оказывается, все, что мне нужно было сделать, это изменить командную строку на ubuntu1804.exe, Нравится:

        {
            "acrylicOpacity" : 0.75,
            "closeOnExit" : true,
            "colorScheme" : "Campbell",
            "commandline": "ubuntu1804.exe",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{0caa0dad-35be-5f56-a8ff-abceeeaa6101}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "wsl",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : "%USERPROFILE%",
            "useAcrylic" : false
        }

Последние версии Windows Terminal включают поддержку динамических профилей , в которых новые дистрибутивы WSL будут автоматически добавляться в список доступных профилей.

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

После добавления вы можете отредактировать/переместить его с помощью диалогового окна «Настройки» или путем обычного редактирования. Каждый дистрибутив WSL идентифицируется с помощью GUID, который заполняется автоматически.

Как описано в связанной статье, динамические профили можно отключить, отключив их источник(и), как показано ниже.settings.json:

      "disabledProfileSources": ["Windows.Terminal.Wsl", "Windows.Terminal.Azure", "Windows.Terminal.PowershellCore"]

Хотя мой ответ не подлежит сомнению (поскольку на него ответил OP), я нашел этот вопрос при поиске профиля Windows Terminal (WT) для моей недавней установки Ubuntu, поскольку я недавно повторно визуализировал свой ноутбук.

Обновлено 19.10.03: порядок установки значения не имеет. Мой профиль для "ubuntu "появляется после установки ubuntu, а затем запуска экземпляра ubuntu в PowerShell и установки моей учетной записи и пароля. ТОГДА Windows Terminal добавляет соответствующий профиль оболочки для WSL.

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

      C:\Windows\system32\wsl.exe -d Ubuntu-20.04

где -d выбирает дистрибутив для запуска.

  1. Открыть настройки

  1. Измените «Профиль по умолчанию» в раскрывающемся списке.

  1. Нажмите «Сохранить» в правом нижнем углу.

Я разработал инструмент для настройки конфигурации терминала здесь:

Настройка терминала Windows

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

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

Скопируйте и вставьте guid для ubuntu в defaultProfile, и он автоматически запустит WSL ubuntu вместо powershell по умолчанию.

Предпосылка вопроса была нарушена ошибкой с GUID, поскольку OP говорит, что образец кода был действительно правильным. Таким образом, вопрос можно интерпретировать как -

Какое минимальное изменение требуется в settings.json по умолчанию, чтобы указать на выбранное вами приложение?(что привело меня сюда)

  1. guid- должно быть уникальным. Мне удалось изменить только последнее число для каждой настройки.

  2. commandline- В ответе Bravo Yeung есть ссылка на образец файла settings.json: "commandline": "wsl ~"

Это небольшое битовое значение стало возможным благодаря установке дистрибутива по умолчанию: "Распространение WSL по умолчанию - это тот, который запускается, когда вы запускаете wsl из командной строки:"

wsl --setdefault <DistributionName>

Однако кажется commandline:wsl не работает с startingDirectory. Я успешно пропустил commandline в пользу source + startingDirectory:

// Make changes here to the cmd.exe profile.
"guid": "{long-guid-here}",
"hidden": false,
"name": "Debian",
"tabTitle" : "WSL (Debian)",
"source": "Windows.Terminal.Wsl",
"startingDirectory" : "C:\\Users\\myuser"

Вот хорошая ссылка, с которой я начал в первый раз, когда я установил Windows Terminal и настроил параметры. Легко добавить Anaconda Prompt в Windows Terminal, чтобы сделать жизнь лучше.

Просто запустите терминал Windows, powershell, затем введите «debian» или любой другой установленный дистрибутив. Это автоматически добавит его в терминал Windows, тукс и все такое, а также откроет новую вкладку с помощью wsl.

Другие вопросы по тегам