Entdecken Sie die Leistungsfähigkeit von Bash unter Windows

Microsoft Windows ist zwar der dominierende Player auf dem Desktop, aber der schnell wachsende Open-Source-Softwaremarkt - insbesondere für Administrations- und Entwicklertools - bevorzugt eindeutig Linux. Ganz zu schweigen vom mobilen Markt, auf dem Android Linux-Varianten verwendet. Wenn Sie ein Entwickler unter Windows sind, wird der Drumbeat, um die Linux-Funktionen zu verbessern, immer lauter.

Im Laufe der Jahre hat Microsoft verschiedene Problemumgehungen für die Verwendung von Linux-Funktionen unter Windows eingeführt, z. B. PowerShell mit SSH, Cygwin und MSYS. Das Ausführen von Linux in einer virtuellen Maschine ist eine weitere Option. VMs verbrauchen jedoch eine erhebliche Menge an Ressourcen und bieten keine erstklassige Linux-Erfahrung, da Sie beispielsweise keine lokalen Dateien bearbeiten oder vollen Zugriff auf lokale Laufwerke erhalten können.

Da sich die IT-Welt für viele Projekte Linux zuwendet, hat Microsoft ein neues Angebot entwickelt, um diesen wachsenden Markt zu erschließen. Bash unter Windows ist die Antwort. Hier führen wir Sie durch die Installation von Bash unter Windows und geben Ihnen einen Vorgeschmack darauf, was Sie in der Linux-Befehlszeile tun können - und warum Sie es tun würden.

Eine Übersicht über Bash unter Windows

Bash unter Windows ist eine neue Funktion, die Windows 10 hinzugefügt wurde. Microsoft hat sich mit Canonical, auch bekannt als Entwickler von Ubuntu Linux, zusammengetan, um diese neue Infrastruktur in Windows zu erstellen, die als Windows-Subsystem für Linux (WSL) bezeichnet wird. Entwickler können damit auf einen vollständigen Satz von Ubuntu CLI und Dienstprogrammen zugreifen. Mit einer nativen Linux-Erfahrung können Entwickler Linux-Befehle unter Windows ausführen, einschließlich des Zugriffs auf lokale Dateien und Laufwerke. Da Linux nativ in Windows integriert ist, erhalten Entwickler die Flexibilität, unter Linux und Windows an derselben Datei zu arbeiten. Einfach ausgedrückt, bringt Bash unter Windows Ubuntu Userland ohne den Linux-Kernel auf Windows.

Bash vs. PowerShell

Microsoft hat bereits eine Befehlsshell in PowerShell. Wie unterscheidet sich Bash unter Windows? PowerShell ist das Konfigurationsverwaltungsframework von Microsoft zur Automatisierung von Aufgaben. Es wird verwendet, um Windows mit seiner API-orientierten Architektur zu verwalten. Bash hingegen stützt sich bei der Automatisierung und Entwicklung hauptsächlich auf Textdateien. Die beiden unterscheiden sich sowohl im Fokus als auch im Design. Wenn Sie beispielsweise Dateien mit dem lsBefehl in einem Verzeichnis auflisten, zeigt PowerShell die Ausgabe als Dateiobjekte an, während Bash unter Windows die Ausgabe als eine Reihe von Zeichenfolgen anzeigt. Zum Glück können Sie für Windows-Administratoren mit beiden Lösungen nebeneinander arbeiten und das Beste aus beiden Welten herausholen.

Ein Wort der Vorsicht: PowerShell verfügt über Aliase, mit denen Sie glauben können , dass Sie herkömmliche Bash-Befehle ausführen, wenn Sie tatsächlich PowerShell-Cmdlets ausführen. Dies kann einige Leute stolpern. Ist beispielsweise lsein Alias ​​für den Get-ChildItemBefehl. Ebenso pwdist ein Alias ​​für Get-Locationund cdist ein Alias ​​für Set-Location. Verwenden Sie das Get-AliasCmdlet , um eine Liste aller Aliase in PowerShell anzuzeigen.

Bash unter Windows bietet Open Source-Entwicklern mehrere Vorteile. Durch die Bereitstellung nativer Linux-Funktionen für Windows macht Bash unter Windows das Dual-Booten mit Ubuntu für den Zugriff auf Linux-Funktionen überflüssig. Sie müssen sich nicht für Mac OS X entscheiden, keine virtuelle Maschine ausführen oder Problemumgehungen mit Cygwin erstellen. Es enthält das erforderliche Toolset zum Schreiben und Erstellen von Code für Ihre Szenarien und Plattformen. Wenn Sie über Bash auf das Windows-Dateisystem zugreifen, können Sie mit Windows oder der Linux-CLI an denselben Dateien arbeiten.

Wie hat Microsoft Bash auf Windows portiert?

Auf der Build-Konferenz im April 2016 kündigte Microsoft zur Überraschung vieler das Windows-Subsystem für Linux (WSL) an. Bash on Windows wurde aus einer Partnerschaft mit Canonical geboren und erstmals mit dem Windows 10 Anniversary Update ausgeliefert. Es besteht aus zwei Teilen: dem Kernsubsystem und einem Paket. Das Kernsubsystem ist bereits Teil von Windows 10 Insider Builds und bietet die Linux-API unter Windows, sodass Sie Linux-Bibliotheken und ausführbare Dateien nativ laden können. Canonical bietet das Softwarepaket als Option an. Dieses Softwarepaket bietet Bash- und CLI-Tools, die für die Linux-Umgebung erforderlich sind.

Bash installieren

Um Bash unter Windows ausführen zu können, muss auf Ihrem System das x64 Windows 10 Anniversary Update Build 14393 oder höher ausgeführt werden. Sie ermitteln den Build, indem Sie ihn winverin das Befehlsfeld eingeben .

Wenn die Build-Version kleiner als 14393 ist, können Sie Bash nicht installieren.

Um Bash für einen unterstützten Build zu aktivieren, sollten Sie zuerst den Entwicklermodus aktivieren. Gehen Sie dazu zu Einstellungen, klicken Sie auf Für Entwickler und aktivieren Sie das Optionsfeld Entwicklermodus. Sobald dies erledigt ist, werden Sie aufgefordert, dies zu bestätigen.

Anschließend muss die Funktion Windows-Subsystem für Linux aktiviert sein. Der einfachste Weg, dies zu tun, ist über ein PowerShell-Cmdlet:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Öffnen Sie zum Öffnen von Bash unter Windows die Eingabeaufforderung, geben Sie bashdie Lizenzvereinbarung ein und akzeptieren Sie sie. Bei der Installation von Bash werden einige Änderungen an Ihrem System vorgenommen:

  • Ein Ubuntu-Image im Benutzermodus wird heruntergeladen.
  • Ein versteckter Ordner unter %localappdata%\lxss\ wird erstellt.
  • Eine Verknüpfung wird auf dem Desktop platziert.

Um Bash auszuführen, können Sie jetzt entweder zur Eingabeaufforderung gehen oder das Desktop-Verknüpfungssymbol verwenden.

Nach der erfolgreichen Installation von Bash werden Sie vom System aufgefordert, einen Unix-Benutzernamen und ein Kennwort zu erstellen. Dieser Benutzername und dieses Kennwort gelten für Bash und beziehen sich in keiner Weise auf Ihre Windows-Umgebung.

Erste Schritte mit Befehlen

In Bash stehen Ihnen einige Befehle zum Verwalten der WSL und des Ubuntu-Images zur Verfügung.

  • lxrun: Zum Verwalten der WSL-Instanz
  • lxrun/install: Zum Starten des Download- und Installationsvorgangs
  • lxrun/uninstall: Um das Ubuntu-Image zu deinstallieren
  • lxrun/update: So aktualisieren Sie den WSL-Paketindex
  • lxrun/setdefaultuser: Zum Festlegen des Standard-Bash für Ubuntu-Benutzer

Mit Bash unter Windows können Sie natürlich auch viele „traditionelle“ Bash-Befehle ausführen. Zum Beispiel:

  • grep: Um Linien zu finden, die einem Muster entsprechen
  • sed: Um einen String zu ersetzen
  • echo: Um den Wert auf dem Bildschirm auszugeben
  • var=2: Um eine Variable für zu erstellen $var
  • =!=: Um kleine Textausschnitte zu vergleichen

Navigationsbefehle

Zur Navigation können Sie auch den Windows-DOS-Befehl verwenden cd, um in der Ordnerstruktur zu navigieren.

  • cd temp: Ändert das Arbeitsverzeichnis in den Ordner temp
  • cd\: Bringt Sie zum Stammverzeichnis. Da Ubuntu keine Laufwerksbuchstaben wie Windows hat, ist das Stammverzeichnis das Verzeichnis der obersten Ebene.
  • cd..: Nimmt die Eingabeaufforderung eine Ebene nach oben (dh in das übergeordnete Verzeichnis)
  • cd~: Bringt Sie zum Home-Verzeichnis

In cdPowerShell ist dies in Bash unter Ubuntu jedoch etwas anders. In der WSL-Umgebung werden Ihre Windows-Laufwerke im /mntOrdner gespeichert , und der Name des Laufwerks wird als Unterordner verwendet. Wenn Sie den cdBefehl verwenden, sollten Sie den Pfad entsprechend ändern.

Befehle anzeigen

Im Folgenden finden Sie einige Beispiele, um den Pfad und den Inhalt eines Verzeichnisses zu überprüfen:

  • pwd: Druckt den Pfad oder das Verzeichnis, in dem Sie sich befinden, auf dem Bildschirm
  • ls: Zeigt die Dateien in einem Verzeichnis an

Hilfebefehle

Wenn Sie die Funktionalität und die Parameter der einzelnen Befehle verstehen möchten, kann der manBefehl verwendet werden.

Geben Sie ein man und es wird die Übersicht über den Zweck des Befehls und die zugehörigen Parameter angezeigt. Dies ähnelt dem PowerShell- helpBefehl.

Befehle bearbeiten

Einer der Vorteile von Bash ist, dass Sie mit einfachem Text arbeiten. Dies bedeutet, dass Sie sich nicht mit den Registrierungs- oder Programmeinstellungen herumschlagen müssen. Unabhängig davon, ob Sie die Startsequenz oder die Webserverkonfiguration ändern möchten, bearbeiten Sie einfach die entsprechende Textdatei. Um Bearbeitungsaufgaben effizient ausführen zu können, benötigen Sie einen guten Texteditor. Bash bietet leistungsstarke Editoren, die Ihnen die Arbeit erleichtern. Einige gute Beispiele für Texteditoren, die in Bash verfügbar sind, sind nanound vi.

Paketverwaltung in Bash

Da Sie im Wesentlichen Linux ausführen, stehen Ihnen jetzt auch Paketverwaltungsbefehle in Form von zur Verfügung apt-get. Einige Beispiele:

  • sudo apt-get update: Aktualisiert die Liste der Repositorys, aus denen abgerufen werden soll
  • sudo apt-get upgrade: Aktualisiert die gesamte Software auf die neueste Version
  • apt-cache search app_name: Durchsucht das Repository nach einer bestimmten App
  • sudo apt-get install apt-name: Lädt die jeweilige App herunter und installiert sie

sudowird allen Befehlen vorangestellt, damit Sie einen Befehl unter einem anderen Benutzer ausführen können, dem Superuser (oder Administrator) als Standard. Es ähnelt der Technik "Als Administrator ausführen" in Windows.

Netzwerkbefehle

Um Dateien über HTTP von einem Server oder einer URL herunterzuladen, können Sie jetzt den curlBefehl verwenden. Dieser Befehl ähnelt dem Invoke-WebRequestCmdlet von PowerShell .

Ebenso können Sie eine Verbindung zu einem anderen Remote-Linux-Computer herstellen und Befehle darauf ausführen. Da wir jetzt unter Linux arbeiten, haben wir endlich einen echten SSH-Client, mit dem wir arbeiten können. Anstatt Cygwin oder die aktuelle Beta der OpenSSH-Implementierung für Windows zu verwenden, können wir SSH jetzt nativ über den folgenden sshBefehl ausführen :

ssh Benutzername @ abc.com

Während wir uns mit OpenSSH befassen, haben wir jetzt auch die native Möglichkeit, Dateien mit dem integrierten scpBefehl sicher über SCP zu kopieren :

scp localfile [email protected]: remotedirectory / remotefile

Mit Bash unter Windows haben Sie jetzt viele andere Funktionen zur Hand:

  • Tools wie Git, Python und Ruby direkt unter Windows
  • Befehlszeileneditoren wie emacs und vi
  • Zugriff auf das Windows-Dateisystem über die Bash-Umgebung
  • Linux-Benutzerunterstützung
  • Symlink-Unterstützung
  • Lagermontage über /mnt

Was sind häufige Anwendungsfälle für Bash unter Windows?

Derzeit verwenden viele Entwickler Windows- und Linux-Tools. Dies bedeutet, dass sie Dual-Boot ausführen oder Linux in einer virtuellen Maschine ausführen müssen, um die CLI-Funktionen zu erhalten. Wenn sie diese Tools unter Windows ausführen können, wird Windows zu ihrem primären Desktop. In diesem Fall müssen sie Linux-Apps und -Dienste nicht auf Windows-Systeme portieren. Während einige Benutzer Linux-GUI-Apps unter Windows ausführen konnten, erhalten viele Benutzer eine praktische Linux-CLI, mit der sie einfache Aufgaben ausführen können, ohne einen dedizierten Linux-Computer von Azure zu kaufen oder für einfache Zwecke auf ein Mac-Gerät zu wechseln. Da das Erstellen von Skripten für Bash einfach ist, können Sie Entwicklungsaufgaben wie das Sichern von Websites in Apache automatisieren.

Beispielsweise verwenden viele Entwickler GitHub für Versionskontrollaufgaben. Um unter Windows auf GitHub zuzugreifen, müssen Sie GitHub für Windows installieren und dann die Befehle commit und push verwenden, um Änderungen festzuschreiben. Alternativ müssen Sie das Git-Dienstprogramm herunterladen, was ein langwieriger Prozess ist. Mit Bash unter Windows wird Ihre Arbeit einfach:

apt-get install git

Git Commit

Git Push

Außerdem benötigen Sie unter Bash keine Tools von Drittanbietern, um mit herkömmlichen Linux-Dateitypen wie GZIPed-Tarballs (tar.gz-Dateien) zu arbeiten.

Was sind die Nachteile der Verwendung von Bash unter Windows?

Bash unter Windows befindet sich noch in der Beta-Phase und enthält einige Ecken und Kanten. Laut Microsoft führt Bash unter Windows derzeit möglicherweise nicht alle Ihre Skripte perfekt aus. Microsoft überwacht jedoch aufmerksam die Leistung und das Feedback und nimmt proaktiv Änderungen an dieser Lösung vor.

Zweitens wurde Bash on Windows für die Entwicklergemeinde entwickelt. Es wurde nicht für die Verwaltung von Windows-Umgebungen entwickelt. Obwohl Sie beispielsweise Server-Daemons in WSL ausführen können, bietet es nicht die vollen Funktionen einer vollständigen virtuellen Linux-Maschine. Wenn Sie Serverprozesse unter Produktions-Workloads unter Ubuntu ausführen möchten, sollten Sie nach anderen Alternativen suchen, um ein vollständiges Linux-Betriebssystem auszuführen.

Schließlich bringt Bash unter Windows die Linux-Funktionen zu Windows. Linux-Tools können jedoch nicht mit Windows-Tools und -Anwendungen interagieren. Dies bedeutet keine plattformübergreifenden Funktionen aufgrund ihrer inhärenten Architekturunterschiede.

Bash unter Windows steckt noch in den Kinderschuhen. Obwohl diese Lösung einige Einschränkungen aufweist, arbeitet Microsoft intensiv daran, weitere Funktionen hinzuzufügen, um diese Unterschiede zu beseitigen und Windows zur Plattform Nr. 1 für jede Art von Entwicklungsprojekt zu machen. Behalten Sie dieses Projekt von Microsoft im Auge. Mit der neuen Haltung von Microsoft in der Open Source-Welt wird Bash im Laufe der Zeit sicher zu einem erstklassigen Bürger in Windows.

Zum Thema passende Artikel

  • Das grundlegende Handbuch zu PowerShell für Windows, Windows Server und Exchange
  • 10 wichtige PowerShell-Sicherheitsskripts für Windows-Administratoren
  • Alles über PowerShell-Anbieter und -Module
  • Go Pro: Das Power-Benutzerhandbuch für PowerShell