Ausführen von Linux-Befehlen außerhalb der Bash-Shell unter Windows 10
Windows 10 enthält ein zugrundeliegendes "Windows-Subsystem für Linux" zum Ausführen von Linux-Anwendungen. Der Zugriff ist jedoch nur über die Bash-Shell möglich. Es gibt jedoch eine Möglichkeit, Linux-Anwendungen auszuführen, ohne zuerst ein Bash-Fenster zu starten.
Dies ist dank der möglich bash -c
Befehl. Verwenden Sie es, um Linux-Befehle über die Eingabeaufforderung und PowerShell auszuführen, oder erstellen Sie sogar eine Desktop-Verknüpfung, die beim Starten einen Linux-Befehl oder ein Programm ausführt.
Aktualisieren: Wenn Sie mehrere Linux-Umgebungen installiert haben, können Sie mit dem Befehl wslconfig die Standard-Linux-Umgebung auswählen. Es gibt auch eine Möglichkeit, Befehle in bestimmten Linux-Umgebungen auszuführen.
Ausführen von Linux-Befehlen in der Eingabeaufforderung oder in PowerShell
Bevor Sie dies tun, müssen Sie die Bash-Shell von Windows 10 installieren und einrichten. Anschließend können Sie ein Eingabeaufforderungsfenster öffnen und den folgenden Befehl ausführen, um die Linux-Software außerhalb eines Bash-Fensters auszuführen:
bash -c "Befehl"
Angenommen, Sie wollten das Paket emacs über apt-get installieren. Sie würden den folgenden Befehl in einem Eingabeaufforderungsfenster ausführen:
bash -c "sudo apt-get install emacs"
Wenn Sie bash -c verwenden, startet Windows eine Bash-Shell im Hintergrund und übergibt den Befehl an diese. Der Befehl wird ausgeführt, bis er fertig ist, und wird zusammen mit der Bash-Shell beendet. Jede Terminalausgabe, die der aktuelle Befehl ausführt, wird direkt im Eingabeaufforderungsfenster und nicht in einem separaten Bash-Shell-Fenster angezeigt.
Mit diesem Trick können Sie auch Linux-Befehle in PowerShell ausführen, genau wie Sie eine normale ausführbare Windows-Datei ausführen. Sie können dies tun, indem Sie die EXE-Datei direkt wie in einem Eingabeaufforderungsfenster oder über eine andere Methode zum Ausführen von ausführbaren Dateien in PowerShell ausführen.
bash -c "uname -a"
Wie bei einem Eingabeaufforderungsfenster wird die Ausgabe des Befehls direkt in PowerShell angezeigt. Mit diesen Methoden können Sie auch Linux-Befehle zu einer Batchdatei oder einem PowerShell-Skript hinzufügen.
Ausführen von Linux-Befehlen über das Dialogfeld "Ausführen" oder über das Startmenü
Dieser Trick funktioniert auch beim Ausführen von Befehlen über das Dialogfeld "Ausführen", das Startmenü oder ein Anwendungsstartprogramm eines Drittanbieters.
Um vi über das Dialogfeld "Ausführen" zu starten, drücken Sie Windows + R auf der Tastatur und führen den folgenden Befehl aus:
Bach -c "vi"
Der vi-Texteditor wird in einem eigenen Fenster angezeigt.
Dies funktioniert auch für das Startmenü. Sie können also denselben Befehl direkt in das Startmenü eingeben und die Eingabetaste drücken, um ihn als Befehl auszuführen.
Ausführen von Linux-Befehlen mit einer Desktop-Verknüpfung
Das bash -c
Der Befehl ermöglicht auch das Starten von Linux-Anwendungen über eine Desktop-Verknüpfung. Angenommen, Sie wollten den vi-Texteditor über eine Desktop-Verknüpfung starten. Klicken Sie mit der rechten Maustaste auf den Desktop, zeigen Sie auf Neu> Neue Verknüpfung, und geben Sie das folgende Ziel ein:
bash -c "vi"
Sie können die Verknüpfung jetzt speichern und es wird vi gestartet, wenn Sie darauf doppelklicken.
Interessanterweise funktioniert dieser Trick auch, um grafische Linux-Anwendungen von einer Desktop-Verknüpfung aus zu starten. Installieren Sie einen X-Server und richten Sie grafische Linux-Desktopanwendungen ein. Sie sollten Verknüpfungen erstellen können, um sie direkt zu starten.
Sie müssten sie jedoch so starten:
bash -c "DISPLAY =: 0 Befehl"
Sie können Bash-Befehle zwar an anderen Stellen in Windows starten, Windows-Software oder ausführbare Dateien können jedoch nicht direkt über ein Bash-Shell-Fenster ausgeführt werden.