Расширьте возможности PowerShell с помощью модуля PSReadLine

PowerShell — одна из лучших функций операционной системы Windows, позволяющая делать множество невероятных вещей! Тем не менее, в интерфейсе PowerShell нелегко ориентироваться. Хотя вы можете использовать сторонний редактор вместо интерфейса PowerShell по умолчанию, вы все равно можете улучшить существующий интерфейс. Одним из инструментов для улучшения PowerShell является модуль PSReadLine. Инструмент добавляет такие функции, как подсветка синтаксиса, отслеживание истории команд и т. д.
Узнайте, как работает модуль PSReadLine, из этой статьи.
Как включить модуль PSReadLine
Модуль PSReadLine существует уже давно. В начале своей истории пользователям модуля приходилось загружать его с GitHub или из галереи PowerShell. Тем не менее, теперь вы можете легко загрузить модуль, даже не выходя из PowerShell. Вам даже не придется вручную запускать процесс загрузки. Просто откройте сеанс PowerShell с повышенными правами и введите следующую команду:
Если модуль существует на вашем компьютере, эта команда загрузит его в память. В противном случае эта команда предложит вам загрузить модуль, как показано на рисунке ниже:

Теперь давайте взглянем на некоторые функции модуля.
Возможности главного модуля
Как я уже упоминал, модуль PSReadLine — отличный инструмент для улучшения вашего интерфейса PowerShell. Давайте обсудим 2 из его лучших особенностей.
1. Подсветка синтаксиса
Одной из основных функций модуля является подсветка синтаксиса. На первый взгляд может показаться, что это не имеет большого значения, поскольку PowerShell уже много лет поддерживает подсветку синтаксиса. Тем не менее, что отличает PSReadLine, так это то, что он дает вам возможность выбирать свои собственные цвета.
Одним из элементов, который многим нравится изменять, являются встроенные прогнозы PowerShell. Пользователи могли вручную включить встроенные прогнозы до того, как Microsoft удалила это требование в своей последней версии.
К сожалению, изменить цвет встроенного предсказания не так просто, как можно было бы ожидать. Для этого вам нужно указать цвет выделения и цвет встроенного предсказания. Цвет выделения — это цвет, который используется, когда вы нажимаете стрелку вверх, чтобы повторить предыдущую команду. Этот цвет должен быть введен как шестнадцатеричное значение. Цвет встроенного предсказания можно ввести как имя цвета. Например, если вы хотите установить красный цвет выделения и синий цвет встроенного предсказания, вы должны использовать эту команду:
2 . История команд
Еще одна полезная функция — возможность отслеживать использование команд и составлять историю команд. Хотя история использования команд может быть полезна для криминалистических целей, функция встроенных прогнозов также использует историю для прогнозирования других команд.
Если вы хотите просмотреть историю команд, просто введите Get-History. Интересно, что вы также можете использовать другую команду под названием Invoke-History для повторного запуска команд, которые вы использовали в прошлом. Вход в Invoke-History сам по себе вызывает выполнение вашей последней использовавшейся команды. Тем не менее, вы также можете выполнять старые команды.
Команда Get-History отображает номер рядом с каждой командой. Когда вы используете команду Invoke-History, вы можете включить параметр ID и номер, связанный с командой, которую вы хотите запустить. Например, если вы хотите запустить команду номер 5, введите:

Нижняя линия
Модуль PSReadLine предлагает значительное улучшение интерфейса PowerShell по умолчанию. Тем не менее, этот удобный модуль не предлагает всех функций, которые вы можете найти в сторонних редакторах. Если вы ищете действительно многофункциональную среду, вам лучше использовать сторонние инструменты для кодирования.
И наоборот, самая веская причина для использования модуля PSReadLine заключается в том, что он встроен в PowerShell. Таким образом, вам не нужно беспокоиться о покупке, загрузке или установке сторонних инструментов.
Вы также можете найти ответы на оставшиеся вопросы о настройке PowerShell в разделах часто задаваемых вопросов и ресурсов ниже!
Часто задаваемые вопросы
Почему PowerShell 7.0 не загружает PSReadLine?
Возможно, вы используете программу чтения с экрана. Согласно Microsoft, PowerShell 7.0 и выше автоматически предотвращает загрузку PSReadLine. Это если вы используете программу чтения с экрана.
Почему я получаю сообщение об ошибке при вводе команды Install-Module PSReadLine?
Старые версии PowerShell требовали, чтобы вы вручную загружали модуль PSReadLine перед его использованием. Таким образом, ваша копия PowerShell может быть устаревшей.
Почему Microsoft не включает PSReadLine в Windows, а не заставляет вас ее загружать?
В некоторых случаях PowerShell включает модуль. Например, PowerShell 5.1 включает PSReadLine версии 2.0.0. Точно так же PowerShell 7.5 включает PSReadLine 2.1.0.
Почему мои модификации исчезают, когда я закрываю PowerShell?
Когда вы используете PSReadLine для изменения внешнего вида или поведения PowerShell, внесенные вами изменения будут действовать только в течение вашего сеанса. Некоторые люди пишут изменения, чтобы упростить задачу. Это делается для того, чтобы их настройки применялись каждый раз при запуске PowerShell.
Как я могу узнать о дополнительных возможностях настройки?
PSReadLine предлагает множество вариантов настройки. С каждой новой версией вы также найдете дополнительные параметры. Один из лучших способов узнать о доступных параметрах — использовать командлет Get-PSReadLineOption. Вам потребуется импортировать модуль PSReadLine, прежде чем этот командлет заработает.