Warum ich WSL der PowerShell für die Windows-Eingabeaufforderung vorziehe

Indeks
  1. Ich bin eher vertraut mit Linux
  2. PowerShell erscheint seltsam
  3. Linux hat mehr Entwickler-Mindshare
  4. Linux scheint mehr portabel
  5. Die meisten Befehlszeilenprogramme sind Linux-First
  6. Ich kann Windows von Linux aus verwalten

In diesem Text erkläre ich, warum ich das Windows-Subsystem für Linux (WSL) der PowerShell vorziehe, basierend auf meiner Vertrautheit mit Linux, dessen Entwicklergemeinschaft und der Portabilität.

Auf Windows habe ich die Wahl zwischen der nativen PowerShell oder der Installation des Windows-Subsystems für Linux. Letzteres bevorzuge ich, wenn ich auf Windows bin. Hier ist der Grund, warum ich die Linux-Shell anstelle von PowerShell wähle.

Ich bin eher vertraut mit Linux

Ein Grund, warum ich bei WSL auf Windows geblieben bin und es auf jedem neuen Windows-Rechner installiere, anstatt PowerShell zu verwenden, ist, dass mir das gesamte Linux- und Unix-ähnliche Paradigma vertrauter erscheint. In den 90er Jahren habe ich MS-DOS benutzt und gelegentlich eine Eingabeaufforderung in früheren Windows-Versionen geöffnet, aber was die Befehlszeile betrifft, hat mich Unix mit seinen seltsamen Befehlen wie ls, pwd und cd fasziniert.

Diese Reise begann seltsamerweise auf dem Mac, der damals und immer noch die beste Plattform zur Erstellung von Medien ist, während ich meinen Kommunikationsabschluss machte. Eines Tages beschloss ich, das Terminal von macOS, oder besser gesagt, Mac OS X, zu erkunden. Dort lernte ich, den Verzeichnisbaum zu navigieren und Dateien in Vim zu erstellen. Ich scheine einer der wenigen zu sein, die wissen, wie man tatsächlich aus Vim herauskommt. Oder zumindest würde ich es, wenn ich wollte.

Bewaffnet mit dem Wissen über Unix holte ich bald meine Knoppix-CD heraus und startete sie, da ich endlich eine Internetverbindung herstellen konnte, nachdem sie mit dem Airport-Router verbunden war (Ja, Apple stellte früher Router her und brachte praktisch um die Jahrtausendwende Wi-Fi auf den Markt). Das führte mich dazu, verschiedene Linux-Distributionen zu erkunden, was letztendlich dazu führte, dass ich für HTG schrieb.

Mein Wissen über Linux und Unix scheint mir zu wertvoll, um es mit etwas ganz anderem als anderen Befehlszeilen-Shells zu verschwenden.

PowerShell erscheint seltsam

Ich konnte PowerShell nie vollständig verstehen. Sie scheint radikal anders als das traditionelle Unix- und Linux-Paradigma sein zu wollen. In Linux arbeitet man mit reinem Text. Texteingaben und -ausgaben können in andere Programme und Dateien umgeleitet werden. Das verleiht der Unix-Programmierweise ihre Stärke und ist ein Schlüsselelement der "Unix-Philosophie".

PowerShell hingegen ist darauf ausgelegt, "objektorientiert" zu sein. Wenn man in PowerShell eine Pipeline schreibt, arbeitet man mit einem Objekt anstelle eines Textstroms.

Die Befehlszeilensyntax erschien mir ebenfalls immer etwas zu ausführlich. Ich schätze, wie Microsoft bestimmte gängige Befehle in kürzere MS-DOS- und Unix-Befehle "aliasierte". Es scheint, dass Microsoft erkannt hat, dass dies möglicherweise ein Problem war.

Linux hat mehr Entwickler-Mindshare

Linux, oder besser gesagt Unix, hat nicht nur meine Vorstellungskraft gefangen genommen, sondern auch die der gesamten Entwicklergemeinschaft. Nimm irgendein Programmierbuch zur Hand, und es wird wahrscheinlich davon ausgehen, dass du eine Unix-ähnliche Umgebung verwendest. Das wird entweder eine Linux- oder macOS-Installation sein. Lies Artikel auf Hacker News. Code-Snippets in der Befehlszeile beginnen oft mit einem "$" (Dollarzeichen), was den Standardbenutzerprompt für die meisten Unix-ähnlichen Shells anzeigt, es sei denn, es ist ein "#" (Hash) Zeichen, was bedeutet, dass der Befehl als Superuser ausgeführt werden soll. Unix-ähnliche Systeme, einschließlich macOS, Ubuntu und anderer Linux-Systeme, sind in der Umfrage von Stack Overflow sehr gefragt.

Ein Blick auf das Laptop eines Entwicklers zeigt, dass sie entweder ein macOS-Terminal oder eine Art Linux-Shell verwenden. Das ist der Grund, warum Microsoft WSL überhaupt ins Leben gerufen hat: Das Unix-Paradigma ist unter Programmierern weit verbreitet. Das lernen Entwickler in ihren Informatik-Kursen an der Universität. Damit arbeiten sie in ihrer Freizeit an ihren Projekten. Eine Generation von Entwicklern hat ihre Fähigkeiten mit Open-Source-Tools auf Linux geschärft und hat kein Interesse daran, mit .NET-Tools zu programmieren.

Wenn Entwickler ein Projekt in der realen Welt erstellen, worauf werden sie es aufbauen, Linux oder PowerShell? Es ist offensichtlich, dass es ersteres sein wird. Deshalb werde ich selbst auf Windows mehr Energie darauf verwenden, mehr über die WSL-Seite des Zauns zu lernen.

Wenn ich mit einem Buch oder Tutorial folge, um eine neue Programmiersprache oder ein neues Werkzeug zu lernen, kann ich sicher sein, dass ich, wenn ich das auf Windows tun wollte, ein WSL-Terminal öffnen und mitmachen könnte. Ich bin mir nicht sicher, ob ich das auch von einem PowerShell-Terminal aus könnte.

Linux scheint mehr portabel

Während Microsoft betont, dass PowerShell ein plattformübergreifendes Programm ist, indem es Open Source ist und auf Linux verfügbar gemacht wurde, ist nicht klar warum.

Jeder würde PowerShell auf einem Linux-System nutzen wollen.

Linux-Shells haben den Vorteil, dass sie bereits auf Linux-Distributionen installiert sind. Bei PowerShell muss man es separat vom System installieren. Wenn eine Linux-Distribution es jemals als Standard-Shell verpacken würde, würde ich es gerne testen und in einem zukünftigen Artikel darüber berichten.

Sogar unter Windows, das PowerShell zu bevorzugen scheint, kann ich auf eine Linux-Shell zugreifen. Das war bereits jahrelang wahr, bevor WSL verfügbar wurde. Cygwin, MinGW und UWIN konnten Unix-ähnliche Funktionen unter Windows bereitstellen. Es gab nicht viel Bestrebungen, die Eingabeaufforderung auf Linux zu portieren.

Mit meinem Wissen über die Linux-Befehlszeile kann ich an einem Linux-System, einem Mac und natürlich an einem Windows-System mit WSL Platz nehmen und Befehle aus dem Gedächtnis ausführen und sogar Skripte ausführen, ohne sie ändern zu müssen. Das kann ich nicht umgekehrt sagen.

Die meisten Befehlszeilenprogramme sind Linux-First

Als Folge des großen Einflusses, den Linux im Entwickler-Bereich hat, scheint es, dass neue Befehlszeilentools zuerst für Unix-ähnliche Systeme, insbesondere Linux, geschrieben werden. Das ist nicht überraschend, wenn man bedenkt, wie viele Server Linux ausführen.

Neue Server, Interpreter, Debugger, Editoren und IRC-Clients werden immer noch für Linux geschrieben. Sie scheinen langsamer zu Windows auf PowerShell zu gelangen. Wenn sie Windows erreichen, geschieht dies in der Regel über WSL. Ein technischer Grund könnte hierfür vorliegen. Viele Jahre lang fehlte es Windows an einer echten Pseudokonsole, was die Portierung vieler beliebter terminalbasierter Anwendungen nach Windows erschwerte. Das WSL-Projekt war laut einem Microsoft-Blogbeitrag das Impuls für die Schaffung dieses wichtigen Softwareteils auf Linux.

Ich nutze WSL, weil ich leicht auf die Werkzeuge zugreifen kann, auf die ich angewiesen bin.

Microsoft positioniert PowerShell hauptsächlich als ein Werkzeug für IT-Administratoren zur Verwaltung von Desktops und Servern und weniger als eine Möglichkeit, tatsächlich Programme im Terminal auszuführen, obwohl sie Fortschritte gemacht haben, indem sie Tools wie OpenSSH zur Standardinstallation von Windows hinzugefügt haben.

Ich kann Windows von Linux aus verwalten

Während Microsoft PowerShell als die Möglichkeit proklamiert, Windows über die Befehlszeile zu verwalten und sogar die alte Eingabeaufforderung durch sie ersetzt, kann ich viele Dinge, die ich möglicherweise mit PowerShell machen würde, aus einer WSL-Installation heraus tun.

WSL-Installationen machen das Windows-System von Linux aus über das Verzeichnis /mnt zugänglich. Das bedeutet, dass ich für meine Haupt-Windows-Installation auf dem Laufwerk C:\ all meine Lieblingstools von Linux auf Windows-Verzeichnisse und -Dateien ausführen kann. Es gibt weniger Gründe, sich mit den Eigenheiten von PowerShell zu beschäftigen. Ich kann auch reguläre Windows-Programme von der Linux-Befehlszeile aus starten.

Ich kann dies mit all meinen bevorzugten Tools und Linux-Programmen tun, die ich auf anderen Systemen kennengelernt habe, während ich weiterhin Mainstream-Apps wie Spiele von Windows aus ausführe. Sicher, es gibt mehr Spiele auf Linux und Proton verbessert sich ständig, aber es wird immer noch einige Entwickler geben, die sich nicht die Mühe machen, "make" von ihren Terminals aus einzugeben.

Da mir WSL als langjährigem Benutzer von Unix-ähnlichen Systemen vertrauter ist, werde ich mich bei der Nutzung eines Windows-Systems eher dafür entscheiden als für PowerShell. Vielleicht ist es nur der Gewohnheit, aber mit Linux so allgegenwärtig in der Technik-Welt, werde ich wahrscheinlich in guter Gesellschaft sein.

Bist du neugierig auf weitere Artikel wie Warum ich WSL der PowerShell für die Windows-Eingabeaufforderung vorziehe? Entdecke spannende Inhalte in der Kategorie Linux.

Schreibe einen Kommentar

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

Go up