Empfohlen, 2019

Tipp Der Redaktion

Wie funktioniert die Linux Bash Shell unter Windows 10?

Mit der Veröffentlichung des Anniversary Update für Windows 10 hat Microsoft das Windows Subsystem für Linux (WSL) angekündigt - eine Möglichkeit, echten, nativen Bash unter Windows 10 auszuführen, der die Ausführung nativer Linux-Binärdateien unterstützt. Dazu wird ein Ubuntu Linux-Image im Benutzermodus über Windows ausgeführt.

Das bedeutet, dass Sie Linux-Befehlszeilentools wie ls, grep, top und chmod ausführen können. Da Sie echtes Ubuntu darunter lsb-release -a, erhalten Sie beim Ausführen von lsb-release -a die folgende Ausgabe:

Sie können apt-get und seine Freunde verwenden, um Hilfsprogramme wie vim, git, screen, tmux zu installieren oder sogar eine Partie nethack:

Beachten Sie jedoch, dass sich dieses System im Beta-Stadium befindet und nicht für Server-Workloads gedacht ist. Es ist nur ein Werkzeug für Entwickler (und Enthusiasten), um ihre Linux-basierten Anwendungen ohne Änderungen unter Windows zu testen. Dies ist auch kein Tool zum Ausführen von Linux-GUI-Anwendungen oder Umgebungen wie Gnome oder KDE, obwohl dies auch bei bestimmten Hacks möglich ist. Nachdem wir das geklärt haben, werfen wir einen Blick auf die Funktionsweise der Linux-Shell in Windows 10.

Windows-Subsystem für Linux (WSL)

Laut der offiziellen Dokumentation ist „WSL eine Sammlung von Komponenten, mit denen native Linux-ELF64-Binärdateien unter Windows ausgeführt werden können“. Dies geschieht durch die Implementierung einer virtualisierten Linux-Kernel-Schnittstelle über dem Windows NT-Kernel. Das heißt, es wird kein Code aus dem eigentlichen Linux-Kernel verwendet. Wenn eine Anwendung einen Linux-spezifischen Systemaufruf (syscall) durchführt, übersetzt WSL ihn in den entsprechenden Windows-syscall, der dann alle erforderlichen Aufgaben übernimmt.

Unterschiede zu virtuellen Maschinen und Cygwin

Lassen Sie uns nun einen Blick darauf werfen, wie sich die Linux Bash Shell unter Windows 10 von virtuellen Maschinen und Cygwin unterscheidet.

Virtuelle Maschinen

Sie denken vielleicht: „Warum verwenden Sie das? Warum nicht einfach eine Linux-VM unter Windows verwenden? "

Im Vergleich zu einer virtuellen Maschine verwendet WSL weniger Ressourcen . Außerdem können Sie mit Ihren Dateien wie unter Linux arbeiten und haben gleichzeitig vollständigen Zugriff auf das zugrunde liegende Windows-Dateisystem, ohne sich auf freigegebene Ordner oder Netzwerkfreigaben verlassen zu müssen.

Cygwin

Eine weitere beliebte Methode, um beliebte Linux / Unix-ähnliche Tools unter Windows auszuführen, ist Cygwin. Der größte Unterschied zwischen den beiden Ansätzen besteht darin, dass Cygwin keine Möglichkeit ist, native Linux-Binärdateien unter Windows auszuführen . Es enthält nur eine Reihe von GNU- und Open Source-Tools, die ähnliche Funktionen bieten wie eine Linux-Distribution unter Windows.

Auf der anderen Seite sind WSL-Tools native, von ELF-64 kompilierte Binärdateien, die unter Windows laufen. Wenn Sie beispielsweise den Befehl apt-get install emacs in WSL ausführen, werden dieselben Dateien wie bei einer Ubuntu 14.04-Installation von den offiziellen Ubuntu-Repositorys heruntergeladen und installiert.

Benutzer, Berechtigungen und Dateisysteme in WSL

Dateisystemhierarchie

WSL wird im aktuellen %LocalAppData%\lxss\rootfs . Dies wird als WSL-Umgebung bezeichnet und fungiert als Linux-Verzeichnis " / " (Stammverzeichnis). Wenn Ihr Benutzername unter Windows beispielsweise beebom, befindet sich das Linux-Stammverzeichnis unter C:\Users\beebom\AppData\Local\lxss\rootfs. Dies bedeutet, dass jeder Windows-Benutzer über eine eigene WSL-Umgebung verfügen und Änderungen vornehmen kann, z. B. apt-get install Softwarepakete, ohne dass andere Windows-Benutzer davon betroffen sind.

Es ist möglich, auf das zugrunde liegende Windows-Dateisystem in WSL zuzugreifen. Alle Laufwerke sind unter /mnt. montiert /mnt. Zum Beispiel ist C:\ unter /mnt/c gemountet, D:\ ist unter /mnt/d gemountet usw.

Benutzer und Berechtigungen

Bei der ersten Installation von WSL werden Sie aufgefordert, einen neuen Standardbenutzer für Linux zu erstellen. Dieser Benutzer muss nicht denselben Namen wie der aktuelle Windows-Benutzer haben und wird im Allgemeinen als separate Entität behandelt. Sie können sogar mehrere Linux-Benutzer erstellen, die von einem einzigen Windows-Benutzer gesteuert werden.

Mit dem Befehl sudo Sie root Berechtigungen erhalten. Beachten Sie, dass das root in WSL nur die Rechte des Benutzers in der Linux-Umgebung und im Dateisystem beeinflusst. Sie haben keine Auswirkungen auf die Windows-Berechtigungen. Beispielsweise kann eine WSL-Sitzung mit Windows-Administratorberechtigungen cd /mnt/c/Users/Administrator während bei einer Bash-Sitzung ohne Administratorrechte die Berechtigung cd /mnt/c/Users/Administrator angezeigt wird. Durch Eingabe von sudo cd /mnt/c/Users/Administrator wird kein Zugriff auf das Verzeichnis des Administrators gewährt, da die Berechtigungen von Windows eingeschränkt sind.

Linux-spezifische Dateisystemfunktionen

Linux ist ein case-sensitive System. Das bedeutet, dass photo.png und Photo.png als zwei verschiedene Dateien behandelt werden. Während Windows standardmäßig nicht zwischen Groß- und Kleinschreibung unterscheidet, ist es immer noch zwischen Groß- und Kleinschreibung bekannt . Das bedeutet, dass photo.png und Photo.png zwar nicht als zwei verschiedene Dateien behandelt werden, sie sind sich jedoch der Unterschiede bewusst .

WSL behandelt die Groß- und Kleinschreibung genau wie unter Linux. Es ist sogar möglich, zwei Dateien zu erstellen, deren Name sich außerhalb der WSL-Umgebung nur von Fall zu Fall unterscheidet. Beachten Sie jedoch, dass viele Windows-Anwendungen solche Situationen nicht verarbeiten können und möglicherweise keine oder beide Dateien öffnen können.

Ebenso werden symbolische Links unterstützt, sofern Sie ein NTFS-Dateisystem ausführen. Symbolische Links funktionieren jedoch nur in WSL und können nicht von anderen Windows-Anwendungen aufgelöst werden.

Linux unterstützt auch fast alle Sonderzeichen in Dateinamen, während Windows restriktiver ist. WSL erlaubt jedoch die Verwendung solcher Sonderzeichen, sofern diese auf die Umgebung des Linux-Systems beschränkt sind.

Bereit, die Linux-Befehlszeile unter Windows auszuführen?

So funktioniert Ubuntu Bash oder Linux Bash Shell, auch als Windows-Subsystem für Linux bekannt, unter Windows 10 (mit dem Anniversary-Update). Neben der Arbeit haben wir auch gelernt, wie es anders ist und besser ist als die herkömmlichen Methoden, Linux-spezifische Befehle unter Windows auszuführen. Wenn Sie also schon immer Linux-Befehle verwenden wollten, sollten Sie loslegen. Wenn Sie Fragen, Kommentare oder Tipps haben, teilen Sie uns dies bitte im Kommentarbereich mit.

Top