Linux-Befehle unter Windows: Microsoft nähert sich weiter an

Linux-Befehle unter Windows: Microsoft nähert sich weiter an
Vermischtes

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

Linux-Befehlssatz für Windows Eingabeaufforderung Als Entwickler zwischen Windows und Linux zu wechseln, kann durchaus etwas nervig sein, da unterschiedliche Befehle gebraucht werden. Wenn man beispielsweise ganz einfach eine Auflistung der Dateien sehen möchte, muss man unter Linux den Befehl “ls” nutzen, während unter Windows “dir” benutzt wird. Wenn es nur darum geht, wenige Befehle zweifach zu lernen, wäre es noch in Ordnung. Aber es gibt eine große Menge von Funktionen, die es eben in der doppelten Ausführung gibt. Und da kann man schon mal durcheinander kommen. Das wird in Zukunft aber unter Windows der Vergangenheit angehören, zumindest teilweise. Wie bekanntgegeben wurde, baut Microsoft 75 klassische Linux-Befehle in Windows ein, sodass diese ohne Probleme von der Eingabeaufforderung verstanden werden können.

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

Fazit zu Linux-Befehle unter Windows Microsoft macht ernst und schließt die Lücke zu Linux immer mehr. Mittlerweile darf man die beiden Systeme schon gar nicht mehr als Konkurrenz betrachten, da Microsoft in der letzten Zeit große Schritte auf Linux zugegangen ist. Neben einer eigenen Linux-Distribution werden es Entwickler und Nutzer von Linux zukünftig unter Windows einfacher haben. Zum einen wird es die WSL Containers geben, die externe Software für Linux-Container überflüssig machen, zum anderen die Möglichkeit, Linux-Befehle in der Eingabeaufforderung zu nutzen. Damit öffnet sich Windows und wird immer attraktiver für moderne Softwareentwickler, die flexibler zwischen den Systemen wechseln wollen.