PSReadLine egyike azoknak a moduloknak, amelyek rendszeres használatig nem mutathatják meg azonnal hasznosságukat. Ha gyakran használja a PowerShell parancssort, a PSReadLine sokkal könnyebbé teheti az életét. A PowerShell verzióiban, még a Windows PowerShell 5 alatt, a PSReadLine továbbra is új szolgáltatásokat és segédprogramokat kínál. A Unix világban a GNU Readline tiszteletre méltó örökségére építve a PSReadLine további szolgáltatásokat ad a PowerShell parancssori élményéhez, mint például többsoros szerkesztés, szintaxis színezés, prediktív IntelliSense, gazdagabb előzménytámogatás és alternatív szerkesztési módok.
A PSReadLine frissítése és betöltése
A PowerShell legfrissebb verzióiban a PSReadLine csomagban van. A Windows PowerShell 5.0-ig beletartozva minden következő verzió egy újabb verziót adott hozzá a PowerShell 7.1-hez, a PSReadLine 2.1-et. Természetesen érdemes kihasználni a régebbi PowerShell verziók újabb funkcióit. Abban az esetben, ha a PSReadLine még nincs importálva, használja Import-Module PSReadLine
hogy azonnal elkezdje használni a funkciókat. Annak érdekében, hogy a legújabb verziót használja, olvassa el tovább!
A PowerShell 7.0 verziótól kezdve a PowerShell kihagyja a PSReadLine automatikus betöltését a Windows rendszeren, ha képernyőolvasó programot észlel. Jelenleg a PSReadLine nem működik jól a képernyőolvasókkal. A PowerShell 7.0 alapértelmezett renderelése és formázása a Windows rendszeren megfelelően működik. Szükség esetén manuálisan betöltheti a modult.
Windows PowerShell 5.x
A PSReadLine Windows PowerShell 5.0 vagy 5.1 rendszerrel történő frissítéséhez általában két lépés van. Először meg kell győződnie arról, hogy fut-e a verzió 1.6.0
vagy magasabb a PowerShellGet. Ehhez a következő parancsot kell futtatnia egy emelt szintű Windows PowerShell-munkamenetben.
Install-Module -Name PowerShellGet -Force
Ezután győződjön meg arról, hogy az összes PowerShell-munkamenet zárva és emelt szinten van cmd.exe
futtassa a következő kódot. Az oka, hogy ez fut cmd.exe
alapértelmezés szerint a PSReadLine betöltődik, és nem frissíthető, ha a memóriában van.
powershell -noprofile -command "Install-Module PSReadLine -Force -SkipPublisherCheck -AllowPrerelease"
PowerShell 6.x Core és PowerShell 7
A PSReadLine frissítéséhez a PowerShell újabb verzióiban hasonló műveletet hajthat végre az összes nyitott PowerShell-munkamenet bezárásával, pwsh.exe
, és futtasson emelkedettet cmd.exe
munkamenet a következő kóddal.
pwsh.exe -noprofile -command "Install-Module PSReadLine -Force -SkipPublisherCheck -AllowPrerelease"
A PowerShell Gallery telepített PSReadLine frissítése
Lehet, hogy telepítette a PSReadLine programot a PowerShell Galériából, és ha ezt megtette, akkor a következő parancsok egyikének futtatásával frissítheti, attól függően, hogy a Windows PowerShell vagy a PowerShell Core / 7 rendszert használja-e.
# Windows PowerShell
powershell -noprofile -command "Update-Module PSReadLine -AllowPrerelease"
# PowerShell Core/7
pwsh.exe -noprofile -command "Update-Module PSReadLine -AllowPrerelease"
A PSReadLine jellemzői
Mit tehetünk a PSReadLine-nel? Számos nagyon jó szolgáltatás segíthet a parancssori élményben. Az alábbiakban láthatja, hogyan működik több funkció a gyakorlatban.
Szintaxis színezés
Példa arra, hogy a szintaxis színezése hogyan könnyíti meg a parancssor olvashatóságát, lásd ezt a példát, ahol láthatja, hogy a kimenet színes, a változók nevei, függvénynevei és összehasonlító operátorai számára.
Bár ez a parancssor nem túl hosszú, vannak esetek, amikor ezt több sorra osztva sokkal könnyebben kezelhető lenne. Olvassa el, hogy lássa, hogyan tudjuk ezt felosztani több sorra, akárcsak egy hagyományos kódszerkesztő.
Többsoros szerkesztés
A fenti ugyanazon parancssorozatot figyelembe véve, hogyan lehet ezt felosztani több sorra? A Shift-Enter alapértelmezett billentyűkombinációjának használatával (Windows rendszeren) fel tudjuk osztani a sorokat, ahogyan azt jelöli >>
.
A nyílbillentyűkkel navigálhat a szövegben, és csak akkor hajthat végre Enter, ha készen áll a parancs futtatására. Mi a helyzet akkor, ha nem biztos a parancs használatában? Prediktív Intellisense a megmentéshez!
Prediktív Intellisense
Először engedélyeznünk kell a Predictive IntelliSense alkalmazást. Elmondhatja, hogy különböző forrástípusokat használjon, de a leggyakoribb egyszerűen az Ön előzményei. Ne feledje, hogy amíg nincs tartalomelőzmény-fájlja, ez nem biztos, hogy a leghasznosabb, de egy idő után hasznos lesz.
# This will enable the prediction source for IntelliSense
Set-PSReadLineOption -PredictionSource 'History'
# (Optional) Change the darker grey to a lighter grey to account for dark backgrounds
Set-PSReadLineOption -Colors @{ InlinePrediction = '#9CA3AF'}
Most ezt kipróbálhatjuk ugyanazzal a paranccsal, amelyet éppen futtattunk. Ezt csak gépelés után láthatja Get
már látjuk a teljesítésre felajánlott parancsot. A jobb nyíl (alapértelmezett) használatával elfogadhatja a kijelölést.
PSReadLine History File
Mivel beszéltünk az előzmények fájljáról, hasznos lehet tudni, hogy valójában hol tárolják ezt a fájlt. Ami tartalmaz minden parancsot egy új sorban, további adatok nélkül, egyszerű formátumban.
- ablakok –
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine
- Linux –
$env:XDG_DATA_HOME/powershell/PSReadLine
vagy$env:HOME/.local/share/powershell/PSReadLine
Legyen tudatában! Például parancsmagok használatakor
ConvertTo-SecureString
jelszavak tárolhatók az előzmények fájljában.
Következtetés
A PSReadLine egy nagyon hasznos modul a parancssori élmény javításához. Többsoros szerkesztéssel, szintaxis kiemeléssel és a Predictive IntelliSense közelmúltbeli hozzáadásával elengedhetetlen kiegészítője minden rendszergazdai eszközkészletnek!