GNU/Linux >> LINUX-Kenntnisse >  >> Linux

PowerShell unter Linux nutzen:Ein Leitfaden für Anfänger

Microsoft PowerShell wurde traditionell als reines Windows-Produkt betrachtet, aber nicht mehr. Ab PowerShell v6 sind die vollen Funktionen von PowerShell jetzt plattformübergreifend verfügbar, wobei Linux am beliebtesten ist.

In diesem Tutorial lernen Sie, wie Sie von Grund auf neu beginnen, indem Sie PowerShell unter Ubuntu installieren (andere Linux-Distributionen sind ähnlich), wie Sie Befehle ausführen und sogar einige Module installieren.

Fangen wir an!

Voraussetzungen

Dieses Tutorial enthält verschiedene Demos. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Jede unterstützte Linux-Distribution – Dieses Tutorial verwendet Peppermint 10, das auf Ubuntu 18.04 (LTS) basiert.
  • Ein Konto mit Root-Zugriff.

Paket-Repository aktualisieren

Bevor Sie mit der Installation von PowerShell unter Linux beginnen, müssen Sie zuerst die Repository-Liste des apt-Paketmanagers aktualisieren. Einige Linux-Distributionen verwenden den apt-Paketmanager, um apt-Pakete zu installieren; PowerShell ist eine davon.

Um sicherzustellen, dass apt das PowerShell-Paket und alle Abhängigkeiten beim Herunterladen finden kann, müssen Sie zuerst die Paket-Repository-Liste von apt aktualisieren. Führen Sie dazu [apt update]() aus .

sudo apt update

Installieren von PowerShell unter Linux

Nachdem Sie die Paket-Repositorys aktualisiert haben, ist es an der Zeit, PowerShell unter Linux zu installieren. Da dieses Tutorial eine Ubuntu-basierte Distribution verwendet, haben Sie zwei verschiedene Möglichkeiten, PowerShell zu installieren. mit Snap-Paketen oder über das .NET SDK.

Installieren von PowerShell über Snap-Pakete

Der einfachste Weg, PowerShell auf Ubuntu zu installieren, ist über Snaps. Snaps sind Pakete, die über mehrere Linux-Versionen und -Distributionen hinweg funktionieren.

Um PowerShell unter Linux über ein Snap-Paket zu installieren, öffnen Sie ein Terminal und führen Sie snap install aus Linux-Befehl mit sudo Rechte zur Verwendung des Snap-Paketnamens powershell .

Snap-Pakete sind aus Sicherheitsgründen standardmäßig im Umfang begrenzt. Angabe von --classic Mit dem Parameter können Sie Änderungen an Ihrem System außerhalb der Sicherheits-Sandbox vornehmen.

sudo snap install powershell --classic

Installieren von PowerShell über das .NET SDK

1. Manchmal werden Sie feststellen, dass das PowerShell-Snap-Paket nicht die neueste Version von PowerShell enthält. In diesem Fall können Sie sich immer für die .NET SDK-Route entscheiden, die immer aktualisiert wird.

PowerShell ist im Paket mit .NET Core enthalten. Wenn Sie also das .NET SDK installieren, erhalten Sie auch PowerShell!

Laden Sie das neueste verfügbare .NET SDK herunter und installieren Sie es, indem Sie den folgenden Befehl mit apt ausführen Paket-Manager. Zum jetzigen Zeitpunkt ist das neueste verfügbare .NET SDK-Paket v5.0.8. Sie können die neueste verfügbare Version hier überprüfen.

sudo apt install dotnet-sdk-5.0

2. Installieren Sie nun PowerShell über den dotnet Anwendung mit dotnet tool install . Die dotnet tool Der Befehl gibt ein NuGet-Paket an, als das PowerShell gepackt ist.

Durch Angabe des --global Option, dotnet installiert das PowerShell-Paket in ~\.dotnet\tools und stellt sicher, dass sich das Verzeichnis im Systempfad befindet, sodass Sie es von überall ausführen können.

dotnet tool install --global PowerShell 

Ausführen grundlegender PowerShell-Befehle unter Linux

Nun, da Sie PowerShell unter Linux installiert haben, wie geht es weiter? Beginnen wir mit der Ausführung einiger grundlegender Befehle. Um PowerShell zu starten, führen Sie einfach pwsh aus und Sie werden zur interaktiven PowerShell-Konsole weitergeleitet.

Als plattformübergreifende Skriptsprache unterstützt PowerShell unter Linux alle allgemein bekannten Befehle von CMD und der Linux-Befehlszeilen-Shell wie sudo apt update . Keine Notwendigkeit, ein Bash-Terminal zu öffnen!

Von nun an können Sie Tausende von integrierten PowerShell-Befehlen ausführen. Wenn Sie schon dabei sind, überprüfen Sie mit $PSVersionTable, welche Version von PowerShell installiert ist . Sie sollten sehen, dass die PSEdition als Core angezeigt wird und Plattform ist Unix .

Wenn Sie in der PowerShell-Konsole fertig sind, beenden Sie sie, indem Sie exit ausführen Befehl. Dieser Befehl bringt Sie zurück in Ihr Bash-Terminal.

PowerShell unter Linux-Einschränkungen

Nur weil Sie PowerShell installieren und Befehle darauf ausführen können, bedeutet das nicht unbedingt, dass Sie alles tun können, was unter Windows möglich ist. Schließlich ist Linux als Open Source ein völlig anderes Betriebssystem und einige Befehle werden für Funktionen, die in Linux nicht verfügbar sind, nicht verfügbar sein.

Windows -ne Linux

Da Linux beispielsweise keine Registrierung hat, sehen Sie keine PowerShell-Laufwerke. Die Get-PSDrive Cmdlet ist weiterhin verfügbar, gibt jedoch nur die bereitgestellten Linux-Speichervolumes und andere standardmäßige PS-Laufwerke zurück. Unten sehen Sie ein Beispiel.

Get-PSDrive | Format-Table -Auto

Anders als Microsoft Windows hat Linux weder Common Information Model (CIM) noch Windows Management Instrumentation (WMI). Beide unterstützen das Bereitstellen von Informationen über die Verwaltung von Geräten und Anwendungen für das Windows-Betriebssystem.

Unten sehen Sie das Windows PowerShell-Cmdlet Get-CimInstance ist in PowerShell unter Linux nicht verfügbar.

Get-CimInstance -ClassName Win32_BIOS

Aber wenn Sie versuchen, Get-CimInstance zu verwenden In Windows PowerShell sehen Sie unten, dass es wie erwartet funktioniert.

Keine geplanten Jobs

Ein weiterer Nachteil von PowerShell unter Linux ist das Fehlen geplanter Jobs. Geplante Jobs sind eine praktische Funktion in Windows PowerShell, mit der Sie Aufgaben über den Windows-Taskplaner im Hintergrund ausführen können.

Um einen geplanten Auftrag in Windows PowerShell zu erstellen, müssen Sie sich registrieren den Job über die Register-ScheduledJob cmdlet. Unten sehen Sie ein Beispiel für das Kopieren einiger Excel-Arbeitsmappen, die in Windows PowerShell funktionieren. Sie werden feststellen, dass der Register-ScheduledJob Cmdlet wurde nicht gefunden.

Obwohl Sie keinen Job planen können, können Sie dennoch Hintergrundjobs mit Start-Job aufrufen Befehl. Die Start-Job Cmdlet können Sie Hintergrundjobs in PowerShell ausführen, um eine Aufgabe ohne Interaktion mit der aktuellen Sitzung auszuführen.

Vielleicht möchten Sie alle Dateien in /var/backups auflisten aber tun Sie dies im Hintergrund. Sie könnten den auszuführenden Befehl in einem ScriptBlock erstellen und erstellen Sie einen Job namens GetAllBackupFiles Aufruf mit Start-Job , wie unten gezeigt.

Start-Job -Name GetAllBackupFiles -ScriptBlock {Get-ChildItem /var/backups -Recurse}

Sobald der Hintergrundjob gestartet ist, können Sie die Ausgabe dieses Jobs mit Retrieve-Job empfangen Cmdlet durch Angabe von -Name die Sie beim Start angegeben haben.

Retrieve-Job -Name GetAllBackupFiles

Arbeiten mit PowerShell-Modulen unter Linux

Ein wichtiges Konzept in Windows PowerShell ist das PowerShell-Modul. PowerShell-Module sind Gruppen von Befehlen, die als „Pakete“ erstellt wurden, die sowohl von Microsoft als auch über die PowerShell-Community erstellt wurden.

Installierte Module finden

Standardmäßig installiert PowerShell unter Linux wie Windows verschiedene Module. Finden Sie alle diese Module, indem Sie Get-Module ausführen Befehl, wie unten gezeigt. Der ListAvailable Parameter teilt Get-Module mit um alle zurückzugeben Module im Dateisystem; nicht nur geladene Module.

Get-Module -ListAvailable

Unten sehen Sie den Pester -Modul ist in /root/.local/share/powershell/Modules installiert Dies ist der Benutzerspeicherort für PowerShell-Module. In einem der nächsten Abschnitte erfahren Sie, wie Sie Module installieren.

Sie können jeden Ort zum Installieren von Modulen sehen, indem Sie sich den PSModulePath ansehen Umgebungsvariable, wie unten gezeigt. Da der Wert von $env:PSModulePath eine Zeichenfolge ist, verwendet das Tutorial den split -Operator, um die Zeichenfolge durch Doppelpunkte (nicht Semikolons wie Windows) aufzuteilen, um jeden Pfad in einer anderen Zeile anzuzeigen.

$env:PSModulePath -split ':'

Installieren von PowerShell-Modulen unter Linux

Obwohl PowerShell unter Linux mit verschiedenen bereits installierten Modulen geliefert wird, werden Sie wahrscheinlich mehr Funktionalität benötigen. In diesem Fall können Sie die PowerShell-Galerie nutzen. Die PowerShell-Galerie ist ein Repository mit Tausenden von Modulen, die sowohl unter Windows als auch unter Linux funktionieren.

Verwenden Sie den Install-Module cmdlet können Sie Module unter Linux genauso installieren wie unter Windows. Aber zuerst sollten Sie das gesuchte Modul mit Find-Module finden .

Nehmen wir an, Sie möchten einige Pester-Tests mit dem beliebten Pester-Test-Framework durchführen. Pester wird in einem Modul verpackt geliefert. Überprüfen Sie mithilfe von Find-Module, ob das Pester-Modul in der PowerShell-Galerie verfügbar ist cmdlet.

Find-Module Pester

Darunter sehen Sie Find-Module das verfügbare Pester-Modul gefunden.

Nachdem Sie überprüft haben, dass das Pester-Modul verfügbar ist, installieren Sie das Modul jetzt mit dem Install-Module Cmdlet, das den Name angibt des Moduls.

Install-Module -Name Pester

Wenn Sie Install-Module ausführen , werden Sie von PowerShell zu einem nicht vertrauenswürdigen Repository aufgefordert, da das Repository als nicht vertrauenswürdig gekennzeichnet ist. Zum Testen ist diese Warnung kein Grund zur Sorge, also geben Sie A ein zu bestätigen.

Nachdem das Modul installiert wurde, führen Sie nun den Get-InstalledModule aus cmdlet und Sie werden sehen, dass Pester installiert wurde und seine Befehle jetzt verfügbar sind.

Das sehen Sie auch, wenn Sie den Get-Command verwenden Cmdlet finden Sie auch alle Befehle innerhalb des Pester Modul, wie unten gezeigt.

Get-Command -Module Pester

Ausführen von PowerShell-Skripts von Bash

Lassen Sie uns zum Abschluss dieses Tutorials mit dem Ausführen von PowerShell-Skripts von Bash enden. In diesem Tutorial haben Sie PowerShell-Befehle interaktiv innerhalb einer PowerShell-Konsole ausgeführt. Wenn Sie ein PowerShell-Skript ausführen müssen, müssen Sie nicht in die PowerShell-Konsole wechseln. Stattdessen können Sie das Skript direkt von Bash aus ausführen.

Um die Ausführung eines PowerShell-Skripts von Bash aus zu demonstrieren, öffnen Sie Ihren bevorzugten Linux-Texteditor, fügen Sie den folgenden Befehl ein und speichern Sie die Datei als DrivesInformation.ps1 . Dieses Skript listet einfach alle PS-Laufwerke auf.

Get-PSDrive

In Ihrem Bash-Terminal statt pwsh auszuführen , die Eingabetaste drücken und dann das Skript in der PowerShell-Konsole ausführen, rufen Sie das Skript direkt von Bash aus auf. Führen Sie dazu pwsh aus aber geben Sie dieses Mal das PowerShell-Skript an, das Sie gerade erstellt haben, wie unten gezeigt.

Sie werden sehen, dass Sie die gleiche Ausgabe wie in der interaktiven PowerShell-Sitzung direkt in Ihrem Bash-Terminal erhalten.

pwsh /home/tex/DrivesInformation.ps1

Fazit

Sie sollten jetzt einen guten Einstieg in die Ausführung von PowerShell unter Linux haben! Jetzt liegt es an Ihnen, mehr über PowerShell zu lernen und alles zu automatisieren, was Sie können!


Linux
  1. So installieren Sie RHEL 8:Eine vollständige Schritt-für-Schritt-Anleitung

  2. So installieren Sie Discord unter Linux:Eine Schritt-für-Schritt-Anleitung

  3. So installieren Sie Slack unter Linux:Eine leicht verständliche Anleitung

  4. So installieren Sie Void Linux:Eine vollständige Schritt-für-Schritt-Anleitung

  5. Eine Anleitung für Anfänger zu firewalld unter Linux

50 nützliche Raspberry Pi-Befehle – Ein Leitfaden für Anfänger

So installieren und verwenden Sie Curl auf Linux-Distributionen:Ein Leitfaden für Anfänger

Anfängerleitfaden für Syslogs unter Linux

Eine vollständige Anleitung zur Installation von Tomcat unter Linux

Installieren Sie Golang unter Linux – Schritt-für-Schritt-Anleitung

So installieren und verwenden Sie FFmpeg unter Linux-Distributionen | Ratgeber für Anfänger