Erste Schritte mit der PowerShell Core unter Ubuntu-Linux

Die plattformunabhängige PowerShell Core hat mittlerweile den Stand "Beta 6" erreicht und basiert auf der fertigen Version 2.0 von .NET Core. Dieser Beitrag zeigt die Installation auf Ubuntu und erste Schritte in der Anwendung.

vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Dr. Holger Schwichtenberg
Inhaltsverzeichnis

Die plattformunabhängige PowerShell Core 6.0 hat mittlerweile den Stand "Beta 6" erreicht und basiert auf der fertigen Version 2.0 von .NET Core. Dieser Beitrag zeigt die Installation auf Ubuntu und erste Schritte in der Anwendung.

Auf GitHub findet man eine Tabelle der unterstĂĽtzten Betriebssysteme. Ich verwende hier die Datei powershell_6.0.0-beta.6-1ubuntu1.16.04.1_amd64.deb fĂĽr Ubuntu 16.04. Die Installation erfolgt ĂĽber "Ubuntu Software" (frĂĽher Ubuntu Software Center) oder per Kommandozeile:

sudo apt install ./powershell_6.0.0-beta.6-1ubuntu1.16.04.1_amd64.deb

Die PowerShell Core startet man im Terminal durch Eingabe von "powershell". Die Variable $psversiontable liefert Informationen ĂĽber die installierte PowerShell-Version. Get-Command liefert alle verfĂĽgbaren Befehle.

Im Gegensatz zu den klassischen Unix-/Linux-Shells wie bash ist die PowerShell Core nicht textbasiert, sondern objektorientiert. Das folgende Beispiel zeigt, wie man eine Liste der Prozesse ermittelt, die mehr als 100 MB Speicher brauchen und das Ergebnis absteigend sortiert und in einer Tabelle mit den Spalten Name des Prozesses, Speicherverbrauch und Startzeit des Prozesses ausgibt.

Get-Process | where Workingset -gt 100MB | sort-object ws -desc | 
FT Name, WS, Starttime

In diesem Befehl sind bewusst verschiedene Eingabestile gemischt, um die Möglichkeiten zu zeigen:

  • Die GroĂź- und Kleinschreibung der Befehlsnamen und Operatoren ist in PowerShell Core nicht relevant.
  • Aliasse wie where fĂĽr Where-Object und FT fĂĽr Format-Table funktionieren. Aber der Alias sort fĂĽr Sort-Object funktioniert nicht.
  • Die AbkĂĽrzung MB fĂĽr die Zahl 1048576 ist verfĂĽgbar ebenso wie "WS" fĂĽr die Eigenschaft WorkingSet64.

Dass die PowerShell wirklich objektorientiert mit .NET-Objekten arbeiten, sieht man, wenn man Get-Proceess | Get-Member eingibt. Get-Process liefert Instanzen der .NET-Klasse System.Diagnostics.Process.

Die PowerShell Core bietet unter Linux bisher aber noch recht wenige Befehle. Man kann aber alle Linux-Kommandozeilenbefehle in der PowerShell aufrufen und deren Ergebnisse mit PowerShell auswerten.

Mehr zur PowerShell Core auf Linux zeige ich an diesem Samstag, 9. September 2017 um 13:45 Uhr in meinem PowerShell-Core-6.0-Vortrag auf der Community-Konferenz "CIM Lingen". Die Teilnahme dort ist kostenfrei! ()