11Sep

Slik kjører du Windows-programmer fra Windows 10s Bash Shell

click fraud protection

I opprørereoppdateringen lar Windows 10s Bash-skall deg nå kjør Windows-binære filer og standard kommandoprompt-kommandoer, rett fra Bash. Du kan kjøre både Linux- og Windows-programmer fra samme Bash-skjerm, eller til og med inkorporere Windows-kommandoer i et Bash-skript.

Hva du trenger å vite

Her er noen grunnleggende detaljer du trenger å vite om denne funksjonen:

  • Brukerkonto : Programmer lansert fra Bash-skallet vil kjøre som om de ble lansert av den nåværende Windows-brukerkontoen.
  • Tillatelser : Disse programmene har samme tillatelser som Bash.exe-prosessen. Så, hvis du vil at disse kommandoene skal ha administratortilgang, må du kjøre Bash-skjermet som administrator.
  • Arbeidsregister : Windows-programmer deler samme "arbeidskatalog" som Bash-skallet. Så hvis du kjører en kommando som viser innholdet i gjeldende katalog, vil det liste inn innholdet i gjeldende arbeidskatalog i Bash-skallet. Bruk CD-kommandoen til å endre arbeidskataloger.

Med det i tankene, la oss ta en titt på hvordan du kjører et program.

instagram viewer

Slik kjører du et Windows-program

Hvis du vil kjøre et Windows-program, må du skrive inn banen til programmets. exe-fil i Bash-skallet. Husk at Windows C: -disken din er tilgjengelig på /mnt/ c i Bash. Bash-miljøet er også saksensitivt, så du må spesifisere riktig kapitalisering.

La oss si at du ønsket å starte Ping-verktøyet plassert på C: \ Windows \ System32 \ PING.EXE.Du vil kjøre følgende kommando:

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

Følgende kommando ville ikke fungere, fordi Bash er bokstavsfølsom:

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

Dette er litt mer komplisert hvis banen inneholder komplekse tegn som mellomrom og parenteser,som programfilene. Du må "rømme" mellomrom, parenteser og andre komplekse tegn ved å prefikse dem med et "\" tegn.

For eksempel, la oss si at du ønsket å kjøre Internet Explorer-programmet som ligger på C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. Du må kjøre følgende kommando i Bash:

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

Merk "\" før mellomrom og brakettegnene. Disse tegnene må være "rømt" eller Bash vil ikke innse at tegnene er en del av en filbane.

Slik sender du et argument til en kommando

Bash-skallet sender argumenter direkte til kommandoene du kjører.

Hvis du for eksempel ville ping example.com, ville du kjøre:

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

Eller hvis du ønsket å åpne Windows vertsfilen i Notisblokk, ville du kjøre:

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

Du bruker standard Windows-filbanen når du sender en filbane direkte til et Windows-program. Det er fordi Bash passerer argumentet direkte. Notepad.exe og andre Windows-programmer forventer en Windows-filbane.

Slik kjører du en innebygd kommando

Noen Windows-kommandoer er ikke. exe-filer, men er innebygd i selve kommandopromptet. Dette inkluderer for eksempel dir-kommandoen du vanligvis kjører i en kommandoprompt. For å kjøre en slik kommando må du kjøre cmd.exe binært knyttet til kommandoprompt og sende det kommandoen som et argument med / C, slik som:

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

For eksempel å kjøre dirkommandoen innebygd i kommandoprompten, vil du kjøre følgende kommando:

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

Slik legger du til kataloger på banen

I Windows Services for Linux-miljøet behandles Windows-kjørbare på samme måte som det behandler Linux-binarier. Dette betyr at du kan legge til en katalog som inneholder. exe-filer til banen og deretter utføre disse. exe-filene direkte. For eksempel, for å legge til System32-katalogen på banen din, ville du kjøre:

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

Du kan da kjøre Windows. exe-filer som ligger i System32-mappen direkte, slik som:

PING.exe eksempel.com notepad.exe cmd.exe / C dir

Slik piper du utgangen av ett kommando til en annen

Utgangen av en Windows-kommando kan ledes til en Linux-kommando, og omvendt. For eksempel kan du bruke kommandoen ipconfig.exe -all til å liste detaljer om nettverksgrensesnittene og rør det til Linux grep-kommandoen for å søke utdataene. For eksempel, for å liste all informasjon om tilkoblingen din og søke etter deler som samsvarer med "IPv4-adresse", vil du kjøre:

/mnt/c/Windows/System32/ ipconfig.exe -all |grep "IPv4-adresse"

Det er den grunnleggende prosessen. Disse kommandoene vil også fungere når de er innarbeidet i et Bash-skript, slik at du kan skrive et Bash-skript som inneholder både Windows-kommandoer og Linux-verktøy. Hvis det kjører i Bash-skallet, vil det fungere i et Bash-skript.

Og hvis du vil gå den andre veien, kan du bruke kommandoen "bash -c" til å kjøre Bash-kommandoer fra standard Windows Command Prompt.

RELATERTE ARTIKKER
Hvordan lage og kjøre Bash Shell-skript på Windows 10
Slik kjører du Linux-kommandoer fra utenfor Bash Shell på Windows 10