Erste Schritte mit PowerShell in Linux [Anfängerleitfaden]

Nachdem Microsoft sich in Linux verliebt hatte (was im Volksmund als „Microsoft liebt Linux“ bekannt wurde), wurde PowerShell, das ursprünglich eine reine Windows-Komponente war, am 18. August 2016 quelloffen gemacht und plattformübergreifend verfügbar, sowohl auf Linux als auch auf Mac OS.

PowerShell ist ein Aufgabenautomatisierungs- und Konfigurationsverwaltungssystem, das von Microsoft entwickelt wurde. Es besteht aus einem Befehlssprachinterpreter (Shell) und einer Skriptsprache, die auf dem .NET Framework aufbaut.

Es bietet vollständigen Zugriff auf COM (Component Object Model) und WMI (Windows Management Instrumentation), wodurch Systemadministratoren administrative Aufgaben sowohl auf lokalen als auch auf entfernten Windows-Systemen sowie WS-Management und CIM (Common Information Model) zur Verwaltung entfernter Linux-Systeme und Netzwerkgeräte ausführen können.

Im Rahmen dieses Frameworks werden administrative Aufgaben grundsätzlich von bestimmten .NET-Klassen namens Cmdlets (ausgesprochen „Commandlets“) ausgeführt.

Ähnlich wie Shell-Skripte in Linux können Benutzer Skripte oder ausführbare Dateien erstellen, indem sie Gruppen von Cmdlets gemäß bestimmter Regeln in Dateien speichern. Diese Skripte können als eigenständige Befehlszeilen-Dienstprogramme oder -Werkzeuge verwendet werden.

PowerShell in Linux-Systemen installieren

Um PowerShell in Linux zu installieren, verwenden wir das offizielle Microsoft-Repository, das es uns ermöglicht, über die beliebtesten Linux-Paketverwaltungstools wie apt-get oder apt und yum oder dnf zu installieren.

PowerShell auf Ubuntu installieren

Importieren Sie zunächst die öffentlichen Repository GPG-Schlüssel und registrieren Sie dann das Microsoft Ubuntu-Repository in der Liste der Paketquellen von APT, um PowerShell zu installieren:

$ sudo apt-get update
$ sudo apt-get install -y wget apt-transport-https software-properties-common
$ wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt-get update
$ sudo apt-get install -y powershell

PowerShell auf Debian 11 installieren

PowerShell für Debian-Distributionen wird in Paket-Repositories veröffentlicht, um eine einfache Installation und Updates zu ermöglichen.

$ sudo apt update
$ sudo apt install -y curl gnupg apt-transport-https
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-debian-bullseye-prod bullseye main" > /etc/apt/sources.list.d/microsoft.list'
$ sudo apt update
$ sudo apt install -y powershell

PowerShell auf Debian 10 installieren

$ wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb
$ sudo dpkg -i packages-microsoft-prod.deb
$ sudo apt-get update
$ sudo apt-get install -y powershell

PowerShell auf RHEL-Systemen installieren

PowerShell für RHEL-basierte Distributionen wie CentOS Stream, Rocky und AlmaLinux werden in offiziellen Microsoft-Repositories veröffentlicht, um eine einfache Installation und Updates zu ermöglichen.

---------- On RHEL, CentOS, Rocky & AlmaLinux 9 ---------- 
$ curl https://packages.microsoft.com/config/rhel/9.0/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

---------- On RHEL, CentOS, Rocky & AlmaLinux 8 ----------
$ curl https://packages.microsoft.com/config/rhel/8/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

---------- On RHEL/CentOS 7 ----------
$ curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
$ sudo dnf install --assumeyes powershell

Verwendung von PowerShell in Linux

In diesem Abschnitt werden wir eine kurze Einführung in Powershell haben; wo wir sehen werden, wie man Powershell startet, einige grundlegende Befehle ausführt und wie man mit Dateien, Verzeichnissen und Prozessen arbeitet. Dann tauchen wir später ein, wie man alle verfügbaren Befehle auflistet und Befehlshilfe und Aliase anzeigt.

Um Powershell zu starten, geben Sie ein:

$ pwsh

PowerShell 7.3.3
PS /root> 

Sie können die Powershell-Version mit dem folgenden Befehl überprüfen:

PS /root> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.3
PSEdition                      Core
GitCommitId                    7.3.3
OS                             Linux 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30)
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Ausführen einiger grundlegender Powershell-Befehle unter Linux.

get-date          [# Display current date]
get-uptime        [# Display server uptime]
get-location      [# Display present working directory]
Running PowerShell Commands

Arbeiten mit Dateien und Verzeichnissen in Powershell

1. Erstellen Sie eine neue leere Datei mit den folgenden beiden Methoden:

new-item  tecmint.tex
OR
“”>tecmint.tex

Fügen Sie dann Inhalte hinzu und zeigen Sie den Dateiinhalt an.

set-content tecmint.tex -value "TecMint Linux How Tos Guides"
get-content tecmint.tex
Create New File in Powershell

2. Löschen Sie eine Datei in Powershell.

remove-item tecmint.tex
get-content tecmint.tex
Delete File in Powershell

3. Erstellen Sie ein neues Verzeichnis.

mkdir  tecmint-files
cd  tecmint-files
“”>domains.list
ls
Create a Directory in Powershell

4. Um eine lange Liste durchzuführen, die Details einer Datei/eines Verzeichnisses einschließlich Modus (Dateityp) und letztem Änderungszeitpunkt anzeigt.

dir
Directory Long Listing in Powershell

5. Alle laufenden Prozesse auf Ihrem System anzeigen:

get-process
View Running Processes in Powershell

6. Um Details eines einzelnen/ einer Gruppe von laufenden Prozessen mit einem bestimmten Namen anzuzeigen, geben Sie den Prozessnamen als Argument zum vorherigen Befehl wie folgt an:

get-process apache2
View Specific Process in Powershell

Bedeutung der Einheiten in der obigen Ausgabe:

  • NPM(K) – die Menge an nicht ausgelagertem Speicher, den der Prozess verwendet, in Kilobyte.
  • PM(K) – die Menge an auslagerbarem Speicher, den der Prozess verwendet, in Kilobyte.
  • WS(K) – die Größe des Arbeitssets des Prozesses in Kilobyte. Das Arbeitsset besteht aus den Seiten des Speichers, auf die der Prozess kürzlich zugegriffen hat.
  • CPU(s) – die Menge an Prozessorzeit, die der Prozess auf allen Prozessoren verwendet hat, in Sekunden.
  • ID – Prozess-ID (PID).
  • ProcessName – der Name des Prozesses.

7. Um mehr zu erfahren, erhalten Sie eine Liste aller Powershell-Befehle für verschiedene Aufgaben:

get-command
List Powershell Commands

8. Um zu lernen, wie man einen Befehl verwendet, sehen Sie sich seine Hilfeseite an (ähnlich der Man-Seite in Unix/Linux); in diesem Beispiel können Sie Hilfe für den Befehl Describe erhalten:

get-help Describe
Powershell Help Manual

9. Um alle verfügbaren Befehlsaliasse anzuzeigen, geben Sie ein:

get-alias
List Powershell Command Aliases

10. Last but not least, zeigen Sie die Befehlshistorie an (Liste der Befehle, die Sie zuvor ausgeführt haben) wie folgt an:

history
List Powershell Commands History

Das war’s! Für jetzt haben wir Ihnen in diesem Artikel gezeigt, wie Sie Microsoft’s Powershell in Linux installieren können. Für mich hat Powershell immer noch einen sehr langen Weg vor sich im Vergleich zu den traditionellen Unix/Linux-Shell, die bei weitem bessere, aufregendere und produktivere Funktionen bieten, um eine Maschine von der Befehlszeile aus zu bedienen und vor allem für Programmier- (Skripting-)zwecke.

Besuchen Sie das Powershell-Github-Repository: https://github.com/PowerShell/PowerShell

Sie können es jedoch ausprobieren und Ihre Ansichten in den Kommentaren mit uns teilen.

Source:
https://www.tecmint.com/install-powershell-in-linux/