Comment exécuter des programmes Windows à partir du shell Bash de Windows 10

Table des matières:

Comment exécuter des programmes Windows à partir du shell Bash de Windows 10
Comment exécuter des programmes Windows à partir du shell Bash de Windows 10

Vidéo: Comment exécuter des programmes Windows à partir du shell Bash de Windows 10

Vidéo: Comment exécuter des programmes Windows à partir du shell Bash de Windows 10
Vidéo: Sécuriser son site avec HTTPS 🔒 - YouTube 2024, Avril
Anonim
Dans la mise à jour des créateurs, le shell Bash de Windows 10 vous permet désormais d’exécuter des fichiers binaires Windows et des commandes standard d’invite de commande directement à partir de Bash. Vous pouvez exécuter des programmes Linux et Windows à partir du même shell Bash, ou même incorporer des commandes Windows dans un script Bash.
Dans la mise à jour des créateurs, le shell Bash de Windows 10 vous permet désormais d’exécuter des fichiers binaires Windows et des commandes standard d’invite de commande directement à partir de Bash. Vous pouvez exécuter des programmes Linux et Windows à partir du même shell Bash, ou même incorporer des commandes Windows dans un script Bash.

Que souhaitez-vous savoir

Voici quelques détails de base sur cette fonctionnalité:

  • Compte d'utilisateur: Les programmes lancés à partir du shell Bash s'exécutent comme s'ils avaient été lancés par le compte d'utilisateur Windows actuel.
  • Les permissions: Ces programmes auront les mêmes autorisations que le processus Bash.exe. Par conséquent, si vous souhaitez que ces commandes disposent d’un accès administrateur, vous devez exécuter le shell Bash en tant qu’administrateur.
  • Directeur de travail: Les programmes Windows partagent le même «répertoire de travail» que le shell Bash. Ainsi, si vous exécutez une commande qui répertorie le contenu du répertoire en cours, elle répertoriera le contenu du répertoire de travail en cours dans le shell Bash. Utilisez le

    cd

    commande pour changer les répertoires de travail.

Dans cet esprit, voyons comment exécuter un programme.

Comment exécuter un programme Windows

Pour exécuter un programme Windows, entrez le chemin du fichier.exe du programme dans le shell Bash. N'oubliez pas que votre lecteur Windows C: est disponible sur / mnt / c dans Bash. L'environnement Bash est également sensible à la casse. Vous devez donc spécifier la casse correcte.

Supposons que vous souhaitiez lancer l’utilitaire Ping situé dans C: Windows System32 PING.EXE. Vous avez exécuté la commande suivante:

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

La commande suivante ne fonctionnerait pas, car Bash est sensible à la casse:

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

Ceci est un peu plus compliqué si le chemin contient des caractères complexes tels que des espaces et des crochets, comme les dossiers Program Files. Vous devez "échapper" aux espaces, crochets et autres caractères complexes en les préfixant d'un caractère "".
Ceci est un peu plus compliqué si le chemin contient des caractères complexes tels que des espaces et des crochets, comme les dossiers Program Files. Vous devez "échapper" aux espaces, crochets et autres caractères complexes en les préfixant d'un caractère "".

Par exemple, supposons que vous souhaitiez exécuter le programme Internet Explorer situé dans C: Program Files (x86) Internet Explorer iexplore.exe. Vous devez exécuter la commande suivante dans Bash:

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

Notez le «» devant les espaces et les crochets. Ces caractères doivent être «échappés» sinon Bash ne réalisera pas que les caractères font partie d’un chemin de fichier.

Image
Image

Comment passer un argument à une commande

Le shell Bash transmet les arguments directement aux commandes que vous exécutez.

Par exemple, si vous voulez utiliser ping sur exemple.com, vous devez exécuter:

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

Ou, si vous souhaitez ouvrir le fichier hosts de Windows dans le Bloc-notes, vous devez exécuter:

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

Vous utilisez le chemin de fichier Windows standard lorsque vous transmettez un chemin de fichier directement à un programme Windows. C’est parce que Bash passe l’argument directement. Notepad.exe et d'autres programmes Windows attendent un chemin de fichier Windows.

Image
Image

Comment exécuter une commande intégrée

Certaines commandes Windows ne sont pas des fichiers.exe, mais sont intégrées à l’invite de commande elle-même. Par exemple, cela inclut le

dir

commande que vous pourriez normalement exécuter dans une invite de commande. Pour exécuter une telle commande, vous devez exécuter le programme

cmd.exe

binaire associé à l'invite de commande et transmettez-lui la commande sous forme d'argument avec / C, comme suit:

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

Par exemple, pour exécuter le

dir

intégrée à l’invite de commande, vous devez exécuter la commande suivante:

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

Image
Image

Comment ajouter des répertoires au chemin

L’environnement Windows Services for Linux traite les exécutables Windows de la même manière que les fichiers binaires Linux. Cela signifie que vous pouvez ajouter un répertoire contenant des fichiers.exe au chemin, puis exécuter ces fichiers directement. Par exemple, pour ajouter le répertoire System32 à votre chemin, vous devez exécuter:

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

Vous pouvez ensuite exécuter les fichiers Windows.exe situés dans le dossier System32 directement, comme suit:

PING.exe example.com

notepad.exe

cmd.exe /C dir

Image
Image

Comment canaliser la sortie d'une commande à une autre

La sortie d'une commande Windows peut être redirigée vers une commande Linux, et inversement. Par exemple, vous pouvez utiliser le

ipconfig.exe -all

commande pour lister les détails de vos interfaces réseau et les diriger vers Linux

grep

commande pour rechercher la sortie. Par exemple, pour répertorier toutes les informations sur votre connexion et rechercher les sections correspondant à «Adresse IPv4», vous devez exécuter:

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

C’est le processus de base. Ces commandes fonctionnent également lorsqu'elles sont incorporées à un script Bash. Vous pouvez donc écrire un script Bash intégrant à la fois des commandes Windows et des utilitaires Linux. S'il fonctionne dans le shell Bash, cela fonctionnera dans un script Bash.
C’est le processus de base. Ces commandes fonctionnent également lorsqu'elles sont incorporées à un script Bash. Vous pouvez donc écrire un script Bash intégrant à la fois des commandes Windows et des utilitaires Linux. S'il fonctionne dans le shell Bash, cela fonctionnera dans un script Bash.

Et, si vous voulez aller dans l'autre sens, vous pouvez utiliser la commande «bash -c» pour exécuter les commandes Bash à partir de l'invite de commande Windows standard.

Conseillé: