PowerShell History und Vorschläge nutzen mit PSReadLine
Inhaltsverzeichnis:
Das PowerShell-Modul PSReadLine erleichtert das Arbeiten mit der PowerShell, da es für bereits eingegebene Befehle eine “Vorhersage” anzeigen kann. Das sieht dann z.B. so aus:
Drückt man die Pfeiltaste nach rechts, wird der Befehl entspr. vervollständigt. Um dieses Feature zu aktiveren, sollte man am besten erstmal die neueste Version des Moduls installieren. Dies muss in einer administrativen PowerShell-Session gemacht werden:
Installieren des PSReadLine-Moduls
Hiermit könnt ihr euch die verwendete Version ausgeben lassen:
Get-Module PSReadline
Anzeige der verwendeten PSReadLine-Version
Wenn ihr die PowerShell-Session einmal neu startet, solltet ihr nun wie oben zu sehen die entspr. Vorschläge aus eurer History angezeigt bekommen.
Farbe der Vorhersage ändern
Wem die Farbe der Vorschläge zu dunkel ist, der kann die Farbe ganz einfach anpassen. Als Vorschlag z.B. ein etwas besser lesbares grau:
Set-PSReadlineOption -Colors @{ „InlinePrediction“=“`e[90m“ }
Geänderte Farbe der Vorschlags-Vervollständigung
Vorschläge per Cursor-Tasten auswählen
Um dieses nette Feature zu nutzen, drückt ihr einfach einmal die Taste F2. Dann könnt ihr mit den Pfeiltasten zu den entspr. Befehlen aus der Vorschlagsliste navigieren:
Befehls-History per Pfeiltasten auswählen
Sensitive Daten nicht in der History-Datei speichern
Damit sensible Daten wie Passwörter oder Keys nicht in der History-Datei gespeichert werden, kann man einen History Handler anlegen:
Set-PSReadLineOption -AddToHistoryHandler {
param([string]$line)
$sensitive = "password|asplaintext|token|key|secret"
return ($line -notmatch $sensitive)
}
Eingaben mit diesen Inhalten werden dann nicht in der History-Datei abgespeichert.
Suche in der History
Um in seiner eigenen History nach bestimmten Befehlen zu suchen, kann man die Tastenkombination Strg+R verwenden.
Daraufhin öffnet sich die Backward-Suche und man kann beliebige Begriffe eingeben:
Suche in der History
Wo wird die History gespeichert?
Das lässt sich ganz einfach hiermit herausfinden:
(Get-PSReadLineOption).HistorySavePath
Pfad zur PowerShell-History