394 Stimmen

Ist PowerShell bereit, meine Cygwin-Shell unter Windows zu ersetzen?

Ich bin am Überlegen, ob ich PowerShell lernen soll, oder ob ich einfach bei Cygwin /Perl-Skripte/Unix-Shell-Skripte, usw.

Der Vorteil von PowerShell wäre, dass die Skripte leichter von Teamkollegen verwendet werden könnten, die nicht über Cygwin verfügen; allerdings weiß ich nicht, ob ich wirklich so viele Skripte für allgemeine Zwecke schreiben würde, oder ob die Leute sie überhaupt verwenden würden.

Die Unix-Skripterstellung ist so leistungsstark, kommt PowerShell dem nahe genug, um einen Wechsel zu rechtfertigen?

Hier sind einige der spezifischen Dinge (oder Entsprechungen), nach denen ich in PowerShell suchen würde:

  • grep
  • sortieren
  • uniq
  • Perl (wie nah kommt PowerShell an die Fähigkeiten von Perl heran?)
  • AWK
  • sed
  • file (der Befehl, der Dateiinformationen liefert)
  • usw.

6voto

Nick Punkte 2487

Wenn Sie Shell-Skripte mögen, werden Sie PowerShell lieben!

Start bei Eine geführte Tour durch die Microsoft Command Shell (Ars Technica).

4voto

Die Cmdlets in PowerShell sind sehr schön und funktionieren zuverlässig. Ihre Objektorientierung gefällt mir sehr, da ich ein Java/C#-Entwickler bin, aber es ist keineswegs ein vollständiger Satz. Da es objektorientiert ist, fehlt es an einer Menge der Textstrom Reifegrad des POSIX-Werkzeugsatzes ( awk y sed um nur einige zu nennen).

Die beste Antwort, die ich auf das Dilemma gefunden habe, OO-Techniken zu lieben und die Reife der POSIX-Tools zu lieben, ist, beides zu nutzen! Ein großartiger Aspekt der PowerShell ist, dass sie Objekte hervorragend in Standard-Streams einbinden kann. PowerShell verwendet standardmäßig eine Objektpipeline, um seine Objekte zu transportieren. Dabei handelt es sich nicht um die Standard-Streams (Standard Out, Standard Error und Standard In). Wenn PowerShell die Ausgabe an einen Standardprozess weitergeben muss, der keine Objektpipeline hat, konvertiert es die Objekte zunächst in einen Textstrom. Da dies so gut funktioniert, ist PowerShell ein hervorragender Ort, um POSIX-Tools zu hosten!

Der beste POSIX-Werkzeugsatz ist GnuWin32 . Die Installation dauert mehr als 5 Sekunden, aber es ist die Mühe wert, und soweit ich sagen kann, verändert es Ihr System nicht (Registry), c:\windows\* Ordner, usw.), außer dem Kopieren von Dateien in die von Ihnen angegebenen Verzeichnisse. Das ist besonders praktisch, denn wenn Sie die Werkzeuge in einem gemeinsamen Verzeichnis ablegen, können viele Personen gleichzeitig darauf zugreifen.

GnuWin32 Installationsanleitung

Herunterladen und Ausführen der exe (es ist von der SourceForge-Website ) und verweist auf ein geeignetes Verzeichnis (ich werde C:\bin ). Es wird eine GetGnuWin32 Verzeichnis, in dem Sie Folgendes ausführen werden download.bat entonces install.bat (ohne Parameter), woraufhin es eine C:\bin\GetGnuWin32\gnuwin32\bin das der nützlichste Ordner ist, den es je auf einem Windows-Rechner gab. Fügen Sie dieses Verzeichnis zu Ihrem Pfad hinzu, und schon kann es losgehen.

2voto

greg Punkte 259

Ich habe nicht gesehen, dass sich die PowerShell wirklich durchgesetzt hat, zumindest noch nicht. Es könnte sich also nicht lohnen, sie zu lernen, es sei denn, die anderen in Ihrem Team kennen sie bereits.

In Ihrer Situation sind Sie vielleicht mit einer Skriptsprache besser dran, hinter der auch andere stehen können, wie das von Ihnen erwähnte Perl oder andere wie Ruby oder Python.

Ich denke, es hängt viel davon ab, was Sie tun müssen. Ich persönlich benutze Python für meine eigenen Skripte, aber ich weiß, wenn ich anfange, etwas zu schreiben, werde ich es nie weitergeben können - also versuche ich, nichts allzu Revolutionäres zu machen.

2voto

johnnyB Punkte 776

Warum nicht beides verwenden? Rufen Sie PowerShell-Skripte in Cygwin genauso auf wie alle anderen interpretierten Skripte wie Perl usw.

Ich tue dies so oft, dass ich geschrieben habe https://bitbucket.org/jbianchi/powershell für einen Bash-Wrapper zum Aufruf von powershell.exe in Cygwin. Es kann verwendet werden als shebang als erste Zeile eines powershell.exe .ps1-Skripts (da PowerShell auch "#" als Kommentar verwendet). Siehe https://bitbucket.org/jbianchi/powershell/wiki/Home für Beispiele

1voto

yaxzone Punkte 347

In ein paar Zeilen: Cygwin und PowerShell sind unterschiedliche Tools, aber wenn Sie Cygwin installiert haben, können Sie die ausführbaren Cygwin-Dateien in einer PowerShell-Sitzung ausführen. Ich habe mich so sehr an PowerShell gewöhnt, dass ich grep, sort, awk usw. nicht mehr verwende. Es gibt so ziemlich alle eingebauten Alternativen in PowerShell, und wenn nicht, kann man ein Cmdlet finden.

Das Haupttool, das ich verwende, ist ssh.exe, allerdings innerhalb einer PowerShell-Sitzung.

Es funktioniert großartig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X