company_banner

Начало работы с Windows Terminal

    Привет, Хабр! Сегодня делимся гайдом по началу работы с Windows Terminal. Да, поскольку он о начале работы с инструментом, в основном в материале описываются какие-то базовые моменты. Но я думаю, что и профессионалы смогут подчерпнуть для себя что-то полезное, как минимум из списка полезных ссылок в конце статьи. Заглядывайте под кат!



    Установка


    Windows Terminal доступен в двух разных сборках: Windows Terminal и Windows Terminal Preview. Обе сборки доступны для загрузки в Microsoft Store и на странице выпусков GitHub.

    Требования


    Для запуска любой сборки Windows Terminal на вашем компьютере должна быть установлена Windows 10 1903 или более поздняя версия.

    Windows Terminal Preview


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

    Windows Terminal


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

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


    После установки терминала вы можете запустить приложение и сразу приступить к работе с командной строкой. По умолчанию терминал включает профили Windows PowerShell, Command Prompt и Azure Cloud Shell в раскрывающемся списке. Если на вашем компьютере установлены дистрибутивы Подсистемы Windows для Linux (WSL), они также должны динамически заполняться как профили при первом запуске терминала.

    Профили


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



    Дефолтный профиль


    При первом запуске Windows Terminal в качестве профиля по умолчанию устанавливается Windows PowerShell. Профиль по умолчанию — это профиль, который всегда открывается при запуске терминала, и это профиль, который открывается при нажатии кнопки новой вкладки. Вы можете изменить профиль по умолчанию, установив «defaultProfile» на имя вашего предпочтительного профиля в файле settings.json.

    "defaultProfile": "PowerShell"

    Добавление нового профиля


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

    Если вы хотите создать новый профиль вручную, вам просто нужно сгенерировать новый «guid», указать «name» и предоставить исполняемый файл для свойства «commandline».

    Примечание. Вы не сможете скопировать свойство «source» из динамически созданного профиля. Терминал просто проигнорирует этот профиль. Вам нужно будет заменить «source» на «commandline» и предоставить исполняемый файл, чтобы дублировать динамически созданный профиль.

    Структура Settings.json


    В Терминал Windows включены два файла настроек. Один из них — defaults.json, который можно открыть, удерживая клавишу Alt и нажав кнопку «Настройки» в раскрывающемся списке. Это неизменяемый файл, который включает в себя все настройки по умолчанию, которые поставляются с терминалом. Второй файл — settings.json, в котором вы можете применить все свои пользовательские настройки. Доступ к нему можно получить, нажав кнопку «Настройки» в раскрывающемся меню.

    Файл settings.json разделен на четыре основных раздела. Первый — это объект глобальных настроек, который находится в верхней части файла JSON внутри первого {. Примененные здесь настройки повлияют на все приложение.

    Следующим основным разделом файла является объект «profiles». Объект «profiles» разделен на два раздела: «defaults» и «list». Вы можете применить настройки профиля к объекту «defaults», и они будут применяться ко всем профилям в вашем «list». «list» содержит каждый объект профиля, который представляет профили, описанные выше, и это элементы, которые появляются в раскрывающемся меню вашего терминала. Настройки, примененные к отдельным профилям в «списке», имеют приоритет над настройками, примененными в разделе «defaults».

    Далее в файле расположен массив «schemes». Здесь можно разместить собственные цветовые схемы. Отличный инструмент, который поможет вам создать свои собственные цветовые схемы, — это terminal.sexy.

    Наконец, в нижней части файла находится массив «actions». Перечисленные здесь объекты добавляют действия в ваш терминал, которые можно вызывать с клавиатуры и/или находить внутри палитры команд.

    Базовая кастомизация


    Вот несколько основных настроек, которые помогут вам начать настройку вашего терминала.

    Фон


    Одна из самых популярных настроек — настраиваемое фоновое изображение. Это настройка профиля, поэтому ее можно либо поместить внутри объекта «defaults» внутри объекта «profiles», чтобы применить ко всем профилям, либо внутри определенного объекта профиля.

    "backgroundImage": "C:\Users\admin\background.png"

    Параметр «backgroundImage» принимает расположение файла изображения, которое вы хотите использовать в качестве фона вашего профиля. Допустимые типы файлов: .jpg, .png, .bmp, .tiff, .ico и .gif.



    Цветовая схема


    Список доступных цветовых схем можно найти на нашем сайте документации. Цветовые схемы применяются на уровне профиля, поэтому вы можете поместить настройку внутри «значений по умолчанию» или в конкретный объект профиля.

    "colorScheme": "COLOR SCHEME NAME"

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

    Начертание шрифта


    По умолчанию Windows Terminal использует Cascadia Mono в качестве шрифта. Начертание шрифта — это настройка уровня профиля. Вы можете изменить шрифт, установив «fontFace» на имя шрифта, который вы хотите использовать.

    "fontFace": "FONT NAME"`

    Совет: Терминал Windows также поставляется с начертанием шрифта Cascadia Code, который включает программные лигатуры (см. Gif ниже). Если вы используете Powerline, Cascadia Code также поставляется в PL-версии, которую можно загрузить с GitHub.



    Полезные ресурсы


     Докуметация Windows Terminal
     Скотт Хансельман: как сделать красивым Windows Terminal с помощью Powerline, шрифтов Nerd, кода Cascadia, WSL и oh-my-posh
     Скотт Хансельман: Как настроить терминал с помощью Git Branch, Windows Terminal, PowerShell, + Cascadia Code!
     Скотт Хансельман: Windows Terminal Feature PREVIEW – Кастомизируйте свои привязки клавиш, цветовые схемы, панели, и многое другое!
     >_TerminalSplash – темы Windows Terminal
    Microsoft
    Microsoft — мировой лидер в области ПО и ИТ-услуг

    Похожие публикации

    Комментарии 9

      +7
      А если вам не хватает Windows Terminal в меню, вызываемом через Win+X (оно же вызывается через правый клик мыши в углу кнопки Пуск), то в PowerShell скопируйте и вставьте следующий код отсюда.
      Код, добавляющий Windows Terminal в меню Win+X
      $folderPath = "$ENV:LOCALAPPDATA\Microsoft\Windows\WinX\Group3"
      $adminFilePath = Join-Path $folderPath "00 - Windows Terminal.lnk"
      $normalFilePath = Join-Path $folderPath "00a - Windows Terminal.lnk"
      $adminDisplay = "Windows Terminal (&Admin)"
      $normalDisplay = "Windows &Terminal"
      
      $shortcutFile = Join-Path $ENV:TEMP "Windows Terminal Shortcut.lnk"
      Invoke-WebRequest -OutFile $shortcutFile -Uri "https://gist.github.com/fredrikhr/0994a6e81443c439659db1d9763365d7/raw/Windows%2520Terminal%2520Shortcut.lnk"
      Copy-Item $shortcutFile $adminFilePath -Force -Verbose
      Copy-Item $shortcutFile $normalFilePath -Force -Verbose
      Remove-Item -Verbose -Force $shortcutFile
      
      # Get the Windows Shell COM service instance:
      $shell = New-Object -COM WScript.Shell
      
      # Change the Admin Shortcut display name (Description) and mark as Run as Administrator
      $adminShortcut = $shell.CreateShortcut($adminFilePath)
      $adminShortcut.Description = $adminDisplay # Set Display in Win+X menu using A as the mnemonic character
      $adminShortcut.Save()
      # Setting the Run as administrator flag does not have an API, flip the bit manually
      # ref.: https://stackoverflow.com/a/29002207/2226662
      $adminBytes = [System.IO.File]::ReadAllBytes($adminFilePath)
      $adminBytes[0x15] = $adminBytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON
      [System.IO.File]::WriteAllBytes($adminFilePath, $adminBytes)
      
      # Change the Normal Shortcut display name (Description)
      $normalShortcut = $shell.CreateShortcut($normalFilePath)
      $normalShortcut.Description = $normalDisplay # Set Display in Win+X menu using T as the mnemonic character
      $normalShortcut.Save()
      


      Затем требуется перезапустить explorer, ну или просто выйти из системы и зайти снова.
      Windows Terminal в меню, вызываемом через Win+X

      Ну и ждём, когда сами разработчики реализуют данную возможность.
        0
        Есть ли возможность заставить терминал запускаться в текущей директории? Т е чтобы в коммандере можно было написать wt и сразу работать, как с cmd и powershell.
          0
          Да, введите
          wt -d .

          Здесь описание возможных ключей.
            0
            Я имею ввиду без дополнительных ключей, почему-то все остальные терминалы и так понимают, в какой они папке находятся :)
              0

              Скажите, а какие такие "остальные" терминалы это понимают?


              Скажем, xterm (первый приходящий в голову терминал) вроде бы всегда начинает с "чистого" окружения...

                0
                Окей, произошла небольшая путаница с терминологией — очевидно cmd и ps это не терминалы. xterm не приходит в голову, т. к. разрабатываю под windows (конечно его можно запустить, но речь не об этом). Специально проверил несколько «настоящих» терминалов для Windows:
                * ConEmu — открывается сразу в текущей директории
                * Cmder — по сути тот же ConEmu — открывается в текущей директории
                * Alacritty — открывается сразу в текущей директории
                * Hyper — открывается в домашней директории
                * Teminus, MobaXTerm и т. д. вообще по умолчанию не показывают терминал, нужно руками запускать, с ними и работу по-другому нужно выстраивать (особенно с такими комбайнами, как MobaXTerm)

                Конечно, насчёт «все остальные терминалы» я погорячился, но минимум половина такое умеет. Хорошо, когда есть выбор :)
              +1
              Оказалось, что достаточно «всего лишь» добавить "startingDirectory" : "." в умолчания текущего профиля. Интересно разработчики WT всегда работают в домашней директории? Странные умолчания, очень странные.
                0
                Shift + ПКМ из стандартного проводника если я правильно понял
                  0
                  Да, так и есть, и в то же время вопрос был про запуск из командной строки (как, например, в коммандере).

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

          Самое читаемое