Windows-Befehlszeilentools

Da Entwickler, die den Großteil unserer Zeit mit der Programmierung unter OS X und Linux verbringen, waren wir neugierig, wie eine moderne Befehlszeileneinrichtung unter Windows aussehen könnte.

Eine StackOverflow-Entwicklerumfrage hat uns daran erinnert, dass mehr Entwickler Windows als jedes andere Betriebssystem verwenden. Daher wollten wir wissen, ob die dort vorhandenen Tools mit denen von *Nix Land vergleichbar sind.

Nachdem wir uns eingehend mit Windows-Befehlszeilentools beschäftigt hatten, haben wir uns für eine Reihe von Tools entschieden, von denen wir glauben, dass sie uns zu 95% erreichen.

Letztendlich landeten wir auf einer Kombination aus:

  • PowerShell
  • ConEmu
  • PSReadLine
  • PSGet
  • Schokolade
  • Babun (optional)

Unten finden Sie einige weitere Hinweise dazu, was diese verschiedenen Maschinen bringen.

PowerShell (Shell)

  • Wesentlich näher an einer echten Shell als an cmd.exe, das uns eine leistungsstarke Skriptumgebung für die Automatisierung von Aufgaben bietet. Ein Vergleich ist gut mit Bash oder zsh.
  • Verzeichnis- und Dateinamen werden automatisch vervollständigt
  • Automatische Vervollständigung von Anwendungsnamen
  • verfügt über integrierte Aliase und Befehle (Cmdlets). Beispiel: Select-String ist grep, Invoke-Elevated ist sudo, Sort-Object ist sort, Get-Process listet alle aktiven Prozesse auf. Beim Wechsel von einer anderen Shell zu PS können Sie mit Set-Alias bekannte Aliasse Windows-Äquivalenten zuordnen. Beispiel: Set-Alias server python -m http.server 8000 startet einen Python-Server, wenn der Alias server verwendet wird.
  • Aliasse können in einem PowerShell-Profil dauerhaft gespeichert werden
  • Unterstützt das Pipeing, z. B. Unix. Im Gegensatz zu Unix werden Objekte statt Textstreams per Pipe bereitgestellt. Das erfordert zwar eine gewisse Gewöhnung, es werden aber Fehler vermieden, wenn Sie eine Immobilie an andere Personen weitergeben möchten.
  • Unterstützt Module. PSGet ist ein Paketmanager für PowerShell, mit dem Sie ihn einfach erweitern können.
  • Optional können Sie Posh-Git in Betracht ziehen, ein PowerShell-Skript für Git für die kontextbezogene Tab-Vervollständigung.

Falls Sie sich für ein Quiz interessieren, finden Sie hier vom leitenden Architekt eine Antwort auf die Gründe, warum MS PowerShell erstellt hat.

PSReadLine (Bearbeitungshilfen für die Konsole)

  • Deutlich verbesserte Bearbeitungsmöglichkeiten in der Konsole
  • Syntaxhervorhebung immer dann, wenn Sie mit der Eingabe von Befehlen beginnen. Syntaxfehler sind deutlich mit einem roten ">" gekennzeichnet.
  • Hochgradig anpassbare Tastenbelegungen
  • Autovervollständigung im Bash-Stil
  • Interaktive Verlaufssuche in Bash/Zsh (Strg + R) Leistungsstarker Durchlauf des Befehlsverlaufs. Mit den Pfeiltasten statt der letzten Zeile sehen Sie frühere mehrzeilige Befehle.
  • Kopieren/Einfügen/Ausschneiden (Strg+C/X/V sollte alles problemlos funktionieren)
  • Gute Unterstützung für Rückgängigmachen/Wiederholen
  • Verlauf wird automatisch gespeichert

Alternativ können Sie auch Clink verwenden. Es bietet ähnliche Funktionen, wurde aber nicht ausschließlich für PowerShell entwickelt.

ConEmu (Konsolenhost)

  • Ein erweiterter Konsolenemulator, in dem Sie Ihre gewünschte Shell ausführen können.
  • Unterstützt das Öffnen mehrerer Terminals in verschiedenen Tabs. Erleichtert das Starten von Terminals als unterschiedliche Nutzer.
  • Äußerst anpassbar: Von Tastenkombinationen über Textauswahl bis hin zu den Farben der Statusleiste können Sie alles ändern.
  • Unterstützt eine geteilte Ansicht
  • Einfache GUI-Apps können in Tabs ausgeführt werden
  • Unterstützung für Sprunglisten unter Windows 7 und höher
  • Unterstützt eine gleichmäßige Änderung der Fenstergröße
  • Antialiasing für Windows-Schriftarten
  • Tabs, die als Ausgangspunkt dienen, können so angepasst werden, dass sie in einem bestimmten Verzeichnis beginnen
  • Intelligentes Kopieren und Einfügen

Manche Nutzer bevorzugen immer noch Console2 und Scott Hanselman hat einen Blogpost darüber verfasst.

Cmder

Nicht vergessen: Mit Cmder, einem Konsolenemulationspaket, das ConEmu, Clink und msysgit kombiniert, erhalten Sie Git-Hilfsprogramme. Cmder bietet Ihnen dank des Monokai-Farbschemas standardmäßig eine schönere User Experience für ConEmu.

Cmder bietet auch einige andere kleine Vorteile, z. B. die Integration in GUI-Apps wie Sublime Text.

Chocolatey (Paketmanager)

  • Eigentlich ist es das Home-Braun für Windows, mit dem Sie Ihre Lieblings-Windows-Apps bequem herunterladen können. Derzeit sind ca. 3.000 Pakete verfügbar, die direkt mit Chocolatey aktualisiert werden können.
  • Unterscheidet sich von Nuget. NuGet wurde für Entwicklungsbibliotheken entwickelt. Chocolatey ist ein binärer Maschinenpaketmanager, der auf der NuGet-Infrastruktur basiert.
  • Bietet effektiv stille Builds

Vielleicht interessieren Sie sich auch für OneGet, den Paketmanager..manager von Microsoft, der unter Windows 10 mit Chocolatey funktionieren sollte.

Babun (Cygwin, vorkonfiguriert)

  • Cygwin (die Linux-ähnliche Umgebung für Windows) ohne einige der historisch bekannten Macken. Die Einrichtung ist mit dem Babun-Installationsprogramm insgesamt wesentlich einfacher. Wenn Sie sich besonders mit Unix auskennen und lieber nicht mit PowerShell lernen möchten, ist cygwin/Babun eine Überlegung wert.
  • Enthält einen Paketmanager namens pact (ähnlich wie brew), der apt-get ähnelt. Das ist ein großes Problem, da Sie derzeit das Cygwin-Installationsprogramm beim Hinzufügen von Paketen noch einmal ausführen müssen, anstatt nur pact zu verwenden.
  • Vim vorinstalliert und vorkonfiguriert
  • Integrierte Unterstützung für oh-my-zsh
  • Automatische Updates

Weiterführende Literatur