Mein Informatikprofessor gab ein Quiz und eine der Fragen war "wahr oder falsch: PowerShell funktioniert unter Windows, Mac und Linux". Die richtige Antwort war "falsch". Er behauptet, dass PowerShell nur eine Windows-Sache ist. Aber hier sind ein paar Websites, die etwas anderes sagen:
https://azure.microsoft.com/en-us/blog/powershell-is-open-sourced-and-is-available-on-linux/
https://github.com/PowerShell/PowerShell
Welches ist also wahr? Funktioniert PowerShell sowohl für Linux und Mac als auch für Windows?
linux
windows
macos
powershell
FredSavage187
quelle
quelle
Antworten:
Ja.
Ein Großteil von PowerShell ist .NET, sodass es auf jedem Betriebssystem mit Common Language Runtime (CLR) ausgeführt werden kann. Unter Windows ist das .NET Framework. Für andere Betriebssysteme (einschließlich Linux!) Können Sie CoreCLR verwenden , eine plattformübergreifende Open-Source-Teilmenge von .NET Framework.
Wie Sie im PowerShell-Repository auf GitHub gefunden haben, werden einige Betriebssysteme und Distributionen unterstützt. Hier sind zum Beispiel die Anweisungen für Ubuntu . Demonstration ( Quellseite ):
Man könnte argumentieren, dass nicht alle PowerShell in Nicht-Windows-Umgebungen verfügbar sind. Einige Funktionen hängen von Bibliotheken ab, die nur unter Windows verfügbar sind. Die
ParsedHtml
Eigenschaft für denHtmlWebResponseObject
vonInvoke-WebRequest
beispielsweise zurückgegebenen Typ ist beispielsweise nur unter Windows nützlich, da sie ein COM-Objekt enthält, das aus einer nicht verwalteten Bibliothek stammt,mshtml.dll
um genau zu sein. Auf anderen Plattformen gibt es dort nichts. Und natürlich gibt es Cmdlets zum Verwalten von Systemen, die nur unter Windows verfügbar sind, wie moderne Apps (Get-AppxPackage
und Freunde).Trotzdem funktioniert die PowerShell-Infrastruktur unter anderen Betriebssystemen einwandfrei. Viele Cmdlets können überall verwendet werden, und die Unterstützung wird immer besser.
quelle
Die neueste Powershell für Macos (6 Alpha) bietet eine bessere .net-Unterstützung. Aber es funktioniert nur in Sierra Osx. Zum Beispiel funktioniert dies jetzt wo vorher nicht:
Die Standardfarben der Konsole sind jedoch schrecklich (gelb für Befehle usw.).
quelle