PowerShell unter Linux installieren und verwenden

    PowerShell für LinuxMicrosoft hat kürzlich PowerShell als Open Source freigegeben und portiert es nun auf Linux und Mac OS. Aktuell liegt sie für beide Platt­formen in einer Alphaversion vor. Im Gegen­satz zu Ubuntu on Windows ist PowerShell voll mit den jeweiligen Betriebs­systemen integriert, hinkt aber funkt­ional noch hinter Windows her.

    Die Portierung von PowerShell auf Linux und MacOS verbessert die Interoperabilität dieser Systeme mit Windows noch weiter, nachdem Microsoft zuvor mit bash die populärste Unix-Shell auf seine eigene Plattform gebracht hatte (siehe dazu: Ubuntu on Windows 10: bash, gcc, sed, ssh, vi nativ als ELF64 ausführen).

    Installation

    Die PowerShell für Linux lässt sich relativ einrichten. Im ersten Schritt ist es notwendig, zwei Bibliotheken nachzuinstallieren. Dazu gibt man in einem Terminalfenster den Befehl

    sudo apt-get install libunwind8 libicu55

    ein.

    Erforderliche Libraries installieren

    Anschließend lädt man das passende Installationspaket von Github herunter. Das kann man auf der Kommandozeile mit wget machen, am einfachsten ist es aber, dafür den Web-Browser zu nutzen. Aktuell unterstützt Microsoft Ubuntu 14.4 und 16.4 sowie CentOS 7 und OS X 10.11, aber alle nur in der 64-Bit-Version.

    Installationspaket für PowerShell nach dem Download

    Nach dem Herunterladen kann man das Package einfach im Datei-Manager durch Doppelklick starten. Unter Ubuntu befindet es sich standardmäßig in ~/Downloads und das Paket trägt dort die Endung .deb. Nach Eingabe des Passworts läuft die Installation durch.

    Installation von PowerShell auf Ubuntu 16.4

    Mit dem Aufruf von

    powershell

    im Terminalfenster kann man die PowerShell nun sofort starten.

    Geringe Zahl an Modulen

    Natürlich liegt es nahe, die Umgebung gleich zu erforschen und zu sehen, was bereits funktioniert und wo die Unterschiede zu Windows liegen. Ein aufschlussreiches Kommando in diesem Zusammenhang ist

    Get-Module -ListAvailable

    Unter Linux listet es aktuell 10 Module auf, während es 72 unter einem aktuellen Inside Build von Windows 10 sind. Zu bedenken ist dabei jedoch, dass vor allem zahlreiche Windows-spezifische Module fehlen, die dazu dienen, bestimmte System­komponenten anzusprechen. Darunter fallen etwa jene für Appx, Bitlocker, Defender, DISM, UEV oder Windows Update, die auf andere Systeme zu portieren keinen Sinn hätte.

    Aktuell unter Linux verfügbare PowerShell-Module

    Dagegen wäre es wünschenswert, wenn PowerShell für Linux und Mac OS bis zum Erscheinen eines regulären Releases die Module für das Management des Network-Stacks erhielte. Cmdlets für das Ändern der Netzwerk­einstellungen oder die Konfiguration von NICs wären definitiv eine Bereicherung für Linux. Entsprechendes gilt für das Disk-Management.

    Aber auch so ist die PowerShell auf den zwei neuen Plattformen durchaus von Nutzen. Sie enthält etwa das ganze Arsenal an Funktionen für die Verarbeitung von Zeichenketten, Datumsangaben sowie von XML- und CSV-Dateien.

    Alle Linux-Tools verfügbar

    Aus der Sicht des Windows-Administrators ist es alleine schon ein Gewinn, dass er nun unter Linux eine vertraute Shell vorfindet und sich nicht mit den Eigenheiten der bash beschäftigen muss. Gleichzeitig stehen ihm aber alle Dienst­programme von Linux offen, die sich bei Bedarf durch sudo auch mit erhöhten Rechten starten lassen.

    Im Vergleich dazu bleibt das Linux-Subsystem für Windows 10 ein Fremdkörper im System. Es bringt zwar einen großen Teil des Linux-Werkzeug­kastens auf das Microsoft-OS, kann aber keine Windows-Programme ausführen.

    PowerShell-Output über eine Pipe an Linux-Programme übergeben.

    PowerShell ist unter Linux sogar in der Lage, über eine Pipe mit den System-eigenen Tools zu kommunizieren. So lässt sich zum Beispiel die Ausgabe von Get-Content an einen Pager wie less schicken. Dies ist auch der Grund, warum Microsoft auf eine Reihe vordefinierter Aliase wie ls für Get-ChildItem verzichtet. Sie würden im Konflikt mit den nativen Linux-Programmen stehen.

    Noch offen ist das Thema Remoting. Zwar gehören die Cmdlets Enter-PSSession und Invoke-Command aktuell schon zum Lieferumfang, aber ihnen fehlt noch ein Transport­mechanismus. Als solcher ist zukünftig SSH vorgesehen.

    Keine Kommentare