Entwickler

[Leitfaden] Ubuntu und andere WSL-Shells in neue Windows Terminal App integrieren

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.

  1. 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
  2. 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}”.

  3. Nun vergebt ihr im Feld “name” einen Titel für die Anzeige. Am besten entsprechend der gewählten Linux-Variante.
  4. 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.

Zeige 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.

        • 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 -Aufrufe.
    WSL1 ist etwas wie WINE unter Linux - nur in die andere Richtung.
    WSL2 ist hingegen eine Virtuelle Maschine, wo Microsoft noch immer dabei ist, sie perfekt so in Windows zu integrieren, daß man nicht merkt, daß es in einer Art VM läuft.

    Grüße
    theuserbl

  • 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.

Teilen
veröffentlicht von
Lars

Neuste Artikel

Microsoft bestätigt Verschiebung von neuer OneDrive-Funktion

Verschiebe nicht auf morgen, was Du heute kannst besorgen – so ein bekannter Spruch. Doch…

6. Mai 2024

Microsoft bietet 2 Day-1 Titel im neuen Xbox Game Pass für den Monat Mai

Möge die Macht mit Dir sein – auch bei Deinen Wikinger-Abenteuern! Zwei absolute Top-Titel haben…

6. Mai 2024

Wie viel Einfluss hat Bill Gates noch auf Microsoft? Interne Quellen sagen – viel!

Bevor wir mit dieser neuen Meldung beginnen, nein, dies ist keine Bill Gates Verschwörungstheorie, von…

3. Mai 2024

Amazon Deal: HP Smart Tank 5105 3-in-1 Multifunktionsdrucker – 33 Prozent sparen

Dieses Mal möchten wir die Gelegenheit nutzen und Euch einen 3-in-1 Multifunktionsdrucker aus dem Hause…

3. Mai 2024

Marktanteile: Windows 11 muss Abwärtstrend verbuchen – woran liegt es

Windows 11 tut sich wirklich schwer damit, Nutzer des Betriebssystems Windows 10 davon zu überzeugen,…

2. Mai 2024

Verfahren gegen Meta beginnt: Unternehmen Instagram und Facebook zu wenig gegen Falschnachrichten in Bezug auf die Europawahl?

Die EU-Kommission hat ein Verfahren gegen den Facebook-Mutterkonzern Meta auf den Weg gebracht. Es geht…

2. Mai 2024

Diese Webseite benutzt Cookies.