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.
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.
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
und cmd.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 alten cmd.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 Eingabe ls
in ein PowerShell-Fenster dir
. 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.