Connect with us

Wie man

Ausführen von Windows-Programmen über die Bash-Shell von Windows 10

Ausführen von Windows-Programmen über die Bash-Shell von Windows 10

Im Creators Update können Sie mit der Bash-Shell von Windows 10 jetzt Windows-Binärdateien und Standardbefehle direkt über Bash ausführen. Sie können sowohl Linux- als auch Windows-Programme über dieselbe Bash-Shell ausführen oder sogar Windows-Befehle in ein Bash-Skript integrieren.

Was du wissen musst

Hier sind einige grundlegende Details, die Sie über diese Funktion wissen müssen:

  • Benutzerkonto: Programme, die über die Bash-Shell gestartet werden, werden so ausgeführt, als ob sie vom aktuellen Windows-Benutzerkonto gestartet wurden.
  • Berechtigungen: Diese Programme haben dieselben Berechtigungen wie der Bash.exe-Prozess. Wenn diese Befehle Administratorzugriff haben sollen, müssen Sie die Bash-Shell als Administrator ausführen.
  • Arbeitsverzeichnis: Windows-Programme verwenden dasselbe „Arbeitsverzeichnis“ wie die Bash-Shell. Wenn Sie also einen Befehl ausführen, der den Inhalt des aktuellen Verzeichnisses auflistet, wird der Inhalt des aktuellen Arbeitsverzeichnisses in der Bash-Shell aufgelistet. Verwenden Sie die cd Befehl zum Ändern der Arbeitsverzeichnisse.

Schauen wir uns vor diesem Hintergrund an, wie ein Programm ausgeführt wird.

So führen Sie ein Windows-Programm aus

Geben Sie zum Ausführen eines Windows-Programms den Pfad zur EXE-Datei des Programms in die Bash-Shell ein. Denken Sie daran, dass Ihr Windows C: -Laufwerk unter / mnt / c in Bash verfügbar ist. In der Bash-Umgebung wird auch zwischen Groß- und Kleinschreibung unterschieden, sodass Sie die richtige Groß- und Kleinschreibung angeben müssen.

Angenommen, Sie möchten das Ping-Dienstprogramm unter C: Windows System32 PING.EXE starten. Sie würden den folgenden Befehl ausführen:

/mnt/c/Windows/System32/PING.EXE

Der folgende Befehl würde nicht funktionieren, da bei Bash zwischen Groß- und Kleinschreibung unterschieden wird:

/mnt/c/windows/system32/ping.exe

Dies ist etwas komplizierter, wenn der Pfad komplexe Zeichen wie Leerzeichen und Klammern wie die Ordner „Programme“ enthält. Sie müssen Leerzeichen, Klammern und andere komplexe Zeichen „maskieren“, indem Sie ihnen ein „“ -Zeichen voranstellen.

Angenommen, Sie möchten das Internet Explorer-Programm ausführen, das sich unter C: Programme (x86) Internet Explorer iexplore.exe befindet. Sie müssten den folgenden Befehl in Bash ausführen:

/mnt/c/Program Files (x86)/Internet Explorer/iexplore.exe

Beachten Sie das „“ vor den Leerzeichen und Klammern. Diese Zeichen müssen „maskiert“ sein, sonst erkennt Bash nicht, dass die Zeichen Teil eines Dateipfads sind.

So übergeben Sie ein Argument an einen Befehl

Die Bash-Shell übergibt Argumente direkt an die von Ihnen ausgeführten Befehle.

Wenn Sie beispielsweise example.com anpingen möchten, führen Sie Folgendes aus:

/mnt/c/Windows/System32/PING.EXE example.com

Wenn Sie die Windows-Hosts-Datei im Editor öffnen möchten, führen Sie Folgendes aus:

/mnt/c/Windows/System32/notepad.exe "C:WindowsSystem32driversetchosts"

Sie verwenden den Standard-Windows-Dateipfad, wenn Sie einen Dateipfad direkt an ein Windows-Programm übergeben. Das liegt daran, dass Bash das Argument direkt weitergibt. Notepad.exe und andere Windows-Programme erwarten einen Windows-Dateipfad.

So führen Sie einen integrierten Befehl aus

Einige Windows-Befehle sind keine EXE-Dateien, sondern in die Eingabeaufforderung selbst integriert. Dazu gehört beispielsweise die dir Befehl, den Sie normalerweise in einer Eingabeaufforderung ausführen. Um einen solchen Befehl auszuführen, müssen Sie den Befehl ausführen cmd.exe Binärdatei, die der Eingabeaufforderung zugeordnet ist, und übergeben Sie den Befehl als Argument mit / C wie folgt:

/mnt/c/Windows/System32/cmd.exe /C command

Zum Beispiel, um die auszuführen dir Mit dem in die Eingabeaufforderung integrierten Befehl führen Sie den folgenden Befehl aus:

/mnt/c/Windows/System32/cmd.exe /C dir

So fügen Sie dem Pfad Verzeichnisse hinzu

Die Windows Services for Linux-Umgebung behandelt ausführbare Windows-Dateien ähnlich wie Linux-Binärdateien. Dies bedeutet, dass Sie dem Pfad ein Verzeichnis mit EXE-Dateien hinzufügen und diese EXE-Dateien dann direkt ausführen können. Um beispielsweise das System32-Verzeichnis zu Ihrem Pfad hinzuzufügen, führen Sie Folgendes aus:

export PATH=$PATH:/mnt/c/Windows/System32

Sie können dann Windows .exe-Dateien direkt im System32-Ordner ausführen, wie folgt:

PING.exe example.com
notepad.exe
cmd.exe /C dir

So leiten Sie die Ausgabe eines Befehls an einen anderen weiter

Die Ausgabe eines Windows-Befehls kann an einen Linux-Befehl weitergeleitet werden und umgekehrt. Zum Beispiel können Sie die verwenden ipconfig.exe -all Befehl, um Details zu Ihren Netzwerkschnittstellen aufzulisten und an Linux weiterzuleiten grep Befehl zum Durchsuchen der Ausgabe. Um beispielsweise alle Informationen zu Ihrer Verbindung aufzulisten und nach Abschnitten zu suchen, die mit der IPv4-Adresse übereinstimmen, führen Sie Folgendes aus:

/mnt/c/Windows/System32/ipconfig.exe -all | grep "IPv4 Address"

Das ist der grundlegende Prozess. Diese Befehle funktionieren auch, wenn sie in ein Bash-Skript integriert sind. Sie können also ein Bash-Skript schreiben, das sowohl Windows-Befehle als auch Linux-Dienstprogramme enthält. Wenn es in der Bash-Shell ausgeführt wird, funktioniert es in einem Bash-Skript.

Wenn Sie in die andere Richtung gehen möchten, können Sie den Befehl „bash -c“ verwenden, um Bash-Befehle über die standardmäßige Windows-Eingabeaufforderung auszuführen.

Continue Reading
Click to comment

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Tendencia