
Ich habe vor Kurzem eine Ubuntu-Installation von Linux für Windows heruntergeladen, da ich lernen wollte, wie man eine Bash-Shell verwendet. Bisher hat es mir Spaß gemacht, aber ich frage mich, ob es eine Möglichkeit gibt, das oben Genannte zu tun. Angenommen, ich habe iTunes auf meinem Computer installiert und möchte es von meinem Linux-Terminal aus öffnen. Ist das möglich? Ich habe versucht, zum Desktop-Ordner im Terminal zu gehen und die .lnk-Dateien zu öffnen, aber es wird mir nur die Meldung „Binärdatei kann nicht ausgeführt werden: Exec-Formatfehler“ angezeigt. Weiß jemand, ob das möglich ist?
Antwort1
Ja, WSL unterstützt das Starten von Windows-Anwendungenausführbare Dateien(wie iTunes) aus der Shell heraus. Wie in den Kommentaren erwähnt, lnk
werden Dateien jedochnichtunterstützt, da sie nichtausführbare Dateien. Sie sindLinkszu ausführbaren Dateien.
WSL ist außerdem so praktisch, Ihren Windows-Pfad (standardmäßig) an Ihren Linux-Pfad anzuhängen. Anwendungen, die sich im Pfad befinden (z. B. notepad.exe
), können Sie also einfach direkt mit dem appname.exe
Format starten.
Für Apps, die sich nicht im Pfad befinden (z. B. itunes.exe
), müssen Sie den Speicherort der tatsächlichen .exe
(ausführbaren Datei) ermitteln und diese mit dem vollständigen Pfad starten. Dies ist eigentlich dasselbe wie für jede ausführbare Linux-Datei unter Linux oder jede ausführbare Windows-Datei unter Windows PowerShell oder CMD.
Um den vollständigen Pfad zu iTunes zu finden, klicken Sie einfach mit der rechten Maustaste auf die lnk
Datei im Explorer und wählen Sie"Eigenschaften". Der"Ziel"Das Feld enthält etwa Folgendes C:\Program Files\iTunes\iTunes.exe
:
bash
Wie bereits erwähnt, benötigen Sie, wenn Sie dies in Windows PowerShell oder dem CMD-Interpreter (den Windows-„Äquivalenten“ unter Linux) starten möchten , immer noch den vollständigen Pfad. Sie führen also Folgendes aus:
C:\Program Files\iTunes\iTunes.exe
Um diesen bestimmten Pfad in bash
WSL zu starten, verwenden Sie:
/mnt/c/Program\ Files/iTunes/iTunes.exe
Wenn Sie Hilfe beim Konvertieren des Windows-Pfads in den Linux-Pfad benötigen, gibt es dafür einen Befehl:
wslpath 'C:\Program Files\iTunes\iTunes.exe'
Ausführliche Informationen zur Windows/WSL-Interoperabilität finden Sie unterdieses Dokument.
Antwort2
WSL kann Windows-Binärdateien nativ über einige startenInteropund die Verwendung vonbinfmt_misc
LNK
Andererseits handelt es sich nicht um eine ausführbare Datei, sondern um eine Art Datei, die Metadaten für die Windows Shell speichert, um auf alle Arten von Dateien zu verweisen, nicht nur auf ausführbare Dateien. Da es sich um eine normale Datei handelt, müssen Sie sie mit einigen Anwendungen öffnen. In cmd können Sie Dateien mit dem standardmäßig zugeordneten Programm öffnen, indem Siestart
. In älteren WSLs können Sie Folgendes tun:
cmd.exe /c start ~/Desktop/iTunes.lnk
Offensichtlich %Windir%\System32
muss es in Ihrem Pfad sein (was standardmäßig der Fall ist), oder Sie müssen Ihre WSL-Umgebung reparieren. Das Äquivalent in PowerShell istStart-Process
oderInvoke-Item
powershell.exe -Command Start-Process ~/Desktop/iTunes.lnk
powershell.exe -Command Invoke-Item ~/Desktop/iTunes.lnk
Für die meisten Dateitypen können Sie auch explorer.exe
direkt
explorer.exe ~/Desktop/iTunes.lnk
In WSL2 gibt es hierfür jedoch einen neuen Befehl
wslview ~/Desktop/iTunes.lnk
Einige andere Lösungen beginnenwsl-offenUndeöffnen
Sehen
Beispielsweise öffnet einer der folgenden Befehle das aktuelle Verzeichnis im Explorer
explorer.exe .
wslview .
powershell.exe -Command Start-Process .
powershell.exe -C Invoke-Item .
cmd /c start .
oder um einige PDF-Dateien zu öffnen
explorer.exe my.pdf
wslview my.pdf
powershell.exe -Command Start-Process my.pdf
powershell.exe -C Invoke-Item my.pdf
cmd /c start my.pdf