PowerShell
Bei PowerShell handelt es sich um ein mächtiges Commandline-Tool. Diese wurde 2006 von Microsoft veröffentlicht und stand zum damaligen Zeitpunkt nur unter Windows zur Verfügung. Mittlerweile gibt es PowerShell Core, welches auch auf MacOS und Linux verfügbar ist.
Mittels PowerShell ist es möglich viele administrative Tätigkeiten in Skripts auszulagern, was den Vorteil hat, dass diese einfach reproduzierbar sind.
PowerShell arbeitet mit sogenannten Commandlets, die einen definierten Namensschema folgen: Verb + Nomen, z.B. Get-Command. Das Ergebnis von Abfragen sind in den meisten Fällen Objekte mit Eigenschaften. Diese können wiederum in Variablen gespeichert werden. Variablennamen starten mit einem $-Zeichen.
Ausgaben können mittels der Pipe-Logik verkettet werden. Das nachfolgende Beispiel liest zum Beispiel alle IP-Adressen aus, filtert diese nach IPV4-Adressen und gibt nur die IP-Adresse direkt zurück.
Get-NetIPAddress | where AddressFamily -EQ IPv4 | select -Property IPAddress
Durch die Möglichkeit von Bedingungen, Schleifen, … können mit Hilfe PowerShell sehr mächtige Skripts erstellt werden.
Zur Erstellen und Verwaltung von solcher Skripts bietet sich Visual Studio Code an. Hier kann die PowerShell-Erweiterung installiert werden. Damit erhält man während des editierens einer ps1-Datei automatisch Intellisense, Auto-Completion, … und kann einzelne Teile eines Skripts bequem mit F8 ausführen.
Funktionen allgemein zur Verfügung stellen
Um Funktionen allgemein zur Verfügung zu stellen, können diese in das Profil übernommen werden. PowerShell hat eine Variable $profile, die auf die aktuelle Profil-Datei referenziert. Falls die Datei noch nicht existiert, kann diese einfach erstellt werden. Beispiel für Inhalt dieser Datei:
function Do-Nr {
& npm run web
}
Set-Alias nr Do-Nr
Es wird eine neue Funktion „Do-Nr“ erstellt, die den Command „npm“ mit den Parametern „run web“ aufrufst. Weiters wird ein Alias „nr“ erstellt, damit nicht immer „Do-Nr“ eingegeben werden muss. Um das Profil in einer bereits geöffneten PowerShell zu aktualisieren, kann folgender Code aufgerufen werden:
. $profile