Anwendungsbericht: Entwicklung mit dem Windows Subsystem für Linux

Das Windows Subsystem für Linux ermöglicht die Ausführung von Linux-Befehlen auf der Kommandozeile in Windows 10.

Seit Herbst 2017 gilt das Windows Subsystem für Linux (WSL) als final und nicht mehr in der Betaphase. In 2016 war es erstmalig angekündigt worden. In diesem Anwendungsbericht gibt Inpsyder Daniel Hüsken eine kurze Einführung in das WSL und erklärt, wie ich das WSL genutzt wird und welche Vorteile es Entwicklern bietet.

Das kann das Windows Subsystem für Linux (WSL)

Das Windows Subsystem für Linux lässt Entwickler eine Linux Umgebung (inklusive der meisten Kommandozeilen Werkzeuge und Anwendungen) ohne den Overhead einer Virtuellen Maschine direkt auf einem Windows System ausführen.

In der Doku heißt es:

  1. Choose your favorite Linux distributions from the Windows Store.
  2. Run common command-line utilities such as grep, sed, awk, etc.
  3. Run Bash shell scripts and Linux command-line applications including:
    • Tools: vim, emacs, tmux
    • Languages: Javascript/node.js, Ruby, Python, C/C++, C# & F#, Rust, Go, etc.
    • Services: sshd, MySQL, Apache, lighttpd
  4. Install additional Linux tools using the distribution’s built in package manager (apt-get, for example).
  5. Invoke Windows applications from the Linux console.
  6. Invoke Linux applications on Windows.

Um das WSL zu benutzen, benötigt man Windows 10 mit dem Fall Creators Update (Version 1709). Denn dort ist das WSL in der finalen Version erschienen und die Linux Distributionen stehen im Microsoft Store zur Verfügung. In älteren Windows 10 Versionen ist das WSL noch im Beta Stadium und nur mit Ubuntu erhältlich.

Auch wenn die meisten Anwendungen mit dem WSL funktionieren, gibt es dennoch einige Wenige, die nicht gehen. Das ist beispielsweise Docker. Dafür gibt es zwei mögliche Gründe. Entweder führen diese Anwendungen Systemaufrufe unter Linux aus, die noch nicht implementiert sind oder sie benötigen eine grafische Oberfläche.

Installation des WSL

Die Installation des WSL ist sehr einfach. Folgend eine kurze Anleitung.

Zuerst muss das Feature aktiviert werden:

  • Rechtsklick auf den Windows Start Button, dann “Apps und Features” auswählen
  • In “Einstellung suchen“ oben nach “Windows-Features” suchen und öffnen
  • Dort nach unten scrollen und einen Haken bei “Windows-Subsystem für Linux” machen. Ok klicken
  • Neustart

Als Nächstes installiert man die Linux Distribution aus dem Microsoft Store:

  • Microsoft Store öffnen
  • Nach der gewünschten Distribution suchen (bei mir Ubuntu)
  • Installieren Klicken
  • Dann Ubuntu starten (Die restliche Installation wird ausgeführt.)
  • UNIX Benutzernamen und ein Passwort zu vergeben (Das Passwort braucht man für den “sudo” Zugriff)

Fertig ist die Installation.

Jetzt kann das WSL über das Ubuntu Icon oder durch die Eingabe von “bash.exe” gestartet werden.

So arbeite ich mit dem Windows Subsystem für Linux

Da das WSL nicht viel von Haus aus installiert hat, kann man jetzt ganz normal mit “sudo apt-get” Pakete installieren. Ich habe mir dafür ein Provisioning Script erstellt, welches einige Tools wie GIT und PHP installiert und auch schon Verknüpfungen erstellt, damit GIT per SSH funktioniert. Dies lasse ich jetzt einmal laufen.

Man kann die ganze WSL auch leicht wieder zurücksetzen. Dafür verwendet man den Befehl “lxrun /uninstall /full” im Administratormodus der normalen Eingabeaufforderung und deinstalliert anschließend die Ubuntu App.


Das Dateisystem von Windows ist in der WSL unter “/mnt/<Laufwerksbuchstabe>/”.

Wenn man mit PHPStorm und der WSL arbeitet, muss man zur Zeit noch viele Tools unter Windows und dem WSL installieren. Allerdings arbeitet JetBrains daran, WSL Support anzubieten. Dann könnte GIT auch nur noch innerhalb des WSL installiert werden. Wenn man allerdings sowieso nur mit der Kommandozeile arbeitet, ist dies wohl kein so großes Problem.

Allerdings lässt sich das WSL jetzt schon als Terminal in PHPStorm einbinden.

Dafür in den Settings einfach nach “Terminal” suchen und bei “Shell path” “C:WindowsSystem32bash.exe” eintragen.

Anmerkung: Für die Entwicklung ist es wichtig, dass nicht mit absoluten Pfaden gearbeitet wird. Da es vorkommen kann, dass man PHP in Windows oder dem WSL benutzt, sollte man immer die Konstante __DIR__ verwenden.

Man kann aus der Shell auch Windows-Programme starten. Dafür einfach die .exe Datei ausführen.
Andersherum können auch Linux-Kommandos unter Windows aufgerufen werden. Dafür muss man allerdings “bash.exe -c “ls”” verwenden. Die Pfade übersetzt das WSL automatisch oder man muss sie mit /mnt/… angeben.

Auch Docker läuft bei mir in dem WSL. Hier geht man folgendermaßen vor: Docker installieren unter Windows und der WSL und dem Docker in der WSL sagen, dass es Docker unter Windows nutzen soll, sodass man zumindest die Kommandos nutzen kann.

Meine Bewertung: Vorteile bei Entwicklung

Die Verwendung des Windows Subsystem für Linux bietet mir den großen Vorteil in der Webentwicklung, dass ich auch Linux-Scripte ausführen kann, die sonst unter Windows nicht funktionieren. Obendrein bleibe ich in einer gewohnten Umgebung, da die meisten Webserver unter Linux laufen. Außerdem kann man auch die ganzen schönen Linux-Befehle unter Windows benutzen.

Ich benutze fast ausschließlich nur noch das WSL unter Windows, wenn ich eine Shell gebrauche.

Mit dem Werkzeug, was Microsoft da geschaffen hat, findet für mich die Überlegung, auf ein anderes Betriebssystem umzusteigen, gar nicht mehr statt. Das WSL bietet mir alles, was ich brauche.

Du bist anderer Meinung? Oder hast Fragen? Dann hinterlasse einfach einen Kommentar.