Comment exécuter des commandes Linux à partir de l'extérieur du shell Bash sous Windows 10
Windows 10 comprend un «sous-système Windows pour Linux» sous-jacent permettant d'exécuter des applications Linux, mais ce dernier est uniquement accessible via le shell Bash. Cependant, il existe un moyen d’exécuter des applications Linux sans lancer au préalable une fenêtre Bash..
C’est possible grâce au bash -c
commander. Utilisez-le pour exécuter des commandes Linux via Invite de commandes et PowerShell, ou même pour créer un raccourci sur le bureau exécutant une commande ou un programme Linux au lancement..
Mettre à jourRemarque: Si plusieurs environnements Linux sont installés, vous pouvez utiliser la commande wslconfig pour choisir l’environnement Linux par défaut. Il existe également un moyen d'exécuter des commandes dans des environnements Linux spécifiques..
Comment exécuter des commandes Linux dans une invite de commande ou dans PowerShell
Avant de commencer, vous devez installer et configurer le shell Bash de Windows 10. Ensuite, vous pouvez ouvrir une fenêtre d'invite de commande et exécuter la commande suivante pour exécuter le logiciel Linux en dehors d'une fenêtre Bash:
bash -c "commande"
Par exemple, supposons que vous vouliez installer le paquet emacs via apt-get. Vous exécuteriez la commande suivante dans une fenêtre d'invite de commande:
bash -c "sudo apt-get install emacs"
Lorsque vous utilisez bash -c, Windows lancera un shell Bash en arrière-plan et lui passera la commande. La commande s'exécutera jusqu'à ce qu'elle soit terminée, puis quittera avec le shell Bash. Toute sortie de terminal exécutée par la commande en cours apparaîtra directement dans la fenêtre d'invite de commande, plutôt que dans une fenêtre séparée du shell Bash.
Cette astuce vous permet également d'exécuter des commandes Linux dans PowerShell, exactement comme si vous exécutiez un exécutable Windows normal. Vous pouvez le faire en exécutant directement le fichier .exe comme vous le feriez dans une fenêtre d'invite de commande ou via une autre méthode permettant d'exécuter des exécutables dans PowerShell..
bash -c "uname -a"
Comme avec une fenêtre d'invite de commande, le résultat de la commande apparaîtra directement dans PowerShell. Ces méthodes peuvent également être utilisées pour ajouter des commandes Linux à un fichier de commandes ou à un script PowerShell..
Comment exécuter des commandes Linux à partir de la boîte de dialogue Exécuter ou du menu Démarrer
Cette astuce fonctionne également pour exécuter des commandes à partir de la boîte de dialogue Exécuter, du menu Démarrer ou de tout lanceur d’applications tiers..
Par exemple, pour lancer vi à partir de la boîte de dialogue Exécuter, vous devez appuyer sur Windows + R sur votre clavier, puis exécuter la commande suivante:
bach -c "vi"
L'éditeur de texte vi apparaîtra dans sa propre fenêtre.
Cela fonctionne également pour le menu Démarrer, vous pouvez donc taper la même commande directement dans le menu Démarrer et appuyer sur Entrée pour l'exécuter en tant que commande..
Comment exécuter des commandes Linux avec un raccourci sur le bureau
le bash -c
Cette commande permet également de lancer des applications Linux via un raccourci sur le bureau. Par exemple, supposons que vous souhaitiez lancer l'éditeur de texte vi via un raccourci sur le bureau. Cliquez avec le bouton droit sur le bureau, pointez sur Nouveau> Nouveau raccourci et entrez la cible suivante:
bash -c "vi"
Vous pouvez maintenant enregistrer le raccourci et il se lancera vi lorsque vous double-cliquez dessus.
Fait intéressant, cette astuce fonctionne également pour lancer des applications graphiques Linux à partir d’un raccourci sur le bureau. Installez un serveur X et configurez des applications de bureau Linux graphiques. Vous devriez pouvoir créer des raccourcis pour les lancer directement.
Cependant, vous devriez les lancer comme ceci:
bash -c "DISPLAY =: 0 commande"
Bien que vous puissiez lancer des commandes Bash ailleurs dans Windows, il n’existe aucun moyen d’exécuter des logiciels ou des exécutables Windows directement à partir d’une fenêtre de shell Bash..