В сегодняшнем блоге я покажу, как можно настроить PowerShell, чтобы он выглядел намного лучше. Мы изменим это с этого:

К этому:

Для этого блога вам нужно будет установить терминал Windows из магазина Microsoft, так как мы будем его использовать. Выглядит это примерно так:

Терминал Windows имеет множество действительно интересных функций. Во-первых, вы можете открыть не только PowerShell, но даже командную строку и облачную оболочку Azure. Кроме того, вы также можете добавить в другие консоли. Например, я добавил Git Bash.

А теперь приступим. Во-первых, если у вас есть это сообщение:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Try the new cross-platform PowerShell https://aka.ms/pscore6

приходя наверх, давайте остановим это. Откройте терминал Windows, затем нажмите «Ctrl» + «,», чтобы отобразить настройки. Кроме того, вы можете щелкнуть стрелку раскрывающегося списка вверху и выбрать настройки

Затем нажмите «Открыть файл JSON»:

Settings.json должен открыться в текстовом редакторе по умолчанию. Для меня это код Visual Studio:

Перейдите к тексту «список», он должен быть в разделе «профили»:

Замените powershell.exe следующим образом:

powershell.exe -nolog

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

И сообщение больше не будет.

На следующем этапе мы установим и импортируем несколько модулей. Для этого сначала нам нужно изменить Execution-Policy для текущего пользователя. Таким образом, политика выполнения - это своего рода функция безопасности, которая позволяет запускать только определенные типы скриптов. В нашем случае мы хотим изменить политику выполнения нашего «Текущего пользователя» на «Обход», что означает, что скрипты, которые мы устанавливаем и запускаем из нашей оболочки PowerShell, не нужно подписывать. Для этого закройте терминал Windows и запустите его от имени администратора:

Затем введите эту команду в окне PowerShell:

Get-ExecutionPolicy -Scope CurrentUser

Вы получите либо «Не определено», либо «Без подписи», либо «Удаленное подписание» или «Без ограничений». Так что для меня это:

Чтобы изменить политику выполнения на «Обход», мы просто напишем:

Set-ExecutionPolicy -Scope CurrentUser Bypass

Он должен работать без ошибок, если вы не являетесь администратором. Теперь, если вы запустите:

Get-ExecutionPolicy -Scope CurrentUser

снова вы получите «Обход»:

Теперь установим необходимые нам модули. Вы можете разделить экраны в новом терминале Windows следующим образом:

Or:

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

Install-Module windows-screenfetch
Install-Module oh-my-posh
Install-Module posh-git

Введите ‘a’ и нажимайте Enter для каждого из появляющихся запросов:

Если команда выполняется без ошибок, значит, все установлено. Теперь мы импортируем модули, которые мы установили. Введите эти команды:

Import-Module windows-screenfetch
Import-Module oh-my-posh
Import-Module posh-git

А теперь самое интересное!

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

Чтобы сделать то же самое, введите это в PowerShell:

$PROFILE

Затем перейдите к папке, которую вы получите в качестве вывода.

Как видите, у меня нет файла Microsoft.PowerShell_profile.ps1. Если да, то вы можете открыть его с помощью блокнота.

Чтобы создать этот файл, просто вернитесь в терминал и введите:

notepad $PROFILE

У вас должно получиться что-то вроде этого:

Просто нажмите Да. Это создаст сценарий Microsoft.PowerShell_profile.ps1, который будет запускаться при запуске. Теперь мы введем все команды, которые хотим запустить здесь. Введите:

Import-Module oh-my-posh
Import-Module posh-git
Import-Module windows-screenfetch
Screenfetch

Если вы хотите, чтобы подчеркнутое изображение выглядело точно так же, как у меня:

Затем введите это в свой файл запуска:

Set-PoshPrompt -Theme powerlevel10k_rainbow

Однако, если вам нужна другая тема, просто перейдите в свой терминал и введите:

Get-PoshThemes

Результат будет в следующем формате:

THEME NAME
THEME LOOK

Чтобы узнать, какая шикарная тема вам нравится, просто напишите:

Set-PoshPrompt -Theme THEME_NAME

Итак, мой файл конфигурации выглядит так:

Import-Module oh-my-posh
Import-Module posh-git
Import-Module windows-screenfetch
Screenfetch
Set-PoshPrompt -Theme powerlevel10k_rainbow
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Я установил для ExecutionPolicy значение RemoteSigned, чтобы неавторизованные люди не могли попытаться запустить скрипты вирусов на моем устройстве. Это сделано для безопасности, и в этом нет необходимости.

Теперь просто сохраните и закройте файл. Закройте все открытые терминалы и откройте новый терминал.

Все выглядит отлично, однако внутри есть маленькие коробочки со знаком "?". Это потому, что выбранный нами шрифт не содержит некоторых из этих символов. Чтобы изменить это, перейдите на сайт Delugia-Code, затем загрузите оттуда Delugia-Complete:

После этого извлеките zip-файл:

Затем дважды щелкните файл DelugiaComplete.ttf.

Это откроется, просто нажмите кнопку установки, и после завершения установки закройте приложение. Теперь откройте windows terminal settings.json, как я показал вам выше. Затем перейдите к «fontFace» для конфигурации PowerShell:

Теперь замените Consolas на Delugia:

Сохраните и закройте файл, затем вернитесь в терминал Windows:

Все пропавшие коробки пропали! Вы можете открыть репозиторий git, чтобы увидеть все признаки.

Итак, это все для этого блога! Надеюсь, вам действительно понравилось это. Если вы думаете, что это может пригодиться другим пользователям Windows, то обязательно поделитесь им с ними. На этой ноте, спасибо за чтение!