Erste Schritte mit der PowerShell Core unter Ubuntu-Linux

Der Dotnet-Doktor  –  2 Kommentare

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!