Консоль Windows PowerShell предоставляет удобную среду для управления командами PowerShell, а также для создания файлов сценариев, с которыми можно работать в дальнейшем. При этом вы можете настроить консоль в соответствии с собственными требованиями, отвечающими вашему индивидуальному стилю
. Например, вам захочется увеличить размер буфера или поменять шрифт и цвет фона. Для такой настройки в PowerShell предусмотрено несколько довольно простых методов. Вы можете установить свойства консоли непосредственно из командного окна, выполнять команды PowerShell для изменения этих установок или добавить сценарии к своему профилю PowerShell, чтобы установки автоматически применялись при запуске.
Еще можно внести изменения в реестр в процессе настройки консоли PowerShell, однако подробное описание этого подхода выходит за рамки данной статьи. Помните, что вносить изменения в реестр – это не самый гибкий и легкий способ настройки консоли PowerShell. К тому же такой подход потребует от вас большой осторожности.
Настройка свойств консоли PowerShell
При первом запуске PowerShell внешний вид консоли определяется настройками свойств по умолчанию или параметрами, которые установлены «горячей клавишей» и проходят как аргументы к исполняемому файлу PowerShell. Например, когда вы запускаете PowerShell, дважды щелкая на файле powershell.exe, он открывается с установками свойств по умолчанию. То же касается и запуска PowerShell «горячей клавишей», которую вы создали для исполняемого файла или запуска PowerShell из командной строки Windows. Вы увидите маленькое окно командного процессора с черным фоном и серым шрифтом, как показано на экране 1.
|
| Экран 1. Окно PowerShell при запуске файла powershell.exe |
Если вы запускаете PowerShell из меню «Пуск», то увидите иную картину. В этом случае окно консоли больше, с голубым фоном и серым шрифтом, как показано на экране 2. Отличие обусловлено тем, что процесс установки PowerShell создает пункты меню «Пуск» с параметрами, необходимыми для изменения окружения консоли.
|
| Экран 2. Окно PowerShell при запуске из меню |
Независимо от того, как вы запускаете PowerShell, вы можете изменить внешний вид консоли через настройки свойств. Для доступа к ним щелкните на значке PowerShell в верхнем левом углу окна консоли, а затем на Properties, чтобы открыть диалоговое окно «Свойства».
Диалоговое окно Properties («Свойства») включает четыре вкладки: Options («Параметры»), Font («Шрифт»), Layout («Расположение») и Colors («Цвета»). Каждая из них содержит настройки, которые в случае необходимости можно изменить. На экране 3 показана вкладка Options. Здесь вы можете настроить размер курсора и процедуру запоминания команд. Также предусмотрено два режима редактирования: QuickEdit Mode и Insert Mode. Режим QuickEdit Mode позволяет копировать и выполнять вставку команд в консоли PowerShell с помощью мыши. Режим Insert Mode позволяет вставить новый текст в строку вместо его перезаписи.
|
| Экран 3. Окно свойств PowerShell, вкладка Options |
На экране 4 вы видите вкладку Font, содержащую параметры, которые можно применить к шрифту в консоли PowerShell. Хотя их немного, у вас все же есть несколько вариантов, чтобы выбрать размер и стиль.
|
| Экран 4. Окно свойств PowerShell, вкладка Font |
Вкладка Layout позволяет выбрать размер буфера, размер окна и его расположение, как показано на экране 5. Размер буфера устанавливает ширину (количество символов) и высоту (количество строк) вашего буфера. Размер буфера может быть такой же, как размер окна, и больше него, но он не может быть меньше. Многие администраторы считают, что увеличивать размер буфера, особенно высоту – это удобно. Размер окна определяет ширину и высоту актуального окна консоли. Опять же, оно не может быть больше размера буфера. Область расположения окна указывает, где будет располагаться окно консоли на вашем «рабочем столе», нужно только задать позицию левого верхнего угла окна или позволить сделать это системе.
|
| Экран 5. Вкладка Layout |
На экране 6 показана вкладка Colors, где вы можете выбрать цвета текста и фона. Для этого можно прибегнуть к самому простому способу – выбрать элемент (например, текст на экране, Screen Text), а затем щелкнуть на цвете в панели цветов. Если вам известно заданное значение в схеме Red, Green, Blue (RGB) для определенного цвета, вы можете ввести его, но помните, что это повлияет и на другие элементы того же цвета, в результате чего могут получиться довольно неожиданные эффекты. Вы можете заранее просмотреть сделанные изменения в окне предварительного просмотра, и увидеть, как то или иное изменение повлияло на вид консоли.
|
| Экран 6. Вкладка Colors |
После того, как вы задали разные свойства, щелкните OK, чтобы закрыть диалоговое окно Properties. Все изменения применяются немедленно. На экране 7 показано, как выглядит консоль PowerShell после того, как вы ее расширили, поменяли цвет фона на белый, а текст сделали черным.
|
| Экран 7. Измененное окно PowerShell |
Ваши изменения сохранятся, пока вы перезапускаете PowerShell из места первоначального запуска. К примеру, если вы запускаете PowerShell из меню «Пуск», измените настройки свойств и перезапустите PowerShell из меню «Пуск», и ваши изменения сохранятся. Однако при запуске PowerShell «горячей клавишей», созданной для исполняемого файла, ваши изменения никак не воспроизведутся. Чтобы ваши изменения сохранялись независимо от способа запуска PowerShell, следует предпринять другие шаги, и в первую очередь изучить, как написать сценарий настройки параметров.
Сценарии настройки консоли
PowerShell – это прежде всего среда написания сценариев. Хотя о PowerShell зачастую говорят как об интерактивной консоли управления, в основном это инструмент для создания и этапа исполнения сценариев, даже если они взаимодействуют с другими системами. С помощью PowerShell можно написать любой сценарий, включая настройки, влияющие на консоль PowerShell. Возможность управлять параметрами посредством сценариев обеспечивает легкий способ применения этих настроек к большому количеству экземпляров консоли PowerShell, независимо от того, находятся они на одном компьютере или на разных. Вы можете сохранить свои настройки в файле сценария и выполнить его, когда настройки нужно будет применить. А лучше сделать так: сохранить настройки в файле (подробнее об этом будет рассказано в следующем разделе), для того чтобы они применялись в любое время, когда вы открываете PowerShell, причем не важно, используете вы исполняемый файл или «горячую клавишу» в меню «Пуск». Создание сценариев обеспечит доступ к настройкам, недоступным через свойства консоли, например к настройкам цвета предупреждающих сообщений.
Для работы со сценариями в PowerShell необходимо базовое понимание того, как обрабатываются объекты в PowerShell. Объекты формируют основу для большей части сценариев, которые вы создаете в PowerShell, даже если это незаметно на первый взгляд. Объекты обеспечивают структуру для представления данных в PowerShell. Структура состоит из свойств, методов и других элементов, к которым у вас есть доступ во время сессии PowerShell.
Например, когда выполняется команда Get-Host, PowerShell возвращает объект, содержащий подробную информацию об окружении PowerShell, в частности имя, версию и информацию, касающуюся настроек оболочки. Один из элементов объекта Get-Host – это свойство графического интерфейса UI, особый тип свойства, связанный с собственным объектом, производным от класса Microsoft. NET Framework. Объект графического интерфейса в свою очередь включает свойство RawUI, обеспечивающее доступ к специфическим свойствам консоли.
Работая с объектами PowerShell, лучше всего назначать их переменной, чтобы можно было легко получить доступ к элементам объекта. PowerShell предоставляет встроенную переменную —$host—для доступа Get-Host. Это означает, что вы используете переменную $host для доступа к свойствам UI и RawUI.
Свойство RawUI – это особый тип свойств, связанных с собственным объектом, как и со свойством UI. Свойства консоли доступны через объект RawUI. Давайте на примере рассмотрим, как это работает. Следующая команда создает переменную под именем $console и назначает экземпляр объекта RawUI переменной:
$console = $host.UI.RawUI
Отметим, что объект RawUI доступен с указанием переменной $host, затем с указанием свойства UI и с последующим указанием свойства RawUI. Если присвоить команду $host.UI.RawUI переменной $console, переменная создается как тип объекта RawUI, предоставляющий доступ к свойствам консоли, чтобы вы могли их конфигурировать.
Например, следующие команды устанавливают свойство ForegroundColor (то есть текст) и свойство BackgroundColor объекта RawUI:
$console.ForegroundColor = «black» $console.BackgroundColor = «white»
Как мы видим, необходимо только задать переменную $console с последующим именем свойства. Следом идет знак равенства (=) и новый цвет, заключенный в двойные кавычки. В данном случае задается черный цвет для текста и белый – для фона.
Когда вы выполняли эти команды, то наверняка заметили, что изменения сразу же были применены к консоли, так что окно стало выглядеть довольно странно, поскольку только самые последние строки отражают изменения в цвете текста и фона. Самый простой способ оформить ваш экран по своему вкусу, это выполнить следующую команду, чтобы очистить экран и начать с чистой строки:
Clear-Host
Теперь давайте взглянем на другое свойство RawUI — BufferSize. Как следует из названия, оно позволяет установить ширину и высоту буфера. Однако это одно из особых свойств, связанных с его собственным объектом, а значит, лучший подход – задать переменную для хранения объекта. Теперь у вас есть доступ к свойствам из этой переменной, как видно из примера:
$buffer = $console.BufferSize $buffer.Width = 130 $buffer.Height = 2000 $console.BufferSize = $buffer
Сначала вы создаете переменную the $buffer для хранения объекта BufferSize. Затем вы используете эту переменную для установки свойств Width («ширина») и Height («высота»), аналогично тому, как до этого были установлены цвета текста и фона. Тем не менее, вы должны выполнить еще один шаг, а именно присвоить значения переменной $buffer фактическому свойству BufferSize объекта RawUI.
То же справедливо и для установки размера самого окна, как видно из сценария:
$size = $console.WindowSize $size.Width = 130 $size.Height = 50 $console.WindowSize = $size
В данном случае в первую очередь вы создаете переменную под названием $size для хранения объекта, связанного со свойством WindowSize. Затем вы устанавливаете свойства Width и Height, точно так же, как и для объекта BufferSize. В заключение вы присваиваете значение переменной $size свойству WindowSize объекта RawUI. Обратите внимание, что, устанавливая размер окна, его можно сделать больше буфера (как было сказано ранее), но он не может быть больше размера, поддерживаемого вашей системой. Если вы получаете сообщение об ошибке, что ширина или высота окна не может быть больше указанного размера, настройте ваш код.
Объект RawUI содержит не все свойства, которые можно установить. Объект Get-Host также поддерживает свойство PrivateData, связанное с объектом. Объект PrivateData включает ряд свойств, относящихся к цветам шрифта и фона, применяемых для ответов консоли, например в сообщениях об ошибке или предупреждающих сообщениях.
Чтобы упростить вызов этих свойств, вы можете присвоить свойство PrivateData переменной, а затем вызвать переменную, как показано в сценарии:
$colors = $host.PrivateData $colors.VerboseForegroundColor = «white» $colors.VerboseBackgroundColor = «blue» $colors.WarningForegroundColor = «yellow» $colors.WarningBackgroundColor = «darkgreen» $colors.ErrorForegroundColor = «white» $colors.ErrorBackgroundColor = «red»
Сначала вы создаете переменную под именем $colors для хранения объекта PrivateData. Затем вы используете переменную для доступа к нескольким свойствам объекта, чтобы определить их цвета. В основном такой подход используется для установки свойств ForegroundColor и BackgroundColor объекта RawUI. Вы просто определяете значения вместо присваивания переменной $colors свойству PrivateData, как делали в случае с BufferSize и WindowSize.
Определив все свойства, снова выполните команду Clear-Host:
Clear-Host
Ваш экран теперь будет выглядеть так, как показано на экране 7. Теперь можно протестировать новый формат, выполнив ряд команд. Следующие команды создают несколько типов сообщений, которые будут отображены в цветах, заданных вами ранее:
Write-Output «This is a test message.» Write-Verbose «This is a verbose message.» -Verbose Write-Warning «This is a warning message.» Write-Error «This is an error message.»
В целом используемые здесь команды не требуют пояснений. Команда Write-Output выводит стандартные сообщения на фоне и в шрифте по умолчанию. Остальные три команды создают сообщения, тип которых отражен в их названиях. На экране 8 показано, как выглядит консоль после создания тестовых сообщений.
|
| Экран 8. Изменение настроек цвета стандартных сообщений |
Обратите внимание, что в первом сообщении используется черный текст на белом фоне, а другие сообщения отражают цвета, заданные для свойств, связанных с объектом PrivateData.
Добавление сценария настройки консоли в файл настроек
Возможность создания сценариев настроек консоли упрощает применение настроек в любое время, когда вам нужно. Вы можете сохранить их в файле сценария и вызвать файл, когда это необходимо. Или же можно вырезать и вставить сценарий в консоли и запускать команды этим способом. В любом случае вам необходимо иметь доступ к своему файлу сценария в любое время, чтобы применить настройки к консоли. Удобнее всего сохранить сценарий в одном из файлов настроек PowerShell.
PowerShell поддерживает четыре типа файлов настроек и выполняет их при запуске в определенном порядке. Однако подробное рассмотрение файлов настроек PowerShell выходит за рамки данной статьи. Итак, давайте создадим файл, относящий к текущему пользователю.
Чтобы узнать, где должен располагаться файл, вы можете применить встроенную переменную $profile для возвращения пути и имени, используемого для файла. Для этого просто запустите команду:
$profile
Переменная возвращает полное имя файла, например C:UsersAdministratorDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1. Тем не менее, основываясь лишь на том, что переменная $profile указывает на файл, нельзя сделать вывод о существовании файла. Поэтому следующим шагом будет запуск команды:
Test-Path $profile
Команда Test-Path проверяет наличие файла. Если он существует, команда возвращает True; если нет, возвращается False. В последнем случае вам нужно выполнить следующую команду, прежде чем вы предпримите какие-либо другие действия:
New-Item -path $profile -type file -force
Команда New-Item создает файл на основе аргумента, переданного в параметре -path, в данном случае это переменная $profile. Параметр -type указывает, что создаваемый элемент — не что иное, как файл (как и определено ключевым словом «файл»). Параметр -force предписывает команде создать файл.
После того, как файл создан, вы можете повторить команду Test-Path и убедиться, что o она возвращает True. Готовый файл можно редактировать с помощью команды:
notepad $profile
Данная команда открывает пустой файл в Notepad. Затем вы можете добавить любой сценарий конфигурации. Добавив код для настройки, рассмотренный нами ранее, вы получите файл, который будет выглядеть, как на экране 9.
|
| Экран 9. Файл с настройками окна консоли |
Однако учтите, что сценарий включает в себя команду:
Set-Location C:
Эта команда всего лишь предписывает PowerShell установить корневую папку в C:. Вы можете указать свою папку. Можно также задать «горячую клавишу» для быстрого перехода к корневой папке или определить корневую папку во время сессии PowerShell. Однако ее добавление к вашему файлу настроек помогает сохранить все настройки в одном месте. Кроме того, можно включить дополнительные команды в файл, например определить переменные, которые вы захотите использовать в каждой сессии.
Когда вы убедитесь, что ваш файл содержит все необходимое, просто сохраните все установки и закройте Notepad. Затем вы должны перезапустить PowerShell для применения настроек. Вы можете перезапустить PowerShell из любого местоположения. Тот же самый файл настроек будет применяться в каждом случае. Фактически вы даже можете сохранить свой файл в другой папке, так что сможете применить настройки к другим экземплярам PowerShell, и при этом не имеет значения, на каком компьютере вы работаете. Этот подход также позволяет разделять общий файл с другими пользователями. Не забудьте проверить документацию PowerShell, которая содержит более подробную информацию о работе с файлами настроек.
Если вы еще не установили PowerShell для запуска файлов сценариев (содержащих файлы настроек), в первый раз перезапуская PowerShell, вы можете получить сообщение об ошибке (см. экран 10). По существу, это говорит о том, что ваши политики этапа исполнения не были правильно заданы для поддержки файлов сценария.
|
| Экран 10. Ошибка при запуске файла с настройками |
Для запуска сценария выполните команду:
Set-ExecutionPolicy RemoteSigned
Эта команда позволяет запускать локальные или удаленные сценарии, имеющие цифровую подпись надежного издателя. Помните, однако, что политика этапа исполнения регулирует возможность или невозможность исполнения сценариев на вашей системе. Неправильные настройки поставят под угрозу безопасность системы. Убедитесь, что вы внимательно прочитали информацию о политиках этапа исполнения в документации PowerShell, прежде чем вносить какие-либо изменения в систему.
Консоль для пользователя
PowerShell обеспечивает достаточную гибкость при настройке консоли. Вы можете установить свойства консоли, запускать сценарии для настройки параметров или изменять свой файл настроек, чтобы они применялись всякий раз при запуске PowerShell. Добавление соответствующего сценария в файл настроек даст вам наибольшую гибкость при наименьших затратах на техническое обслуживание в течение долгого времени. Файл настроек сохранит ваш сценарий, а значит, вам не придется повторно применять настройки всякий раз при запуске PowerShell. Такой подход обеспечивает больше возможностей, чем свойства консоли, и для вас не будет играть никакой роли, запускаете вы PowerShell из меню «Пуск» или откуда-то еще. Благодаря продуманной среде для написания сценариев, которую предусматривает PowerShell, вам ничто не мешает сделать консоль настолько удобной в работе, насколько это возможно.
Method to How to Change PowerShell Look on Windows 10 with steps. – Windows PowerShell is a command-line shell that allows you to customize appearance settings of its own. If you work on PowerShell very often, then changing its look is definitely something you will try to do it. You can modify the size of the window or use another color for the text for the interface of this tool. Others may want to make the font look little bigger or smaller as per requirement and so on. You might want to customize another important tool with this guide – How to Change Color and Font of Command Prompt in Windows 10, 8.
In this guide, we show you the instructions to Change PowerShell Look in Windows 10. To customize the appearance settings of the console, you need to get access to its Properties. The Windows PowerShell Properties includes various settings related to the console.
Now, let us begin the guide and explore the areas that can change the look of the console as per your preference.
Ways to Change PowerShell Look in Windows 10
Step 1 – Right-click Windows logo on the far left of the taskbar and from the list of options that pops up, locate and click Windows PowerShell.
For reference, you can read our guide on How to Run PowerShell as administrator in Windows 10.
Step 2 – Once Windows PowerShell opens on the PC screen, you will notice the application’s icon on the upper left corner of the window. So, right-click on the icon and when few options show up, select Properties.
Step 3 – Windows PowerShell Properties box will pop-up with few tabs. To change PowerShell Look in Windows 10, you can set a different font, modify the window size, and assign different colors and lastly can manage its opacity level.
Now, let us walk through the areas that will change PowerShell Look in Windows 10.
Font
Step 1 – On the Windows PowerShell Properties box, switch to the second tab, Font. Here, you will find four different sections related to the font.
Step 2 – To increase or decrease the size of the font, select the number accordingly in the Size section. While doing so, you will get to see its preview in the Windows Preview section.
Step 3 – Moving ahead, if you are not happy with the default font, browse the list in the Fonts section and pick up the one you prefer.
Step 4 – If you want the fonts to appear in bold, check the box Bold fonts. Once you are done with the changes, click OK button to implement the font look of PowerShell in Windows 10.
Follow an article on the utility of this tool on Create Restore Point on Windows 10 Using PowerShell.
Window Size
Step 1 – To change the windows size of PowerShell, go to the third tab Layout.
Step 2 – In this tab, you will find three sections. The second section Window Size includes settings for Width and Height. Use the arrows of both the options to increase or decrease the width and height of the window.
Step 3 – Finally, click OK to implement the new size of the window.
Note – You will notice the preview of the changes immediately on the Window Preview section.
You can also Open Command Prompt in Small Size by Default on Windows 10.
Colors
Step 1 – The last tab of Windows PowerShell Properties box is Colors and it lets users set text and background colors for the console. So, switch to the last tab Colors.
Step 2 – The first four radio buttons are for Screen Text, Screen Background, Popup Text and Popup Background.
Screen Text – Select this option and assign a new preferable color for the text from the list that appears just underneath the options.
Screen Background – Use any other color of your choice as the background for the application.
Popup Text – Change the color of the pop-up text when any dialog box emerges when you run commands on Windows PowerShell.
Popup Background – This allows you to set another color as the background of the dialog box that pops up.
Step 3 – After modifying the colors you can also set the Opacity level. The minimum transparency is 30% and the maximum opacity that you can set is 100%. So, use the slider and adjust the level as per preference.
Step 4 – After modifying all the colors and adjusting the opacity level, click OK button to Change PowerShell Look in Windows 10.
Pursue another similar guide on Add Background Color to Start, Action Center, Taskbar on Windows 10.
So, after finishing the above steps and making changes in the mentioned areas will completely Change PowerShell Look in Windows 10.
Conclusion
Not only PowerShell but you can also make changes in the Command Prompt and give a personalize touch to it also. This generally looks great when you are working on your own PC where everything is well organized by you. If you have more options that can Change PowerShell Look in Windows 10, do write them in the comments form.
-
makc3000 😊excited
- IT
- Cancel
В данной статье хочу поговорить об изменении вида консоли PowerShell.
Что мы будем с ней делать:
1. Изменение цвета шрифта и фона.
2. Изменение размера окна
3. Изменение заголовка окна
Изменение цвета шрифта и фона.
За цвет фона отвечает переменная $Host.UI.RawUI.BackgroundColo
- Black (черный)
- DarkBlue (темно-синий)
- DarkGreen (темно-зеленый)
- DarkCyan (темно-лазурный)
- DarkRed (темно-красный)
- DarkMagenta (темно-пурпурный)
- DarkYellow (темно-желтый)
- Gray (серый)
- DarkGray (темно-серый)
- Blue (синий)
- Green (зеленый)
- Cyan (лазурный)
- Red (красный)
- Magenta (пурпурный)
- Yellow (желтый)
- White (белый)
Цвет шрифта меняется переменной $Host.UI.RawUI.ForegroundColo
Таким образом, задав переменные
$Host.UI.RawUI.BackgroundColor = «Gray»
$Host.UI.RawUI.ForegroundColor = «DarkGreen»
можно получить следующую картину:
Для того, чтобы настройки цвета сохранились при следующем запуске консоли, необходимо сохранить их в профиле.
Для начала выясним где хранится профиль:
$profile
Теперь создайте текстовый файл с перечисленными выше переменными и сохраните их по пути, указанном в $profile
В следующий раз для изменения профиля можно использовать команду, которая открывает с помощью блокнота ваш профиль:
notepad $profile
System/Cloud Administrator
As our skill as a PowerShell developer grows, and the complexity of our scripts increase, we start incorporating new elements to improve the user experience. That might include changing fonts, the background color, or the console window title. This task was already discussed in a blog post from 2004, Can I Change the Command Window Title When Running a Script?. However, the post uses VB script, and changes the title if you are willing to open a new console. Today we learn how to do it with PowerShell, using the same window.
Methods
We will explore two ways of changing the console window title.
- The
$Hostautomatic variable. - Console virtual terminal sequences.
The $Host automatic variable
This variable contains an object that represents the current host application for PowerShell. This object contains a property called $Host.UI.RawUI that allows us to change various aspects of the current PowerShell host, including the window title. Here is how we do it.
$Host.UI.RawUI.WindowTitle = 'MyCoolWindowTitle!'
And with just a property value change our window title changed.
For as simple and straight forward the previous method is, there is something to keep in mind. The $Host automatic variable is host dependent.
Virtual terminal sequences
Console virtual terminal sequences are control character sequences that can control various aspects of the console when written to the output stream. The terminal sequences are intercepted by the console host when written into the output stream. To see all sequences, and more in-depth examples go to the Microsoft documentation page. Virtual terminal sequences are preferred because they follow a well-defined standard, and are fully documented. The window title is limited to 255 characters.
To change the window title the sequence is ESC]0;<string><ST> or ESC]2;<string><ST>, where
ESCis character 0x1B.<ST>is the string terminator, which in this case is the “Bell” character 0x7.
The bell character can also be used with the escape sequence \a. Here is how we change a console window title with virtual terminal sequences.
$title = 'Title with terminal sequences!'
Write-Host "$([char]0x1B)]0;$title$([char]0x7)"
# Using the escape sequence.
Write-Host "$([char]0x1B)]0;$title`a"
Conclusion
PowerShell is a versatile tool that often provides multiple ways of achieving the same goal. I hope you had as much fun reading as I had writing. See you in the next one.
Happy scripting!
Useful links:
- PowerShell automatic variable
- xterm terminal emulator
- Escape sequences
Test our PowerShell module:
- WindowsUtils
Author
System/Cloud Administrator
Последнее время стало модным использовать продвинутую командную строку в PowerShell или bash/zsh. В этой статье я расскажу, что нужно сделать в PowerShell, WSL, Windows Terminal и VS Code, чтобы кастомизировать командную строку и воспользоваться всеми её преимуществами.
Краткий план действий:
- Установка шрифта Nerd
- Установка и настройка Oh My Posh для PowerShell
- Установка и настройка Oh My Posh для WSL
- Настройка Windows Terminal для правильного отображения глифов
- Настройка Windows VS Code для правильного отображения глифов
Из официальной документации я мало что понял. Пришлось разбираться самому. Поэтому сейчас я по порядку опишу путь, который пришлось пройти мне, чтобы заставить всё работать как надо.
Установка шрифта Nerd
На картинке выше, показаны некоторые варианты оформления (тем) командной строки. На самом деле таких тем много, и вы можете их изменять и создавать свои. Как вы видите, почти все варианты содержат глифы (графические символы). Если шрифт, который используется в терминале, не содержит соответствующие глифы, в командной строке могут появиться символы замены, например квадрат — ▯ или знак вопроса �. Чтобы в терминале отображались все глифы, нужно сначала установить шрифт Nerd с сайта проекта https://www.nerdfonts.com/.
Nerd Fonts улучшает предназначенные для разработчиков шрифты с большим количеством глифов (значков). В частности, чтобы добавить большое количество дополнительных глифов из популярных «культовых шрифтов», таких как Font Awesome, Devicons, Octicons и других.
Посмотрев несколько шрифтов, я остановил свой выбор на Caskaydia Cove Nerd Font.
Все шрифты можно посмотреть по ссылке https://www.nerdfonts.com/font-downloads.
Скачав нужный шрифт, нужно его установить. Заходим в архив, выбираем нужный шрифт и открываем его.
А затем, в открывшемся окне, нажимаем кнопку Install
Шрифт установлен, можно переходить к следующему шагу — установке Oh My Posh.
Установка и настройка Oh My Posh для PowerShell
Как сказано в официальной документации, Oh My Posh — это настраиваемый механизм командной строки, для любой оболочки, которая имеет возможность настроить командную строку с помощью функции или переменной. Чтобы воспользоваться этим механизмом в PowerShell, нужно установить и импортировать соответствующий модуль.
Но это может не получится, если параметр ExecutionPolicy в PowerShell установлен в Restricted или иное значение, которое не позволяет запускать удалённые скрипты. Что бы проверить текущие политики, выполните команду Get-ExecutionPolicy. Чтобы их изменить, запустите PowerShell от имени администратора и выполните команду и нажмите Y, а затем Enter для подтверждения.
Set-ExecutionPolicy RemoteSigned
Это позволит вам установить нужный модуль.
ВНИМАНИЕ: После изменения ExecutionPolicy закройте окно
PowerShell, которое вы открывали с повышенными привелегиями и откройте новое, с правами обычного пользователя.
Чтобы установить модуль Oh My Posh выполните следующую команду.
Install-Module oh-my-posh -Scope CurrentUser
Если пакетный менеджер NuGet ещё не установлен, то PowerShell запросит разрешение на его установку. Введите Y и нажмите Enter.
Далее вас предупредят, что вы собираетесь ставить модуль из недоверенного репозитория PSGallery. На самом деле всё нормально. Просто изначально все репозитории считаются недоверенными. Можете смоело продолжать установку введя Y и нажав Enter.
Обновите профиль PowerShell, отредактировав файл Microsoft.PowerShell_profile.ps1. Самым простым способом открытия этого файла, явялется выполнение следующей команды.
Если файла не существует, то система предложет вам его создать. Нажмите Yes в диалоговом окне.
Добавьте следующий фрагмент в конце файла. Вместо jandedobbeleer можете написать название другой темы. Я для себя выбрал именну эту.
Import-Module oh-my-posh
Set-PoshPrompt -Theme jandedobbeleer
Сохраните и закройте файл. Теперь каждый новый экземпляр PowerShell будет запущен с импортом Oh My Posh и установкой темы командной строки.
Запустите новый экземляр PowerShell. При первом запуске вы можете увидеть процесс импорта установленного ранее модуля Oh My Posh. Он выполниться один раз. Все последующие запуски PowerShell будут проходить как обычно.
После запуска вы увидите обновлённую командную строку, как показано на картинке ниже. Обратите внимание, что не все символы отображаются корректно. Это связано с тем, что в терминале PowerShell сейчас используется шрифт, который не поддерживает глифы.
Зайдите в настройки терминала PowerShell и выберите шрифт с поддержкой глифов, который вы установили ранее. Или установите его сейчас, если вы пропустили этот шаг.
Как установить шрифт с поддержкой глифов, смотри в начале статьи.
Как только вы установите нужный шрифт, вы сразу же увидите правильное отображение командной строки.
Установка и настройка Oh My Posh для WSL
Если вы используете Windows 10 версии 2004 и выше (Build 19041 и выше) или Windows 11, и у вас ещё не установлен WSL, но вы хотите его установить, то запустите команду
wsl --installв терминале powershell с повышенными привилегиями, а после установки WSL перезапустите Windows. После перезапуска, установка продолжится. Более подробные сведения об установке и настройке WSL смотрите в моей статье “Установка и настройка WSL”(comming soon...)
Для установки Oh My Posh в Linux (WSL) нам потребуется пакетный менеджер Homebrew. Поэтому сначала запустите WSL и установите там Homebrew, выполнив следующую команду и следуйте инструкциям в окне терминала.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
После того, как Homebrew будет установлен, нужно выполнить неколько команд, чтобы добавить Homebrew в PATH и в профиль командной оболочки bash.
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.bash_profile
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> ~/.profile
После установки и настройки Homebrew, можно приступать к установке Oh My Posh. Выполните следубщие команды.
brew tap jandedobbeleer/oh-my-posh
brew install oh-my-posh
Установите пакет unzip. Он понадобится для распаковки архива с темами. Этот шаг можно пропустить, если вы скачаете тему самостоятельно, извлекёте из архива файл с темой для Oh My Posh и положите его в домашнюю директорию пользователя. Иначе, выполните нижеследующие команды.
Теперь нужно скачать и распаковать темы.
mkdir -p $(brew --prefix)/oh-my-posh/themes
wget https://github.com/JanDeDobbeleer/oh-my-posh/releases/latest/download/themes.zip -O $(brew --prefix)/oh-my-posh/themes/themes.zip
unzip $(brew --prefix)/oh-my-posh/themes/themes.zip -d $(brew --prefix)/oh-my-posh/themes
chmod u+rw $(brew --prefix)/oh-my-posh/themes/*.json
rm $(brew --prefix)/oh-my-posh/themes/themes.zip
Скопируйте файл темы в домашнюю директорию.
cp $(brew --prefix)/oh-my-posh/themes/jandedobbeleer.omp.json ~/jandedobbeleer.omp.json
А затем запустите oh-my-posh.
test -e ~/jandedobbeleer.omp.json && eval "$(oh-my-posh --init --shell bash --config ~/jandedobbeleer.omp.json)"
Вы увидите, что командная строка изменилась. Если она отображается не правильно, то измените шрифт в настройках вашего терминила, как говорилось ранее.
На этом установка и настройка Oh My Posh для WSL завершена.
Настройка Windows Terminal для правильного отображения глифов
После запуска Windows Terminal вам нужно будет тольк сменить шрифт, иначе командная строка будет отображаться без глифов.
Чтобы это исправить, зайдите в настройки Windows Terminal, выберите профиль по умолчанию и на вкладке Appearance установите нужный шрифт. Затем нажмите Save и откройте новое окно терминала.
На этот раз командная строка будет отображать глифы, но есть одна проблема. При открытии WSL-терминала, первая командная строка отображается с дефектом. В ней присутствуют пропуски. Я не понял почему это происходит. Если нажать Enter, то следующая строка отобразиться нормально.
Я не придумал ничего лучше, чем добавить команду очистки экрана в файл .profile, чтобы она выполнялась каждый раз, при запуске сессии. Вы тоже можете это сделать, выполнив следующую команду.
echo "clear" >> ~/.profile
Теперь, если переоткрыть терминал, то всё будет выглядеть как надо.
И на этом часть по настройке Windows Terminal завершена. Посмотрите другю мою статью, где я описываю, как настроить более приятный вид Windows Terminal (comming soon...).
Настройка VS Code для правильного отображения глифов
Если вы откроете VS Code, и в нём откроете Terminal, то вы увидите, что глифы в нём тоже отображатся неправильно. Всё дело в настройках шрифтов.
Зайдите в настройки, выберите Terminal, пролистайте до настройки Integrated: Font Family и введите название своего шрифта. В моём случае это CaskaydiaCove NF. Полное название настройки terminal.integrated.fontFamily, можете вбить её в строку поиска настроек, для быстрого перехода к ней.
Если вы используете плагин Remote - WSL в VS Code, то возможно вам пригодится ещё один совет. Дело в том, что когда вы откроете новую сессию в WSL в VS Code, то заметите, что там ничего не поменялось. VS Code, при запуске bash в WSL, не читает данные из файла .profile, которые мы туда поместили.
Чтобы это исправить, можно ввести команду
Параметр -l (согласно справочной странице) заставляет «bash действовать так, как если бы он был вызван как оболочка входа в систему». Оболочки входа читают определенные файлы инициализации из вашего домашнего каталога, такие как
.profile.
Но чтобы не делать это каждый раз вручную, давайте изменим конфигурацию VS Code.
К уже имеющимся настройкам, если они есть, добавьте следующие.
"terminal.integrated.defaultProfile.linux": "bash",
"terminal.integrated.profiles.linux": {
"bash": {
"path": "bash",
"args": [
"-l"
]
}
}
Сохраните и перезапустите WSL-сессию. На этот раз у Вас всё должно отображаться правильно.
Вот и всё, чем я хотел поделиться в этой статье. Оставльяйте свои комментарии и отзывы. Всем мира и добра!
