30Jun

Comment faire pour exécuter des commandes Linux à partir de l'extérieur du shell Bash sur Windows 10

Windows 10 inclut un "sous-système Windows pour Linux" sous-jacent pour exécuter les applications Linux, mais il n'est accessible que via le shell Bash. Cependant, il existe un moyen d'exécuter des applications Linux sans d'abord lancer une fenêtre Bash.

Ceci est possible grâce à la commande bash -c. Utilisez-le pour exécuter des commandes Linux via Invite de commandes et PowerShell, ou même créer un raccourci sur le bureau qui exécute une commande ou un programme Linux lors de son lancement.

Comment exécuter les commandes Linux dans l'invite de commande ou PowerShell

Avant d'effectuer cette opération, vous devez installer et configurer le shell Bash de Windows 10.Après cela, vous pouvez ouvrir une fenêtre Invite de commandes et exécuter la commande suivante pour exécuter le logiciel Linux en dehors d'une fenêtre Bash:

bash -c "commande"

Par exemple, disons que vous vouliez installer le paquet emacs via apt-get. Vous devez exécuter la commande suivante dans une fenêtre d'invite de commandes:

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 sera exécutée jusqu'à ce que ce soit fait, puis quitter, avec le shell Bash. Toute sortie de terminal que la commande actuelle exécute apparaîtra directement dans la fenêtre d'invite de commandes, plutôt que dans une fenêtre de shell Bash distincte.

Cette astuce vous permet également d'exécuter des commandes Linux dans PowerShell, tout comme vous exécuteriez 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 commandes ou via toute autre méthode pour exécuter des exécutables dans PowerShell.

bash -c "uname -a"

Comme avec une fenêtre d'invite de commande, la sortie de la commande apparaîtra directement dans PowerShell. Ces méthodes peuvent également être utilisées pour ajouter des commandes Linux à un fichier batch ou à un script PowerShell.

Comment exécuter les 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 autre programme de lancement d'applications.

Par exemple, pour lancer vi à partir de la boîte de dialogue Exécuter, appuyez sur Windows + R sur votre clavier, puis exécutez 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, de sorte que vous pouvez taper la même commande directement dans le menu Démarrer et appuyez sur Entrée pour l'exécuter en tant que commande.

Comment exécuter des commandes Linux avec un raccourci sur le bureau

La commande bash -c permet également de lancer des applications Linux via un raccourci sur le bureau. Par exemple, supposons que vous vouliez lancer l'éditeur de texte vi via un raccourci sur le bureau. Vous cliquez avec le bouton droit sur le bureau, pointez sur Nouveau & gt;Nouveau raccourci, et entrez la cible suivante:

bash -c "vi"

Vous pouvez maintenant enregistrer le raccourci et il 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 les applications de bureau Linux graphiques. Vous devriez être capable de créer des raccourcis pour les lancer directement.

Cependant, vous devrez les lancer comme ceci:

bash -c "DISPLAY =: 0 commande"

Alors que vous pouvez lancer des commandes Bash d'ailleurs dans Windows, il n'y a aucun moyen d'exécuter des logiciels Windows ou des exécutables directement depuis un shell Bashfenêtre.