Mit Windows 10 hat Microsoft das "Windows Subsystem for Linux", kurz WSL (WLS 1) eingeführt. Damit ist es möglich, Linux-Software unter Windows auszuführen. Wichtig ist dabei, bei WSL handelt es sich (noch) nicht um eine virtuelle Maschine! Microsoft hat eine Linux-kompatible Kernelschicht einwickelt, über die Linux-Programme ausgeführt werden können.
Ich finde, mit dem Windows Subsystem for Linux hat Microsoft ein wirklich cooles Tool eingebaut, welches ich sehr oft nutze. Deshalb heute der Blog, wie man WSL installiert und richtig Konfiguriert, damit es noch mehr Spaß macht!
WSL kann viel mehr sein, als nur ein guter SSH Client!
Anmerkung
Ich habe für diesen Blog extra eine virtuelle Maschine mit Windows 10 installiert, um alle Schritte nochmal durchgehen zu können.
Installation
Die Installation selbst ist Kinderleicht und wird auch in der offiziellen Dokumentation von Windows beschrieben. Zuerst muss man die PowerShell als Administrator starten.
Über den folgenden Befehl, wird dann WSL als Windows-Feature nachinstalliert.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Anschließend muss ein Neustart durchgeführt werden.
Danach können über den Microsoft Store verschiedene Linux-Distributionen bezogen werden. Ich habe mich einmal für Ubuntu 18.04 und für Ubuntu 16.04 entschieden.
Für den Download ist (soweit ich weiß) ein Microsoft-Konto nötig.
Sobald der Download abgeschlossen ist, kann "Ubuntu" über das Startmenü gestartet werden.
Beim ersten Startvorgang, wird die Installation abgeschlossen. Dabei setzt ihr auch euren
Benutzernamen und ein Passwort. Das Passwort wird dann später benötigt, um sudo
nutzen zu können.
Ab jetzt ist die Installation abgeschlossen.
Installation und Konfiguration von ConEmu
Wer WSL nur als einen SSH Client verwenden möchte, der ist theoretisch jetzt schon fertig.
Ich nutzte WSL allerdings in der Regel als Linux-Alternative. So kann ich zum Beispiel schnell und einfach Linux-Anwendungen unter Windows entwickeln. Damit dies alles etwas leichter von der Hand geht, empfele ich jedem den Terminal-Emulator ConEmu zu verwenden. Hier geht es zum Download.
ConEmu unterstützt verschiedene Terminals, wie CMD oder die PowerShell. Über die WSLBridge / Bash on Windows können wir auch unser Ubuntu in ConEmu nutzen und erhalten praktische Features wie Tabs und vieles mehr.
Wer wie ich, zwei oder mehr Linux-Distributionen installiert hat, muss sich als erstes entscheiden, welches Linux er verwenden möchte. Ich habe in meinem Beispiel hier Ubuntu 16.04 und Ubuntu 18.04 zur Auswahl. In ConEmu möchte ich allerdings Ubuntu 18.04 verwenden. Dafür muss ich zuerst die UUID von Ubuntu 18.04 auslesen. Dafür müssen einfach die folgenden zwei Befehle in einer PowerShell ausgeführt werden:
get-childitem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss
get-childitem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss | ft name
Sucht in der Ausgabe die Distributione, die ihr verwenden möchtet. Der erste Befehl liefert euch dafür die UUID und den Namen.
Mit dem zweiten Befehl, bekommt ihr eine Liste mit allen UUIDs, wo ihr dann die entsprechende UUID einfach bequem kopieren könnt.
In meinem Fall ist die UUID für Ubuntu 18.04 die 79560d72-5f05-484c-ac2f-db60a352f038
.
Öffnet jetzt die Einstellungen von ConEmu.
Wählt nun Tasks
und dann {Bash:bash}
.
An den Befehl in der unteren rechten Box hängt ihr nun folgendes an: --distro-guid={79560d72-5f05-484c-ac2f-db60a352f038}
.
Hier tragt ihr natürlich eure UUID ein.
Zur Verdeutlichung, habe ich im Editor nochmal einen Vorher-Nachher Vergleich gemacht.
Damit Ubuntu das Standardterminal ist, wenn ihr einen Tab öffnet, solltet ihr noch unter Startup
{Bash::bash}
auswählen.
Klick auf Save settings
um die Einstellungen zu speichern.
Geschafft! Ab jetzt könnt ihr ConEmu mit WSL nutzen. Viel Spaß mit Linux auf Windows!
Ihr könnt ConEmu natürlich auch weiterhin noch für CMD oder PowerShell verwenden.
Nächste Woche geht es damit weiter, Anwendungen mit einer grafischen Oberfläche (GUI) im Windows Subsystem for Linux zu benutzen.
Noch eine kleine Info. Nicht jedes Programm funktioniert unter WSL. Als kleines Beispiel sei mal
systemctl
genannt. Wie zu Beginn gesagt, handelt es sich bei Windows Subsystem for Linux nicht
um eine virtuelle Maschine. Als Alternative für
systemctl
kann man aber einfach service
nutzen. (service apache2 start
zum Beispiel).