Ist Windows PowerShell so leistungsstark und effizient wie Linux terminal
?
Leute, die offline sind, erzählen mir, ohne viel zu erklären, dass Windows PowerShell ein Versuch ist, Unix-Administratoren das Gefühl zu geben, mit Windows besser zurechtzukommen. Aber ich denke, sie werden sich nur wohlfühlen, wenn sie (oder fast) die gleiche Effizienz haben.
linux
terminal
powershell
Kern
quelle
quelle
People offline tell me ... that Windows Powershell is an attempt to make UNIX administrators feel more comfortable using Windows.
Diese Leute haben weder Unix noch Powershell benutzt.Antworten:
Nun, Ihr erstes Problem ist, dass Sie eine Shell (PowerShell) mit einem Terminal vergleichen. Unter Linux sendet und empfängt ein Terminal zeichenbasierte E / A und es wird angenommen, dass sich ein interaktiver Benutzer dahinter befindet (mit anderen Worten, es ist die GUI-Anwendung, die zum Enthalten einer Shell verwendet wird). Eine der am häufigsten verwendeten Shells im Ubuntu-Terminal ist Bash , aber es gibt auch andere.
Richtig ist, dass PowerShell Windows einen Großteil des WMI- , COM- und .NET- Objektmodells in einer interaktiven und skriptfähigen Befehlszeilenumgebung verfügbar macht - und dass diese Befehlszeilenumgebung weiterhin viele Konzepte wie Pipelines ausleiht und I / O-Umleitung - von Unix-Shells, genau wie das alte DOS (2.0 und höher)
command.com
undcmd.exe
. Pipelines arbeiten mit Objekten in PowerShell. Sie können HTML und möglicherweise Excel- Tabellen direkt erstellen , wenn Sie genug wissen. Es ist sicherlich ein Upgrade / Ersatz von der altencmd.exe
Shell, die sich gegenüber Windows NT 4.0 nicht wesentlich verändert hat .In Bezug auf die Syntax
/
ähneln sie weniger den Unix-Shells (obwohl letztendlich keines der Cmdlets als Schalter oder Parameterindikator verwendet wird), aber es gibt viele Aliase für klassische Unix-Befehle - wie die Eingabels
in ein PowerShell-Fensterdir
. Dies sind aber nur Aliase ("Get-Alias" listet diese auf?).In Bezug auf die Funktionen von PowerShell verfügten Sie tatsächlich über ähnliche Funktionen, die nur über Skripte von VBScript und CScript verfügten - obwohl beide älter sind als .NET.
Eine Sache, die Unix-Leute bei der Verwendung von Bash meistens nicht tun müssen, ist, sich mit dem möglicherweise sehr ausgeklügelten 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 POSIX- Standardbefehle eine eindeutige Konvention für die Ausgabe von direktem Text gibt . Windows hatte diese Tradition nicht - anscheinend bevorzugen Sie die Verwendung einer
mmc
Konsole für Administrationsaufgaben, mit Befehlen, die im Laufe der Jahre hier und da hinzugefügt wurden. Viele bekannte Unix - Utilities sind komplex und erfordern eine Studie vor dem Gebrauch Darüber hinaus -rsync
,wget
und viele andere. Effizienz hängt wahrscheinlich mehr als alles andere davon ab, wie gut man das verwendete Werkzeug kennt.quelle
Windows PowerShell und Unix-Shell sind zwei verschiedene Dinge, die beide Vorteile haben.
Unix (Shell) hat die Philosophie, dass alles eine Datei ist. Auf die Ein- und Ausgabe eines Unix-Befehls kann wie auf eine Datei zugegriffen werden. Dies macht das Verketten von Befehlen wirklich einfach und die Wiederverwendung der Ausgabe eines Befehls durch einen anderen ist die Stärke der Unix-Shell.
Soweit ich weiß, ist mit Windows PowerShell alles ein Objekt. Sie können das Ergebnis eines Befehls als Objekt an einen anderen übergeben. Dies kann sehr mächtig sein, hat aber nicht das einfache Konzept von Unix.
Ich glaube nicht, dass PowerShell so effizient ist wie eine Unix-Shell, aber andere glauben, dass es so ist.
Der Vergleich ist jedoch umstritten, da Windows kein * nix-System ist und daher keine * nix-Konzepte gelten. Im Vergleich zu MS-DOS ist PowerShell eine große Verbesserung.
quelle
|
,<
oder>
.