Linux-Befehle unter Windows: Microsoft nähert sich weiter an
Inhaltsverzeichnis:
Die Zeiten, in denen der Chef von Microsoft über Linux herzieht und sich eindeutig davon distanzieren will, sind schon eine ganze Weile vorbei. Das lässt sich auch immer häufiger an den Entwicklungen der letzten Jahre sehen. Unter anderem betreibt Microsoft mittlerweile sogar eine eigene Linux-Distribution, die für die Cloud-Dienste genutzt wird.
Damit aber nicht genug, denn scheinbar will man den Schulterschluss mit Linux weiter vorantreiben, was unterm Strich den Benutzern und Entwicklern entgegenkommen kann. So sind jetzt sogar Linux-Befehle unter Windows möglich. Klassische Unix-/Linux-Befehle können jetzt in der Eingabeaufforderung von Windows genutzt werden, sodass man als Entwickler für Linux nicht erst nach den Windows-Befehlen schauen muss. Mehr noch wird derzeit an einer nativen Container-Plattform WSLC gearbeitet, was es wesentlich vereinfacht, Linux-Dienste unter Windows laufen zu lassen. Alle Informationen zu diesen Entwicklungen gibt es in diesem Artikel.
Linux-Befehlssatz für Windows Eingabeaufforderung

| Befehl | Beschreibung |
|---|---|
| arch | Zeigt die Prozessorarchitektur des Systems an. |
| base32 | Kodiert oder dekodiert Daten im Base32-Format. |
| base64 | Kodiert oder dekodiert Daten im Base64-Format. |
| basename | Entfernt Verzeichnispfade und zeigt nur den Dateinamen an. |
| cat | Gibt den Inhalt von Dateien aus. |
| cp | Kopiert Dateien und Verzeichnisse. |
| date | Zeigt Datum und Uhrzeit an oder formatiert diese. |
| df | Zeigt belegten und freien Speicherplatz an. |
| du | Zeigt den Speicherverbrauch von Dateien und Ordnern. |
| echo | Gibt Text oder Variablenwerte aus. |
| env | Zeigt oder verändert Umgebungsvariablen. |
| expand | Wandelt Tabulatoren in Leerzeichen um. |
| expr | Führt Berechnungen und Zeichenkettenoperationen aus. |
| false | Beendet sich immer mit Fehlercode 1. |
| fmt | Formatiert Textabsätze neu. |
| fold | Bricht lange Textzeilen um. |
| head | Zeigt die ersten Zeilen einer Datei an. |
| join | Verknüpft Zeilen zweier Dateien anhand eines Schlüssels. |
| link | Erstellt einen Hardlink. |
| ln | Erstellt Hardlinks oder symbolische Links. |
| ls | Listet Dateien und Verzeichnisse auf. |
| md5sum | Berechnet MD5-Prüfsummen. |
| mkdir | Erstellt neue Verzeichnisse. |
| mktemp | Erstellt temporäre Dateien oder Verzeichnisse. |
| more | Zeigt Dateien seitenweise an. |
| mv | Verschiebt oder benennt Dateien um. |
| nl | Nummeriert Zeilen einer Datei. |
| nproc | Zeigt die Anzahl verfügbarer Prozessoren an. |
| numfmt | Formatiert numerische Werte lesbarer. |
| od | Gibt Dateien in verschiedenen Datenformaten aus. |
| env | Zeigt oder verändert Umgebungsvariablen. |
| expand | Wandelt Tabulatoren in Leerzeichen um. |
| expr | Führt Berechnungen und Zeichenkettenoperationen aus. |
| false | Beendet sich immer mit Fehlercode 1. |
| fmt | Formatiert Textabsätze neu. |
| fold | Bricht lange Textzeilen um. |
| head | Zeigt die ersten Zeilen einer Datei an. |
| join | Verknüpft Zeilen zweier Dateien anhand eines Schlüssels. |
| link | Erstellt einen Hardlink. |
| ln | Erstellt Hardlinks oder symbolische Links. |
| ls | Listet Dateien und Verzeichnisse auf. |
| md5sum | Berechnet MD5-Prüfsummen. |
| mkdir | Erstellt neue Verzeichnisse. |
| mktemp | Erstellt temporäre Dateien oder Verzeichnisse. |
| more | Zeigt Dateien seitenweise an. |
| mv | Verschiebt oder benennt Dateien um. |
| nl | Nummeriert Zeilen einer Datei. |
| nproc | Zeigt die Anzahl verfügbarer Prozessoren an. |
| numfmt | Formatiert numerische Werte lesbarer. |
| od | Gibt Dateien in verschiedenen Datenformaten aus. |
| stat | Zeigt detaillierte Dateiinformationen an. |
| sum | Berechnet einfache Prüfsummen. |
| sync | Synchronisiert Dateisystempuffer mit Datenträgern. |
| tac | Gibt Dateien zeilenweise rückwärts aus. |
| tail | Zeigt die letzten Zeilen einer Datei an. |
| tee | Leitet Ausgaben gleichzeitig in Datei und Konsole um. |
| test | Prüft Bedingungen in Skripten. |
| touch | Erstellt Dateien oder aktualisiert Zeitstempel. |
| tr | Ersetzt oder entfernt Zeichen in Texten. |
| true | Beendet sich immer mit Erfolgscode 0. |
| truncate | Vergrößert oder verkleinert Dateien. |
| tsort | Führt eine topologische Sortierung durch. |
| uname | Zeigt Systeminformationen an. |
| unexpand | Wandelt Leerzeichen in Tabulatoren um. |
| uniq | Entfernt doppelte Zeilen aus sortierten Dateien. |
| unlink | Löscht einen Link. |
| vdir | Listet Dateien im Langformat auf. |
| wc | Zählt Zeilen, Wörter und Zeichen. |
| whoami | Zeigt den aktuell angemeldeten Benutzer an. |
| yes | Gibt fortlaufend eine Zeichenfolge aus, bis der Vorgang beendet wird. |
Technisch geht das durch das Open Source Projekt uutils. Darüber werden die klassischen Standardwerkzeuge GNU-Coreutils neu in Rust geschrieben. Die Programmiersprache ist vor allem für ihre hohe Speichersicherheit bekannt. Da uutils unter der MIT-Lizenz steht, kann Microsoft den Befehlssatz relativ einfach implementieren und kommt an den strengen GPL-Lizenz-Anforderungen vorbei. Das Ziel ist, dass es plattformübergreifend eine Vereinheitlichung stattfinden kann. Dadurch wird es einfacher werden, auf beiden Systemen zu entwickeln. Derzeit gibt es allerdings noch einige Einschränkungen. So gibt es beispielsweise Namenskollisionen und bisher auch keine Möglichkeit, die Befehle für die Linux-Rechteverwaltung zu nutzen.
Native Container für Linux-Anwendungen
Über die Befehle hinaus baut Microsoft derzeit sogar an einer eigenen nativen Container-Plattform. WSLC steht für “Windows Subsystem for Linux Containers”. Damit soll es grundsätzlich möglich sein, unter Windows Linux-Dienste zu nutzen.
Mit wslc.exe gibt es ein Kommandozeilen-Werkzeug, außerdem die Programmierschnittstelle Application Programming Interface (API) sowie ein Entwickler-Kit (SDK). Die Plattform wird verschiedene Komponenten beinhalten, die zur Verwaltung von Container, Netzwerken, Online-Speichern und Speicherabbildern genutzt werden können. Derzeit steht noch nicht fest, wann die Plattform verfügbar sein wird.
Fazit zu Linux-Befehle unter Windows
