Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Розширення можливостей консолі 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 модуль оновлюватися не буде, а в перспективі може бути зовсім звідти вилучено..