Розширення можливостей консолі PowerShell за допомогою PSReadLine.
В Windows 10 у консолі PowerShell з'явилося багато нових можливостей, деякі з яких забезпечуються модулем PSReadLine. PSReadLine - це сторонній PowerShell-модуль, призначений для розширення функціоналу консолі PowerShell. Використання цього модуля дозволяє полегшити роботу в консолі і зробити її більш комфортною.
Дані про модуль можна вивести командою:
Get-Module PSReadLine | fl
Функціонал
PSReadLine має ряд корисних можливостей, таких як підсвічування синтаксису і попередження про помилки при написанні команд. Так в прикладі нижче пропущена лапки і модуль сигналізує про це.
Також в модулі є механізм автозаповнення. Для прикладу вводимо команду Get-Process і натискаємо Ctrl + Space, потім переміщаючись за допомогою стрілки вибираємо потрібний варіант з меню і тиснемо Enter. Дуже зручно, особливо якщо не пам'ятаєш точні назви параметрів.
При необхідності введення многострочной команди можна скористатися сполучення клавіш Shift + Enter, яке відкриває новий рядок для продовження введення команди.Що примітно, тут можна вільно переміщатися між рядками і редагувати текст, що знаходиться на різних рядках.
окремо варто згадати про історію команд. Взагалі в PowerShell є своя історія команд, проте PSReadLine веде свою, по якій дуже зручно здійснювати пошук.Пошук здійснюється за допомогою поєднання клавіш Ctrl + R (пошук назад) і Ctrl + S (пошук вперед). Для пошуку треба просто набрати потрібну поєднання клавіш і в рядку пошуку ввести частину команди.
І що особливо примітно, історія команд зберігається в текстовий файл і, відповідно, може бути використана в різних сесіях, а не тільки в поточній.
Налаштування
Більшість функцій в PSReadLine можуть налаштовуватися. Для прикладу виведемо список параметрів, що відповідають за історію команд:
Get-PSReadlineOption | fl * history *
Тепер візьмемо параметр HystoryNoDuplicates, що відповідає за виключення дублюючих команд з історії. За замовчуванням він вимкнений.Включимо його командою:
Set-PSReadlineOption -HistoryNoDuplicates
Сполучення клавіш також можуть бути налаштовані під себе. Подивитися поточні поєднання можна командою Get-PSReadlineKeyHandler,
а змінити - Set-PSReadlineKeyHandler. Для прикладу призначимо на Ctrl + Q перехід в початок, а на Ctrl + W - перехід в кінець історії команд:
Set-PSReadlineKeyHandler -Key ^ Q -Function BeginningOfHistory
Set-PSReadlineKeyHandler -Key ^ W -Function EndOfHistory
Тепер натискаємо Ctrl + Q і отримуємо найпершу з введених команд.
Установка
В Windows 10 модуль PSReadLine входить до складу системи, для інших ОС його треба встановлювати окремо . Зробити це можна кількома різними способами. Найбільш зручний спосіб - це установка зі сховищ PowerShell за допомогою модуля PowerShellGet (раніше відомого як OneGet).PowerShellGet входить до складу PowerShell v5 і Windows Management Framework 5, а для більш ранніх версій PowerShell (v3 і v4) може бути завантажений і встановлено окремо.
PowerShellGet дозволяє завантажити і встановити модуль однієї простої командою Install-Module PSReadLine . Крім того, за допомогою команди Update-Module можна оновлювати модуль до нової версії.
Як варіант, PSReadLine можна встановити з GitHub, за допомогою стороннього модуля PsGet або вручну завантаживши і розпакувати його в папку з іншими модулями. Але, як заявляє автор модуля, це Нерекомендовані спосіб, оскільки в GitHub модуль оновлюватися не буде, а в перспективі може бути зовсім звідти вилучено.П>.