PowerShell vs. Bash: Wichtige Unterschiede, die Sie kennen sollten

PowerShell vs. Bash: Wichtige Unterschiede, die Sie kennen sollten

Wenn Sie auch nur ansatzweise mit Terminalemulatoren auf Computern vertraut sind, haben Sie wahrscheinlich schon von Bash von Linux und PowerShell von Microsoft gehört. Beides ist im Leben von Fachleuten, die sich auf beide Betriebssysteme spezialisiert haben, allgegenwärtig. Wenn Sie jedoch nicht Ihr tägliches Leben vor einer Shell-Eingabeaufforderung verbringen, haben Sie wahrscheinlich nicht viel darüber nachgedacht, wie die beiden im Vergleich aussehen würden. Dann gab es noch nie einen besseren Zeitpunkt zum Lernen!

Was ist PowerShell?

Microsoft führte Powershell im Jahr 2006 ein, um als Befehlszeilenschnittstelle zu fungieren, die auf einem vielseitigen und leistungsstarken Skript-Framework läuft. Es wurde entwickelt, um Windows-Administratoren dabei zu helfen, kleine Anwendungen zu erstellen, die „Commandlets“ (offiziell als „Cmdlets“ bekannt) verwenden, um einen großen Teil ihrer Arbeit zu automatisieren.

Powershellbash-Liste

Noch wichtiger ist, dass seine Befehlsstruktur und „Skriptfähigkeit“ eine komplette Überarbeitung des alten MS-DOS darstellt, auf dem Windows ursprünglich aufbaute. Es verfügt über eine einheitlichere Syntax und Art der Informationsdarstellung, mit der man sich leicht vertraut machen und mit der man leicht programmieren kann.

Dies soll nicht die von den meisten Benutzern gewohnte Windows-Befehlszeile ersetzen, sondern sie durch eigene Automatisierungs- und Konfigurationsfunktionen ergänzen. Wenn Sie beispielsweise versuchen, einen Microsoft Azure-Dienst in der Cloud zu verwalten, können Sie dies jetzt mit dem Connect-AzAccountBefehl tun, anstatt eine Remotedesktopsitzung zu verwenden.

Wie Bash ist PowerShell vollständig überprüfbar und ermöglicht den Einsatz in sehr sensiblen Umgebungen, in denen es wichtig ist, alles zu wissen, was im System passiert.

Was ist Bash?

Bash ist der Urvater von 1989, der in Linux-Umgebungen weiterhin relevant bleibt, ungeachtet all der ausgefalleneren Shells , die versucht haben, ihn in den Schatten zu stellen. Ähnlich wie PowerShell bietet Bash ein Framework, mit dem sich Skripte schreiben lassen, um die Verwaltung viel einfacher zu automatisieren.

Powershellbash Bashls

Da seine Befehlsstruktur und Syntax in verschiedenen Linux-Distributionen, BSD und sogar macOS allgegenwärtig sind, haben sich viele Entwickler daran gewöhnt, Bash als Anlaufstelle für die Organisation ihrer Projekte zu verwenden.

Obwohl Bash eine Basissuite von Operationen enthält, mit denen Sie Skripte schreiben und Informationen über das Terminal weiterleiten können, ist fast jeder Befehl, den Sie mit dieser Shell in ein Terminal eingeben, ein separates Programm. Beispielsweise enthält Bash nicht die lsBefehle (Dateien auflisten) oder cat(Verketten oder die Ausgabe einer Datei anzeigen), sondern sucht stattdessen nach ausführbaren Dateien mit demselben Namen in angegebenen Pfaden.

Powershell vs. Bash: Unterschiede

PowerShell und Bash sehen vielleicht ähnlich aus, wenn Sie zum ersten Mal lernen, wie man sie verwendet, aber im Grunde handelt es sich um völlig unterschiedliche Wesen mit manchmal widersprüchlichen Designphilosophien. Hier sind einige ganz entscheidende Dinge, die sie auszeichnen:

1. Benutzerzugriffskontrolle

Wenn Sie jemals etwas Administratives mit Bash erledigen möchten, müssen Sie Ihrem Befehl lediglich sudo voranstellen . Sobald der Befehl ausgeführt wurde, gelangen Sie sofort zurück zur Benutzer-Shell. Das Ausführen eines Root-Befehls lässt weniger Spielraum für Fehler und zwingt Sie dazu, Ihre Arbeit zu überprüfen.

PowerShell hingegen kann nur im Administrator- oder Benutzermodus ausgeführt werden. Wenn Sie zwischen ihnen wechseln möchten, müssen Sie eine neue Sitzung eröffnen. Um PowerShell im Administratormodus zu öffnen, müssen Sie mit der rechten Maustaste auf das Programmsymbol klicken und auf „Als Administrator ausführen“ klicken. Alternativ können Sie innerhalb einer Terminalsitzung einfach etwas eingeben Start-Process powershell -verb runAsund es wird eine zweite Sitzung mit Administratorrechten geöffnet.

2. Ausgabe

Wenn Sie einen Befehl in Bash eingeben, führen Sie im Grunde ein separates Programm aus, und diese ausführbare Datei liefert Ihnen das gewünschte Ergebnis. Wie die Ausgabe formatiert wird, hängt davon ab, wie der Entwickler des jeweiligen Programms sie formatieren wollte.

Hier gibt es viel Flexibilität, was großartig ist, aber der Nachteil ist die mangelnde Einheitlichkeit.

Die Befehlsausgabe in PowerShell wird normalerweise nach einem einzigen einheitlichen Standard formatiert. Der Text, den Sie auf dem Bildschirm sehen, ist eine für Menschen lesbare Version von Daten, die von anderen Programmen interpretiert werden kann.

Dadurch können Benutzer, die Skripte und Anwendungen schreiben, einfach die PowerShell-eigenen Funktionen und Befehle verwenden, um alle benötigten Informationen abzurufen.

3. Syntax

Bash verwendet eine sehr einzigartige Syntax (z. B. if [condition]; then code here; fi), die in anderen Skriptsprachen normalerweise nicht zu finden ist. Die Verwendung ist nicht besonders schwierig, kann aber für jemanden, der gerade erst anfängt, das Schreiben von Skripten zu lernen, etwas unkonventionell sein.

Was Benutzerbefehle betrifft, gibt es keine klare Einheitlichkeit. Jedes einzelne Programm verfügt über eine eigene Befehlssyntax. Sie müssen wissen, wie man sie verwendet, bevor Sie sie in Ihr Bash-Skript integrieren können.

Die Skriptsyntax von PowerShell ähnelt allen anderen. NET-Anwendung (z. B. if (condition) {. ..code here... }). Für Leute, die es gewohnt sind, innerhalb des Microsoft-eigenen Ökosystems zu entwickeln, gibt es fast keine Lernkurve.

Benutzerbefehle folgen einer starren Struktur : einem Verb, gefolgt von einem Bindestrich, gefolgt von einem Substantiv. Beispielsweise Get-ChildItemwerden alle Dateien im aktuellen Verzeichnis aufgelistet. Befehle, die nicht spezifisch für PowerShell sind, können dennoch einer Bash-ähnlichen Struktur folgen. Wenn Sie es unter Linux verwenden, können Sie weiterhin jeden Linux-Befehl ausführen.

4: Flexibilität

Wenn Sie Bash beherrschen, wissen Sie, wie Sie mit den Terminalumgebungen unzähliger Linux-Distributionen, dem BSD-Ökosystem und sogar macOS arbeiten. Es ist mit Abstand der König der Universalität. Obwohl macOS 2019 auf zsh umgestellt wurde , hat es im Kern immer noch den Bash-Geist.

PowerShell kann in praktisch jedem Betriebssystem ausgeführt werden, ist jedoch in erster Linie dafür gedacht, neben Microsofts eigenen Produkten zu laufen. Wenn Sie es verwenden, tun Sie dies höchstwahrscheinlich innerhalb von Windows.

Wenn Sie nur PowerShell-spezifische Konventionen lernen, werden Sie mit den Produkten von Microsoft im Grunde auf einer Insel stecken bleiben. Auch wenn das nicht unbedingt der Fall sein muss, kann man sich der Tatsache nicht entziehen, dass die Hülle nur in dieser Situation wirklich glänzt. Was jedoch die Nachteile angeht, ist es eines, das einen enormen Anteil am globalen Desktop-Marktanteil mit sich bringt.

Häufig gestellte Fragen

Kann ich Bash unter Windows und PowerShell unter Linux ausführen?

Um Bash unter Windows auszuführen, installieren Sie einfach das Windows-Subsystem für Linux , indem Sie als Administrator eine Eingabeaufforderung ausführen und Folgendes eingeben wsl --install. Nach Abschluss der Installation haben Sie sofortigen Zugriff auf Bash-Befehle.

PowerShell unter Linux ist etwas kniffliger und von der Distribution abhängig. Microsoft bietet auf seiner Website Anweisungen zur Installation von PowerShell auf den beliebtesten Distributionen. Möglicherweise stellen Sie fest, dass Arch Linux in dieser Liste fehlt, aber als powershellPaket im AUR vorhanden ist.

Benötige ich Bash in Windows?

Nicht unbedingt, aber es wird Ihnen sehr helfen, wenn Sie vorhaben, einige Dinge zu verwenden, die eher für Linux konzipiert sind (Python, Git usw.). Es könnte nicht schaden, es dabei zu haben. Durch die Verwendung des Windows-Subsystems für Linux zur Installation von Bash steht Ihnen außerdem eine vollständige Linux-Shell zum Experimentieren zur Verfügung. Dies ist eine großartige Möglichkeit, sich mit der Betriebsumgebung vertraut zu machen, wenn Sie nicht damit vertraut sind.

Funktionieren Windows-DOS-Befehle in PowerShell?

Das tun sie im Allgemeinen. PowerShell ist kein Ersatz für die ursprüngliche Windows-Eingabeaufforderung. Stattdessen handelt es sich um eine darüber liegende Ebene, die neue Funktionen bereitstellt. Vermutlich entgeht Ihnen nichts, wenn Sie statt der altbewährten cmd.exe einfach PowerShell verwenden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert