Ist Windows PowerShell so leistungsfähig wie das Terminal von Unix/Linux?

Ist Windows PowerShell so leistungsfähig wie das Terminal von Unix/Linux?

Ist WindowsPower Shellso leistungsstark und effizient wie Linux terminal?

Offline-Leute sagen mir, ohne viel zu erklären, dass Windows PowerShell ein Versuch ist, Unix-Administratoren die Verwendung von Windows angenehmer zu machen. Aber ich vermute, sie werden sich nur wohl fühlen, wenn es die gleiche (oder fast) Effizienz bietet.

Antwort1

Nun, Ihr erstes Problem ist, dass Sie eine Shell (PowerShell) mit einem Terminal vergleichen. Unter Linux ist ein Terminal etwas, das zeichenbasierte E/A sendet und empfängt und von dem angenommen wird, dass ein interaktiver Benutzer dahinter steht (mit anderen Worten, es ist die GUI-Anwendung, die verwendet wird, umenthalteneine Shell). Eine der am häufigsten verwendeten Shells istinnerhalbUbuntus Terminal istSchlag, aber es gibt noch andere.

Offline-Benutzer erzählen mir ohne große Erklärungen, dass Windows PowerShell ein Versuch sei, Unix-Administratoren die Verwendung von Windows zu erleichtern.

Eigentlich sollte man sagen, dass PowerShell ein Windows ist, das einen Großteil derWMI,COMUnd.NETZObjektmodell in einer interaktiven und skriptfähigen Befehlszeilenumgebung - und dass diese Befehlszeilenumgebung weiterhin viele der Konzepte - wie Pipelines und I/O-Umleitung - von Unix-Shells übernimmt, genau wie das alte DOS (2.0 und höher) command.com. cmd.exePipelines arbeiten mit Objekten in PowerShell. Sie können Dinge wie HTML erstellen und möglicherweiseExcelTabellenkalkulationen im Handumdrehen erstellen, wenn Sie genug wissen. Es ist sicherlich ein Upgrade/Ersatz für die alte cmd.exeShell, die sich seitWindows NT 4.0.

Von der Syntax her ähnelt es weniger den Unix-Shells (obwohl letztlich keines der Cmdlets /als Schalter oder Parameteranzeige verwendet), es gibt aber viele Aliase zu klassischen Unix-Befehlen – so lsfunktioniert etwa die Eingabe in ein PowerShell-Fenster wie dir. Aber das sind eben nur Aliase („Get-Alias“ listet diese auf?).

Was die Fähigkeiten von PowerShell betrifft, so gab es tatsächlich ähnliche Fähigkeiten, allerdings nur in Form von Skripten, vonVBScriptUndCScript– obwohl beide vor .NET entstanden sind.

Eine Sache, die Unix-Benutzer bei der Verwendung von Bash die meiste Zeit nicht tun müssen, ist, sich mit dem möglicherweise sehr komplexen Objektmodell eines Programmierers oder Objekts vertraut zu machen, das für viele fortgeschrittene und einfache PowerShell-Aufgaben erforderlich ist. Dies ist jedoch nur möglich, weil es für viele Standard-POSIXBefehle. Windows hat diese Tradition nicht - es scheint, dass Sie mmcfür Verwaltungsaufgaben lieber eine Konsole verwenden, wobei im Laufe der Jahre hier und da Befehle hinzugefügt wurden. Darüber hinaus sind viele bekannte Unix-Dienstprogramme komplex und erfordern vor der Verwendung einiges Studium -rsync,wgetund viele andere. Die Effizienz hängt wahrscheinlich vor allem davon ab, wie gut man das verwendete Werkzeug kennt.

Antwort2

Windows PowerShell und Unix-Shell sind zwei verschiedene Dinge, die beide ihre Vorteile haben.

Unix (Shell) hat die Philosophie, dass alles eine Datei ist. Auf die Eingabe und Ausgabe eines Unix-Befehls kann wie auf eine Datei zugegriffen werden. Dies macht die Befehlsverkettung wirklich einfach und die Wiederverwendung der Ausgabe eines Befehls durch einen anderen ist die Stärke der Unix-Shell.

Bei Windows PowerShell ist, soweit ich weiß, alles ein Objekt. Sie können das Ergebnis eines Befehls als Objekt an einen anderen übergeben. Das kann wirklich leistungsfähig sein, hat aber nicht das einfache Konzept von Unix.

Ich glaube nicht, dass PowerShell so effizient ist wie eine Unix-Shell, andere glauben jedoch, dass es so ist.

Aber der Vergleich ist hinfällig, da Windows kein *nix-System ist und daher *nix-Konzepte nicht anwendbar sind. Im Vergleich zuMS-DOS, PowerShell stellt eine große Verbesserung dar.

verwandte Informationen