Начало работы с Windows Terminal
Привет, Хабр! Сегодня делимся гайдом по началу работы с Windows Terminal. Да, поскольку он о начале работы с инструментом, в основном в материале описываются какие-то базовые моменты. Но я думаю, что и профессионалы смогут подчерпнуть для себя что-то полезное, как минимум из списка полезных ссылок в конце статьи. Заглядывайте под кат!
Установка
Windows Terminal доступен в двух разных сборках: Windows Terminal и Windows Terminal Preview. Обе сборки доступны для загрузки в Microsoft Store и на странице выпусков GitHub.
Требования
Для запуска любой сборки Windows Terminal на вашем компьютере должна быть установлена Windows 10 1903 или более поздняя версия.
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.
Добавление нового профиля
Новые профили можно добавлять динамически с помощью терминала или вручную. Терминал 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», чтобы применить ко всем профилям, либо внутри определенного объекта профиля.
Цветовая схема
Список доступных цветовых схем можно найти на нашем сайте документации. Цветовые схемы применяются на уровне профиля, поэтому вы можете поместить настройку внутри «значений по умолчанию» или в конкретный объект профиля.
Этот параметр принимает название цветовой схемы. Вы также можете создать свою собственную цветовую схему и поместить ее в список «schemes», а затем установить в настройках профиля имя этой новой схемы, чтобы применить ее.
Начертание шрифта
По умолчанию Windows Terminal использует Cascadia Mono в качестве шрифта. Начертание шрифта — это настройка уровня профиля. Вы можете изменить шрифт, установив «fontFace» на имя шрифта, который вы хотите использовать.
Совет: Терминал Windows также поставляется с начертанием шрифта Cascadia Code, который включает программные лигатуры (см. Gif ниже). Если вы используете Powerline, Cascadia Code также поставляется в PL-версии, которую можно загрузить с GitHub.
Если вы пишете код в Windows, вы заслуживаете лучшего терминала
Я хочу сделать признание. Когда дело доходит до моего компьютера, я оставляю все в значительной степени сыром виде. Конечно, у меня есть любимые маленькие инструменты. Я использую плагины Chrome, такие как Wappalyzer, и множество расширений VS Code, таких как Chrome Debugger и Live Server. Но я сознательно не использую темы, шрифты, средства форматирования и другие приятные для глаз настройки. В далеком прошлом, когда я только начинал программировать, я тратил слишком много времени на перестройку своей индивидуальной настройки на разных компьютерах и на новом оборудовании. Постоянные настройки устарели, поэтому я решил по возможности сократить до стокового.
Это мое оправдание, почему я провел много месяцев, по большей части игнорируя продукт Microsoft Windows Terminal. В конце концов, время, которое я провожу в командной строке, ограничено и ничем не примечательно. Я настраиваю свое приложение, устанавливаю пакеты npm или Nuget и двигаюсь дальше. Проводить время в окне терминала означает заходить в темный угол операционной системы и делать то, что нужно.
Но теперь я вынужден признать, что был неправ. Или, по крайней мере, есть еще один инструмент, для которого мне нужно освободить место. Поскольку Windows Terminal не просто заменяет скрипучую часть программного обеспечения ОС с кодовой базой 30-летней давности, он также добавляет некоторые действительно практичные функции.
Терминал открыт
Прежде чем продолжить, стоит сделать краткий обзор того, что такое терминал на самом деле. Это потому, что мы, разработчики, работающие в Windows, привыкли объединять терминалы и программы оболочки в одну расплывчатую идею. Например, вы можете подумать, что когда Windows перешла со старой командной строки на объектно-ориентированную оболочку PowerShell, она заменила программу терминала. Но на самом деле это неправда.
Вы думаете, что запускаете PowerShell, но на самом деле вы запускаете интерфейс ConHost, который взаимодействует с PowerShell.
Вместо этого Microsoft начала создавать новый терминал под названием Windows Terminal. Он существует уже почти год, но еще не дошел до включения в ОС Windows. Это означает, что если вам нужен Терминал Windows, вы должны установить его из Windows Store. (Или вы можете загрузить его с GitHub и собрать самостоятельно, потому что новый терминал, естественно, имеет открытый исходный код.)
Почему терминал Windows?
Из-за того, как работают терминалы, в них не так много очевидного волшебства. Фактически, «выполнение работы» выполняется любой программой оболочки, которую вы используете. Но оказывается, что новый терминал Windows содержит множество практических удобств, которые могут сделать вас более продуктивным (или, по крайней мере, менее раздражающим) при выполнении повседневной работы. Вот несколько причин полюбить Windows Terminal:
Несколько вкладок. Помните, когда в веб-браузерах была только одна вкладка? Как мы это ненавидели! Но мы терпели это в ConHost уже целое поколение. К счастью, Windows Terminal позволяет открывать столько вкладок, сколько нужно в одном окне.
Одновременное использование нескольких оболочек. Терминал Windows поддерживает любую стандартную программу оболочки. Вы можете использовать старую добрую PowerShell, почти устаревшую командную строку, Azure Cloud Shell (для управления онлайн-ресурсами Azure) и даже bash, если вы включили Windows Linux Subsystem. И вы можете запускать их все рядом, на разных вкладках или панелях одного и того же окна Терминала Windows.
Оболочки сошли с ума
Современный курсор. Что это за блочная штука в ConHost? Он показывает вашу текущую позицию, а не точку вставки, поэтому легко забыть, вставляет ли нажатие клавиши до или после текущего символа.
Изобилие настроек. Все они управляются через немного непонятный файл настроек JSON. Освойте его, чтобы управлять внешним видом окна терминала (размером, цветами, настройкой «всегда поверх») и добавьте свои собственные сочетания клавиш.
Пользователи Linux скажут вам, что многие из этих функций у них были в течение многих лет. Опытные разработчики Windows скажут вам то же самое, потому что они уже используют какую-то альтернативу терминалу с открытым исходным кодом. В основном они правы, но теперь вам не нужно игнорировать их в тихом смущении.
Терминал Windows также имеет графическое оформление, которое мне кажется изящным и почти бесполезным. Мне было интересно поиграть с этими функциями около 90 секунд, а потом забыть на всю оставшуюся жизнь:
Настраиваемая прозрачность с размытием фона. Вы даже можете настроить его на лету, удерживая Ctrl + Shift и вращая кнопку мыши. Но зачем?
Цветовые схемы и пользовательские фоновые изображения.
Анимированные фоны в формате GIF. (Привет, Windows Plus примерно из 1998 года.)
Конечно, если вы решите использовать эти функции, я не буду судить.
Краткое примечание о терминале VS Code
Если вы используете Visual Studio Code, вы, вероятно, знакомы с его интегрированным терминалом. Вы можете выбрать, какую оболочку использовать (например, PowerShell или bash), но вы всегда используете терминал VS Code, а не ConHost.
Тем не менее, терминал VS Code довольно прост. Терминал Windows не может заменить встроенный терминал. Однако вы можете настроить Windows Terminal так, чтобы он работал как внешний терминал для VS Code. Таким образом, когда вы запускаете терминал из VS Code, вы откроете отдельное окно Windows Terminal, что даст вам больше места для передышки и современные функции, которые вам действительно нужны.
Последнее слово
Терминал Windows неуклонно продвигается к версии 2.0, которая ожидается этой весной, и в конечном итоге включение в Windows. Планируется длинный список новых функций, включая возможность отрывать вкладки и перемещать их из одного окна терминала к другому, бесконечная прокрутка и приятный пользовательский интерфейс для управления настройками. Будет ли он вызывать безумную любовь, как VS Code или язык C #? Нет. Но иногда достаточно сделать жизнь менее болезненной.
Записки IT специалиста
Технический блог специалистов ООО»Интерфейс»

Взаимоотношения Windоws и командной строки долгое время были достаточно прохладными. Основная парадигма управления системой строилась вокруг графических инструментов и мыши, а командная строка рассматривалась как дополнительный атрибут и инструмент восстановления. Ни о каком полноценном управлении системой через терминал речи не шло, даже для автоматизации предлагался отдельный скриптовый язык VBScript.
Продукт доступен в двух версиях: стабильной Windows Terminal и версии для разработчиков и инсайдеров Windows Terminal Preview. Последняя получает все новые функции непосредственно после их разработки и является наиболее интересной и в дальнейшем мы будем рассматривать именно ее.
Рекомендованным способом получения приложения является Microsoft Store, но также возможны и альтернативные методы установки, более подробно о них можно узнать на странице GitHub.
После установки приложении автоматически добавит профили для всех установленных в системе консольных приложений Windows и WSL, а также будет их автоматически регистрировать при добавлении в систему, например, если вы установите новую версию PowerShell или новый экземпляр Linux в WSL. Кроме того, отдельно добавляется профиль для Azure Cloud Shell. Профилем по умолчанию является встроенный в систему Windows Power Shell.
К сожалению графической оболочки для настройки терминала пока нет, при выборе пункта Параметры будет открыт JSON-файл с настройками, однако это не должно пугать любителя командной строки. В конфигурационном файле сначала идут глобальные параметры, а затем описания профилей. Структура достаточно простая и не должна вызвать особых сложностей.
Прежде всего переопределим командную оболочку по умолчанию. Для этого найдите guid нужного профиля и скопируйте его в опцию defaultProfile:
Затем включим привычное Linux-пользователям поведение, когда текст копируется при его выделении и потом может быть вставлен правым кликом мыши:
Перейдем к самим профилям. Их настройки достаточно просты и очевидны: это guid, наименование, источник или командная строка запуска и видимость. Если вы не хотите видеть профиль в списке выбора, то просто установите опцию hidden в true, мы таким образом скрыли оболочку Azure.
Все изменения применяются налету, перезапускать терминал не нужно.
Терминал поддерживает практически полную кастомизацию. Можно изменять цвет, шрифт, фоновое изображение, прозрачность панелей, задавать иконки, также поддерживаются темы, включающие множество настроек для различных вариантов отображения. Мы не будем углубляться так далеко, большее количество настроек можно найти в документации: https://docs.microsoft.com/ru-ru/windows/terminal/get-started.
Но некоторые настройки мы все-же сделаем. По умолчанию все панели выглядят одинаково, что может приводить к некоторой путанице, поэтому есть смысл изменить цвет фона, чтобы быстро понимать, где какая консоль запущена, для этого добавьте в профиль опцию background с шестнадцатеричным кодом цвета, например, «родной» цвет для PowerShell:
Мы указали для разных консолей привычные цвета и сразу стало гораздо удобнее:
Также очень легко можно создавать свои профили. Допустим мы хотим добавить в терминал подключение по SSH к одному из своих Linux-серверов. Прежде всего для нового профиля нужно получить guid, для этого в среде PowerShell выполните:

Синтаксис довольно прост, но поясним некоторые параметры. Опция commandline указывает строку запуска, а в опции icon мы задали индивидуальную иконку профиля, для этого можно использовать как ico-файлы, так и обычные png. Иконку следует разместить в специальной директории, для Windows Terminal это:
Для Windows Terminal Preview:
После чего к ним можно будет обращаться как:
Подобным образом можно добавлять неограниченное число профилей на все случаи жизни и практически к любому приложению. Например. мы создали еще один профиль для работы с командной строкой PostgreSQL, для этого мы заглянули в «родной» bat-файл для запуска и позаимствовали оттуда строку запуска:
Обратите внимание, если это последний профиль в списке, то запятая после закрывающей фигурной скобки не ставится.
В заключение хочется сказать, что новый Windows Terminal нам очень понравился и мы рекомендуем всем, кто еще не пробовал, попробовать работу с ним. Это действительно новый подход Microsoft к старым и привычным вещам и на этот раз у них действительно получилось современное, удобное и динамично развивающееся приложение.
Помогла статья? Поддержи автора и новые статьи будут выходить чаще:
Или подпишись на наш Телеграм-канал:
Новый Windows Terminal: ответы на ваши вопросы
В комментариях к недавней статье вы задали много вопросов по поводу новой версии нашего Windows Terminal. Сегодня постараемся ответить на некоторые из них.
Под катом приведены некоторые из наиболее часто задаваемых вопросов, которые мы слышали (и до сих пор слышим), а также официальные ответы: в том числе о замене PowerShell и о том, как начать пользоваться новинкой уже сегодня.
Когда и где я могу получить новый Windows Terminal?
Windows Terminal — это замена Command Prompt и/или PowerShell?
Чтобы ответить на этот вопрос, давайте проясним несколько терминов и понятий:
Таким образом, вопрос, скорее всего, следует переформулировать как “Windows Terminal — это замена Windows Console?”
Когда я смогу получить новый шрифт?
Скоро! У нас нет установленного таймлайна, но мы активно работаем над завершением шрифта. Как только он будет готов к выпуску, он будет открыт и доступен в своем репозитории.
Как это было на Build
Если вы пропустили наше выступление на Build 2019, то вот некоторые из основных моментов, которые помогут вам избавиться еще от нескольких вопросов:
Terminal Keynote и Aspirational Video
Во время выступления Раджеша Джа (Rajesh Jha) Кевин Галло (Kevin Gallo) анонсировал новый терминал и продемонстрировал наше новое “Terminal Sizzle Video”, иллюстрирующее желаемое направление для v1.0:
Сессия в Windows Terminal
Рич Тернер (Rich Turner) [Senior Program Manager] и Майкл Никса (Michael Niksa) [Senior Software Engineer] провели углубленную сессию в Windows Terminal, его архитектуре и коде.
Заключение
Обязательно следите за обновлениями на страницах @cinnamon_msft и @richturn_ms в Twitter и в течение ближайших недель и месяцев почаще посещайте наш блог, посвященный командной строке, чтобы узнать больше о терминале и нашем прогрессе в направлении v1.0.
Если вы разработчик и хотели бы принять участие, пожалуйста, посетите репозиторий терминала на GitHub и рассмотрите и обсудите проблемы с командой и сообществом, и если у вас есть время, внесите свой вклад, отправив PR, содержащий исправления и улучшения, чтобы помочь нам сделать терминал потрясающим!
Если вы не являетесь разработчиком, но все равно хотели бы опробовать терминал, загрузите его из Microsoft Store после его публикации этим летом и обязательно отправьте нам фидбэк о том, что вам нравится, что не нравится и т. д.
Представляем Windows Terminal
Windows Terminal — это новое, современное, быстрое, эффективное, мощное и производительное терминальное приложение для пользователей инструментов и оболочек командной строки, таких как Command Prompt, PowerShell и WSL.
Windows Terminal будет поставляться через Microsoft Store в Windows 10 и будет регулярно обновляться, гарантируя, что вы всегда будете идти в ногу со временем и сможете пользоваться новейшими функциями и последними улучшениями с минимальными усилиями.
Ключевые функции Windows Terminal
Несколько вкладок
Вы просили, и мы услышали! Наиболее часто запрашиваемая функция для терминала — это поддержка нескольких вкладок, и мы очень рады, что наконец-то смогли предоставить эту функцию. Теперь вы можете открывать любое количество вкладок, каждая из которых подключена к оболочке командной строки или приложению по вашему выбору, например, Command Prompt, PowerShell, Ubuntu на WSL, Raspberry Pi через SSH и т. д.
Красивый текст
В Windows Terminal используется GPU-ускорение DirectWrite/DirectX на основе движка рендеринга текста. Этот новый движок рендеринга текста будет отображать текстовые символы, глифы и символы, присутствующие в шрифтах на вашем ПК, включая идеограммы CJK, эмодзи, символы powerline, значки, лигатуры программирования и т. д. Этот движок даже рендерит текст намного быстрее, чем предыдущий движок GDI консоли!
У вас также будет возможность использовать наш новый шрифт! Мы хотели создать веселый, новый, моноширинный шрифт, чтобы улучшить современный внешний вид терминала. Этот шрифт не только будет включать лигатуры программирования, но и будет иметь собственный Open-Source репозиторий. Оставайтесь с нами для получения дополнительной информации о новом проекте шрифта!
Настройки и конфигурируемость
Мы связались со многими пользователями командной строки, которые любят кастомизировать свои терминалы и приложения командной строки. Windows Terminal предоставляет множество настроек и параметров конфигурации, которые дают большой контроль над внешним видом терминала и каждой из оболочек/профилей, которые можно открывать как новые вкладки. Настройки хранятся в структурированном текстовом файле, что упрощает конфигурирование для пользователей и/или инструментов.
Используя механизм конфигурирования терминала, вы сможете создать несколько “профилей” для каждой оболочки/приложения/инструмента, которые вы хотите использовать, будь то PowerShell, Command Prompt, Ubuntu или даже SSH-соединения с Azure или устройствами IoT. Эти профили могут иметь свою собственную комбинацию стилей и размеров шрифта, цветовых тем, уровней размытия/прозрачности фона и т. д. Теперь вы можете создать свой собственный терминал в своем стиле, который персонализирован на ваш уникальный вкус!
Больше!
После выпуска Windows Terminal 1.0, мы планируем начать работу со многими фичами, которые уже есть в нашем бэклоге, в дополнение ко многим фичам, которые вы, как сообщество, вероятно, добавите!
Когда я смогу его получить?
На сегодняшний день Windows Terminal и Windows Console доступны в Open-Source, так что вы уже можете клонировать, собирать, запускать и тестировать код из репозитория на GitHub:
Также, этим летом в Microsoft Store будет выпущена превью-версия Windows Terminal для первопроходцев и предоставления фидбэка.
А уже зимой мы планируем окончательно выпустить Windows Terminal 1.0, и мы будем работать с сообществом, чтобы убедиться, что он полностью готов, прежде чем мы выпустим!
[Happy Joy Gif – Giphy]
Подождите… вы сказали в Open-Source?
Да, это так! Мы рады объявить, что мы открываем не только Windows Terminal, но и Windows Console, которая содержит инфраструктуру командной строки в Windows и предоставляет традиционный Console UX.
Нам уже не терпится поработать с вами над улучшением и расширением возможностей командной строки Windows!
Это звучит потрясающе, но почему бы вам просто не улучшить существующую Windows Console?
Основной целью Windows Console является сохранение обратной совместимости с существующими инструментами командной строки, скриптами и т. д. Хотя нам и удалось добавить множество ключевых улучшений в функционал консоли (например, добавить поддержку VT и 24-битного цвета и т. д. см. этот пост в блоге), мы не можем внести дальнейшие существенные улучшения в UI консоли без “нарушения мира”.
Поэтому пришло время для нового, свежего подхода.
Windows Terminal устанавливается и работает вместе с существующим приложением Windows Console. Если вы непосредственно запускаете Cmd/PowerShell/пр., они начнут подключаться к традиционному экземпляру консоли точно так же, как обычно. Таким образом, обратная совместимость остается неизменной, и в то же время вы можете использовать Windows Terminal, если/когда вы захотите это сделать. Windows Console будет продолжать поставляться в Windows в течение десятилетий для поддержки существующих/устаревших приложений и систем.
Хорошо, а что насчет участия в существующем проекте терминала или приложения в Open-Source?
Мы тщательно изучили этот вариант во время планирования и решили, что наше участие в существующем проекте потребует изменения требований и архитектуры проекта таким образом, что это будет слишком деструктивным.
Вместо этого, создав новое Open-Source терминальное приложение и Open-Source Windows Console, мы можем предложить сообществу сотрудничать с нами в улучшении кода и использовании его в своих соответствующих проектах.
Мы считаем, что на рынке достаточно места для новых/разных идей о том, что терминал может и должен делать, и мы стремимся помочь экосистеме терминальных (и связанных с ней) приложений процветать и развиваться за счет внедрения новых идей, интересных подходов и захватывающих инноваций в этом пространстве.
Убедили! Как принять участие?
Посетите репозиторий по адресу github.com/Microsoft/Terminal, чтобы клонировать, собрать, протестировать и запустить терминал! Кроме того, мы будем признательны, если вы будете сообщать об ошибках и делиться фидбэком с нами и сообществом, а также исправлять проблемы и вносить улучшения в GitHub.
Этим летом попробуйте установить и запустить Windows Terminal из Microsoft Store. Если вы столкнетесь с какими-либо ошибками, поделитесь отзывом через Feedback Hub или раздел Issues на GitHub, который предназначен для вопросов и обсуждений.
Мы рады работать с вами! Если у вас есть какие-либо вопросы или пожелания, не стесняйтесь обращаться к Kayla @cinnamon_msft и/или Rich @richturn_ms в Twitter. Нам не терпится увидеть, какие замечательные улучшения и фичи вы привнесете в Windows Terminal и Windows Console.



