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 .


Een Uber-rit plannen voor de toekomst

Een Uber-rit plannen voor de toekomst

Als u van plan bent om ergens op een bepaald tijdstip te zijn en vervoer wilt regelen om daar te komen, kunt u met Uber van tevoren plannen zodat u het niet hoeft te doen wanneer de tijd werkelijk is aangebroken. VERBONDEN: Welke beoordeling moet u uw Uber, Lyft of andere stuurprogramma geven? Houd er echter rekening mee dat het plannen van een Uber-rit vooraf garandeert niet echt dat je een lift krijgt.

(how-top)

Hoe u uw eigen Custom

Hoe u uw eigen Custom "Start" -menu toevoegt aan het macOS-dock

Als Windows 8 ons iets (en Microsoft) heeft geleerd, dan is het dat gebruikers echt dol zijn op het menu Start. Als je naar de Mac overschakelt, vraag je je misschien af ​​waarom macOS dat niet biedt, of eigenlijk niet zoiets. Natuurlijk is er de map Programma's in de Finder en is er het Launchpad op het volledige scherm, maar geen van beide van degenen die zich goed voelen, toch?

(how-top)