nl.phhsnews.com


nl.phhsnews.com / Windows-programma's uitvoeren vanuit de Bash Shell

Windows-programma's uitvoeren vanuit de Bash Shell


In de Creators Update kunt u met de Bash-shell van Windows 10 nu Windows-binaire bestanden en standaard opdrachtpromptopdrachten uitvoeren, rechtstreeks vanuit Bash. Je kunt zowel Linux- als Windows-programma's uitvoeren vanuit dezelfde Bash-shell, of zelfs Windows-opdrachten opnemen in een Bash-script.

Wat je moet weten

GERELATEERD: Alles wat je kunt doen met de nieuwe Bash Shell van Windows 10

Hier zijn enkele basisgegevens die u moet weten over deze functie:

  • Gebruikersaccount : programma's die vanuit de Bash-shell worden gestart, worden uitgevoerd alsof ze zijn gestart door het huidige Windows-gebruikersaccount.
  • Machtigingen : deze programma's hebben dezelfde rechten als het proces Bash.exe. Dus als u wilt dat deze opdrachten beheerdersrechten hebben, moet u de Bash-shell uitvoeren als beheerder.
  • Werkdirectory : Windows-programma's delen dezelfde "werkdirectory" als de Bash-shell. Als u dus een opdracht uitvoert met de inhoud van de huidige map, wordt de inhoud van de huidige werkdirectory in de Bash-shell weergegeven. Gebruik de opdrachtcdom werkmappen te wijzigen.

Laten we daarom eens kijken hoe een programma moet worden uitgevoerd.

Een Windows-programma uitvoeren

GERELATEERD: Toegang verkrijgen tot uw Ubuntu Bash-bestanden in Windows (en uw Windows-systeemstation voor onbepaalde tijd)

Om een ​​Windows-programma uit te voeren, voert u het pad naar het .exe-bestand van het programma in de Bash-shell in. Vergeet niet dat je Windows C: -drive beschikbaar is in / mnt / c in Bash. De Bash-omgeving is ook hoofdlettergevoelig, dus u moet het juiste hoofdlettergebruik opgeven.

Stel dat u het hulpprogramma Ping op C: Windows System32 PING.EXE wilt starten. U voert de volgende opdracht uit:

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

De volgende opdracht zou niet werken, omdat Bash hoofdlettergevoelig is:

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

Dit is een beetje ingewikkelder als het pad complexe tekens bevat zoals spaties en haakjes, zoals de map Program Files. Je moet "ontsnappen" aan spaties, haakjes en andere complexe tekens door ze vooraf te plaatsen met een "" -teken. Bijvoorbeeld, laten we zeggen dat je het programma Internet Explorer in C: Program Files (x86) wilde uitvoeren Internet Explorer iexplore.exe. Je zou de volgende opdracht moeten uitvoeren in Bash:

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

Let op de "" voor de spatie en haakjes karakters. Deze tekens moeten "ontsnapt" zijn of Bash realiseert zich niet dat de tekens deel uitmaken van een bestandspad.

Een argument doorgeven aan een opdracht

De basishoed geeft argumenten rechtstreeks door aan de opdrachten die u uitvoert

Als u bijvoorbeeld example.com wilt pingen, voert u het volgende uit:

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

Of als u het Windows-hosts-bestand wilt openen in Kladblok zou u het volgende uitvoeren:

/mnt/c/Windows/System32/notepad.exe "C: Windows System32 drivers etc hosts"

U gebruikt het standaard Windows-bestandspad bij het passeren van een bestandspad rechtstreeks naar een Windows-programma. Dat komt omdat Bash het argument rechtstreeks doorgeeft. Notepad.exe en andere Windows-programma's verwachten een Windows-bestandspad.

Een ingebouwd commando uitvoeren

Sommige Windows-opdrachten zijn geen .exe-bestanden, maar zijn ingebouwd in de opdrachtprompt zelf. Dit omvat bijvoorbeeld de opdracht

dirdie u normaal gesproken kunt uitvoeren in een opdrachtprompt. Als u zo'n opdracht wilt uitvoeren, moet u hetcmd.exe-binaire bestand dat aan de opdrachtprompt is gekoppeld, uitvoeren en het als argument doorgeven met / C, zoals dit:/ mnt / c / Windows /System32/cmd.exe / C-opdracht

Om de

dir-opdracht die is ingebouwd in de opdrachtprompt uit te voeren, voert u de volgende opdracht uit:/ mnt / c / Windows / System32 / cmd.exe / C dir

Hoe mappen aan het pad toe te voegen

De Windows Services voor Linux-omgeving behandelt Windows-uitvoerbare bestanden vergelijkbaar met de manier waarop het Linux-binaries behandelt. Dit betekent dat u een map met .exe-bestanden aan het pad kunt toevoegen en die .exe-bestanden dan rechtstreeks kunt uitvoeren. Als u bijvoorbeeld de map System32 aan uw pad wilt toevoegen, voert u het volgende uit:

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

U kunt dan Windows .exe-bestanden rechtstreeks in de System32-map uitvoeren, zoals:

PING.exe example.com

notepad.exe
cmd.exe / C dir
De uitvoer van de ene opdracht naar de andere pipen

De uitvoer van een Windows-opdracht kan worden doorgestuurd naar een Linux-opdracht en omgekeerd. U kunt bijvoorbeeld de opdracht

ipconfig.exe -allgebruiken om details over uw netwerkinterfaces weer te geven en deze naar de opdracht Linuxgrepte sturen om de uitvoer te zoeken. Als u bijvoorbeeld alle informatie over uw verbinding wilt weergeven en wilt zoeken naar secties die overeenkomen met "IPv4-adres", voert u het volgende uit:/mnt/c/Windows/System32/ipconfig.exe -all | grep "IPv4-adres"

Dat is het basisproces. Deze commando's zullen ook werken wanneer ze zijn opgenomen in een Bash-script, zodat je een Bash-script kunt schrijven dat zowel Windows-opdrachten als Linux-hulpprogramma's bevat. Als het in de Bash-shell wordt uitgevoerd, werkt het in een Bash-script.

En als u de andere kant op wilt, kunt u de opdracht "bash -c" gebruiken om Bash-opdrachten uit te voeren vanaf de standaard Windows Command Prompt .


Bent u uw Roku-afstandsbediening kwijtgeraakt? Het kan een geluid maken totdat je het vindt

Bent u uw Roku-afstandsbediening kwijtgeraakt? Het kan een geluid maken totdat je het vindt

Je gaat zitten om iets te kijken, alleen om te beseffen dat je niet weet waar je afstandsbediening is. Alle hoop is verloren. Wanneer u uw telefoon verliest, kunt u iemand vragen hem te bellen, maar uw afstandsbediening kan dat niet doen. Of kan het? Als je een Roku 4 of Roku Ultra streaming box bezit, is er een ingebouwde luidspreker op de afstandsbediening.

(how-top)

Muziek afspelen op je Amazon-echo op basis van je activiteiten

Muziek afspelen op je Amazon-echo op basis van je activiteiten

Je kunt Alexa vragen muziek te spelen van een bepaald artiest of genre, maar de juiste muziek te vinden voor je training of om te vallen in slaap vallen is een beetje ingewikkelder dan gewoon een genre zoeken. Gelukkig kun je Alexa om muziek vragen op basis van wat je aan het doen bent. Hier leest u hoe het werkt en waar u het voor kunt gebruiken.

(how-top)