Ведение истории команд в PowerShell v5 | Windows для системных администраторов

Ведение истории команд в PowerShell v5

Одним из существенных недостатком командной строки Powershell, по сравнению с той же bash, была невозможность прямо из коробки вести историю выполненных команд. История команд сохранялась только в текущей сессии Powershell, а при закрытии PowerShell или перезагрузке компьютера, историй команд нигде не сохранялась. Этот недостаток был исправлен в PowerShell v5, представленном в Windows 10.

Теперь нажав клавишу со стрелкой вверх можно перейти к последней введенной вами команде или более поздним. Оболочка PowerShell по-умолчанию запоминает последние 4096 команд, которые сохраняются в текстовом файле, расположенном в профиле каждого пользователя %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt. История ведется отдельно для консоли PowerShell, отдельно для ISE.

Powershell 5 - история команд в консоли

Поиск в истории команд можно выполнить с помощью комбинации клавиш CTRL+R (поиск в обратном направлении) и CTRL+S (поиск вперед). В истории команд будет выполнен поиск введенного текста на любой позиции (в отличии от поиска в консоли PowerShell по F8 или Shift+F8, которые ищут совпадения только с начала строки) и подсвечен подходящий вариант.

Поиск в истории команд Powershell

Примечание. Функционал ведения истории команд в PowerShell 5 основан на стороннем модуле PSReadLine, существенно расширяющим функционал консоли PowerShell. В Windows 10 он находится в каталоге C:\Program Files\WindowsPowerShell\Modules\PSReadline и автоматически импортируется при старте консоли PowerShell. PSReadLine осуществляет подсветку синтаксиса в консоли, отвечает за возможность использования выделения текста мышкой и его копирование/вставку с помощью CTRL+C и CTRL+V (с новыми возможностями командной строки можно познакомиться здесь).

Настройка истории команд выполняется при помощи командлетов Get-PSReadlineOption и Set-PSReadlineOption. Текущие настройки  можно получить с помощью такой конструкции:

Get-PSReadlineOption | select HistoryNoDuplicates, MaximumHistoryCount, HistorySearchCursorMovesToEnd, HistorySearchCaseSensitive, HistorySavePath, HistorySaveStyle

Get-PSReadlineOption

Нам могут быть интересны настройки следующих параметров:

HistoryNoDuplicates – нужно ли сохранять одинаковые команды

MaximumHistoryCount – максимальное число сохраненных команд

HistorySearchCursorMovesToEnd — нужно ли переходить в конец команды при поиске

HistorySearchCaseSensitive – определяет регистрозависим ли поиск

HistorySavePath – файл, в который сохраняется история команд

HistorySaveStyle – особенности сохранения команд:

  • SaveIncrementally — команды сохраняются при выполнении (по-умолчанию)
  • SaveAtExit - сохранение истории при закрытии консоли
  • SaveNothing — отключает ведение истории команд

Изменить настройки модуля PSReadLine можно с помощью команды Set-PSReadlineOption, например:

Set-PSReadlineOption -HistorySaveStyle SaveAtExit

Set-PSReadlineOption

Примечание. PSReadLine не входит в состав отдельно устанавливаемого PowerShell 5 для предыдущих версий Windows.

Таким образом, возможность сохранения истории выполненных команд в PowerShell 5.0 — это еще один аргумента отказа от cmd в пользу консоли PoSh.

Еще записи по теме: PowerShell, Windows 10
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00144 sec