Bereits seit längerem bietet Windows 10 mit dem WSL (Windows Subsystem for Linux) Entwicklern die Möglichkeit ein komplettes Linux in Windows ohne direkte Virtualisierung in einem Fenster (wie zum Beispiel mit Hyper-V, VMware oder VirtualBox) laufen zu lassen. Das Subsystem geht viel mehr den Weg den Windows-Kernel selbst zu erweitern. Hierbei wird von Microsoft ein Hauseigener Mini-Linux-Kernel verwendet. Dieser beinhaltet keinen Code vom Original Linux-Kernel, sondern ist durch eigene Implementierungen nur kompatibel zum Großteil der Linux-Funktionen. Aus diesem Grund könne nicht alle Funktionen unter Windows genutzt werden (jedenfalls nicht auf direktem Weg). Ein Beispiel sind zum Beispiel Desktop-Anwendungen von Linux. Findige Tüftler haben allerdings einen Weg gefunden dennoch Desktop-Anwendungen unter Windows laufen zu lassen indem man schlicht einen externen X-Server verwendet. Im Großen und Ganzen ist das WSL von Microsoft aber eben nur zur Implementierung einer Linux-Bash, also der Kommandozeilenumgebung einer Linux-Distribution gedacht.
Auf diesem Weg sollen Entwickler bestimmte Features von Linux nutzen können, ohne direkt ein komplettes virtuelles System aufsetzen zu müssen. Das WSL verbraucht dabei auch deutlich weniger Ressourcen des Systems und kommt von der Performance dennoch an einen richtigen Linux-Rechner heran. Ein weiterer Vorteil wird durch den direkten Zugriff auf das Windows Dateisystem realisiert. Während virtuelle Maschinen nur über Netzwerk-Freigaben auf den eigentlichen Windows-Rechner zugreifen können, besitzt das WSL mit der Linux-Bash direkten Zugriff auf das Windows Dateisystem und besitzt kein eigenes
Windows Terminal
Mit Windows Terminal haben Microsoft-Entwickler zur Build 2019 ein neues Open-Source Projekt der Öffentlichkeit vorgestellt. Dabei handelt es sich um eine UWP-App, welche durch diverse Fluent-Effekte auch sehr hübsch anzusehen ist. Über die Konfigurationsdatei kann man neben der Oberfläche auch Einstellungen für die Powershell und die klassische Kommandozeile bearbeiten. Oder auch eben komplett eigene Anwendungen integrieren.
Ubuntu und andere WSL-Bashes in Windows Terminal integrieren
Ich zeige euch in diesem Leitfaden, wie ihr eine beliebige WSL Linux-Bash z.B. die von Ubuntu in das Windows Terminal integrieren könnt. Ich setze dabei voraus, dass ihr das Windows Subsystem for Linux bereits auf eurem PC eingerichtet habt und auch eine Linux-Bash über den Microsoft Store installiert und eingerichtet habt. Außerdem sollte euch JSON kein Fremdwort sein, da man aktuell die Konfiguration nur direkt in der JSON-Datei vornehmen kann.
Hinweis: Ist euch JSON ein Fremdwort, dann solltet ihr diesem Leitfaden nicht weiter folgen. Ein falsches Zeichen an einer falschen Position kann dafür sorgen, dass Windows Terminal nicht mehr funktioniert!
Zunächst müsst ihr die Konfigurations-Datei von Windows Terminal öffnen, dazu geht in der Titel-Leiste auf den Pfeil und klickt dort auf Settings. Anschließend sollte sich eine profiles.json in einem Editor eurer Wahl öffnen. Kleiner Tipp: Verwendet einen Editor, welcher JSON beherrscht (am besten Visual Studio Code 😉).
Navigiert in den Bereich „profiles“, das sollte der erste Bereich nach „globals“ sein. In diesem Bereich findet ihr nundie JSON-Strukturen, welche die verfügbaren Kommandozeilen in Windows Terminal definieren. Das Ganze sollte ungefähr wie folgt aussehen:
Hinter das letzte Objekt setzt ihr ein Komma, gefolgt von folgendem Code:
{ "acrylicOpacity" : 0.80000001192092896, "background" : "#300A24", "closeOnExit" : true, "colorScheme" : "Campbell", "commandline" : "wsl.exe -d NAME_DER_LINUX_BASH", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 12, "guid" : "NEU_GENERIERTE_GUID", "historySize" : 9001, "icon" : "PFAD_ZUM_ICON", "name" : "ANZUZEIGENDER_NAME", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : true }
Nun gibt es ein paar Felder mit Werten zu füllen.
- Als erstes müsst ihr natürlich definieren, welche Linux-Bash ausgeführt werden soll. Das gebt ihr in der Zeile „commandline“ an. Der Wert dort muss für das WSL wie folgt aussehen: „wsl.exe -d NAME_DER_LINUX_BASH“. Ersetzt NAME_DER_LINUX_BASH mit dem registrierten Namen der Bash. Seid ihr euch nicht sicher, wie die installierte heißt oder welche euch generell zur Verfügung stehen? Dann führt einmal in der Powershell folgenden Befehl aus:
wsl.exe --list
- Als nächstes müsst ihr für das Feld „guid“ zwingend eine neue GUID für diesen Eintrag generieren. Dazu gebt ihr wieder in der Powershell folgenden Befehl ein:
New-Guid
Beachtet, dass ihr den Wert mit einer öffnenden und schließenden Klammer speichern müsst. Also zum Beispiel “ {32b17116-558e-4318-b8da-c4fd1dcd41cc}“.
- Nun vergebt ihr im Feld „name“ einen Titel für die Anzeige. Am besten entsprechend der gewählten Linux-Variante.
- Als letztes könnt ihr noch ein Icon für das Menü angeben. Möchtet ihr das nicht entfernt einfach die Zeile „icon“. Andernfalls sucht euch eine beliebige PNG-Datei, welche den Maßen 32px x 32px entspricht. Anschließend kopiert ihr den absoluten Pfad zu dieser Grafik in den Wert für „icon“. Die Zeile sollte anschließend also so aussehen: „icon“: „C:\Users\Benutzername\icon.png“.
Wenn ihr jetzt alles richtig gemacht habt, sollte im Menü auch die neue Linux-Bash angezeigt werden. Klickt auf den Eintrag und ihr solltet einen neuen Tab mit der Linux-Bash angezeigt bekommen.
Ich hoffe für euch ist dieser Leitfaden nützlich. Schreibt gerne Vorschläge und andere Tipps in die Kommentare.
Ich machs andersrum. Manjaro Linux nativ auf dem Laptop und gut getrennt Windows in ner vm auf azure. Da kann ich bei Bedarf mehr cores und ram zugeben oder abziehen wie ich’s brauche und hab ne Gigabit Leitung ins Web.
Und ich hab kein von Windows unterdrücktes armes Linux.
Aber wer hat schon ne Gbit Leitung.. Ich hab offiziel ne 30 mbit Leitung in der im Durchschnitt nicht mehr als 15mbit übrig bleiben.. Und das mitten in einem Ballungsgebiet.
Ich mach es ganz anders… Wenn windows intern auf ner SSD… Und Linux extern suf ner USB 3 atze. Allerdings sind die Zeiten einer hohen Linux Nutzung vorbei… Trotz aller Bequemlichkeiten die inzwischen auch Linux zu bieten hat, im vergleich zu meinen Anfängen in den 90ern.
Azure hat die gigabit-Leitung ins Web.
Ja aber nur weil azure das hat, muss das nicht jeder haben.. Denn es gilt immer die schwächste leitung bestimmt die Geschwindigkeit..
Per remote desktop reicht mir das, was ich als kabel-Vertrag hab, um mich per remote desktop auf die windows maschine zu konnektieren. Fühlt sich wie nativ an. Kostet wenig und die Windows Lizenz ist mit dabei.
Aber dan hast du eben keine Gbit Leitung, darauf wollte ich hinaus. Wenn dir das reicht, ist ja OK.
Ich habe es noch anders gemacht. Da ich Geräte von HP habe ich am BIOS Rum geschraubt. Da es nicht mal im Dualboot ging oder Windows und daneben Linux-Distribution zu nutzen.. Doch das wollte ich nicht. Habe das mal Ct
„Hierbei wird von Microsoft ein Hauseigener Mini-Linux-Kernel verwendet. Dieser beinhaltet keinen Code vom Original Linux-Kernel, sondern ist durch eigene Implementierungen nur kompatibel zum Großteil der Linux-Funktionen.“ Das gilt für WSL1. Bei WSL2 wird hingegen ein modifizierter Linux-Kernel verwendet. „Bereits seit längerem bietet Windows 10 mit dem WSL (Windows Subsystem for Linux) Entwicklern die Möglichkeit ein komplettes Linux in Windows ohne direkte Virtualisierung in einem Fenster (wie zum Beispiel mit Hyper-V, VMware oder VirtualBox) laufen zu lassen.“ Und das gilt wiederum für WSL2. WSL2 setzt auf einem Hypervisor auf. WSL1 mappt hingegen nur die Linux-API und -Aufrufe zur Windows API und… Weiterlesen »
Besten Dank. Ich habe hier aber ein relativ frisch aufgesetztes Windows 10 Enterprise auf einem Ryzen 3900X, Ubuntu hatte ich ebenfalls via Store vor einigen Tagen installiert (keine Sorge, zusätzliche habe ich auch noch eine Server und eine Desktop-Version als Hyper-V-VM :-)) und soeben Windows Terminal. Und ubuntu wird mir direkt ohne jeglichen manuellen Eingriff im Menü angeboten, also das WSL. sudo apt-get update/upgrade etc. funktioniert ebenfalls auf Anhieb. Ist vielleicht durch ein Update von Windows Terminal nun von Haus aus integriert, falls es das nicht von Anfang an war.