11Sep

Sådan kører du Windows-programmer fra Windows 10's Bash Shell

click fraud protection

I ophavsmandens opdatering giver Windows 10s Bash-shell nu mulighed for at køre Windows-binære filer og standardkommandopromptkommandoer lige fra Bash. Du kan køre både Linux- og Windows-programmer fra samme Bash-shell eller endda indarbejde Windows-kommandoer i et Bash-script.

Hvad du behøver at vide

Her er nogle grundlæggende detaljer, du har brug for at vide om denne funktion:

  • Brugerkonto : Programmer, der startes fra Bash-skalen, kører som om de blev lanceret af den nuværende Windows-brugerkonto.
  • Tilladelser : Disse programmer har samme tilladelser som Bash.exe-processen. Så hvis du vil have disse kommandoer til at få administratoradgang, skal du køre Bash-skalen som administrator.
  • Arbejdskatalog : Windows-programmer deler samme "arbejdskatalog" som Bash-skalen. Så hvis du kører en kommando, der lister indholdet af den aktuelle mappe, vil det liste indholdet af den aktuelle arbejdsmappe i Bash shell. Brug cd-kommandoen til at ændre arbejdsmapper.

Med det i tankerne, lad os tage et kig på, hvordan man kører et program.

instagram viewer

Sådan kører du et Windows-program

For at køre et Windows-program skal du indtaste stien til programmets. exe-fil i teh-shell. Husk, at din Windows C: -drev er tilgængelig på /mnt/ c i Bash. Bash-miljøet er også sagerfølsomt, så du skal angive den korrekte aktivering.

Lad os sige, at du ønskede at starte Ping-værktøjet placeret på C: \ Windows \ System32 \ PING.EXE.Du vil køre følgende kommando:

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

Følgende kommando ville ikke fungere, fordi Bash er skærmfølsom:

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

Dette er lidt mere kompliceret, hvis stien indeholder komplekse tegn som mellemrum og parenteser,ligesom mapperne i programfiler. Du skal "undslippe" mellemrum, parenteser og andre komplekse tegn ved at prefikse dem med et "\" tegn.

For eksempel, lad os sige, at du ønskede at køre Internet Explorer-programmet placeret på C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. Du skal køre følgende kommando i Bash:

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

Bemærk "\" før plads- og beslagets tegn. Disse tegn skal "undslippes", eller Bash kan ikke indse tegnene er en del af en filsti.

Sådan sender du et argument til en kommando

Bash skalen sender argumenter direkte til de kommandoer, du udfører.

Hvis du f.eks. Ville ping example.com, ville du køre:

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

Eller hvis du ønskede at åbne Windows værtsfilen i Notesblok, ville du køre:

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

Du bruger den standard Windows-filsti, når du sender en filsti direkte til et Windows-program. Det er fordi Bash passerer argumentet direkte. Notepad.exe og andre Windows-programmer forventer en Windows-filsti.

Sådan kører du et indbygget kommando

Nogle Windows-kommandoer er ikke. exe-filer, men er indbygget i selve kommandopromptet. Dette inkluderer f.eks. Kommandoen dir, som du normalt kan køre i et kommandoprompt. For at køre en sådan kommando, skal du køre den binære cmd.exe, der er knyttet til kommandopromptet, og sende det kommandoen som et argument med / C, sådan:

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

For eksempel at køre dirkommando indbygget i kommandoprompten, vil du køre følgende kommando:

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

Sådan tilføjes biblioteker til stien

Windows Services for Linux-miljøet behandler Windows-eksekverbare filer, som ligner den måde, hvorpå det behandler Linux-binære filer. Dette betyder, at du kan tilføje en mappe med. exe-filer til stien og derefter udføre disse. exe-filer direkte. Hvis du f.eks. Vil tilføje System32-mappen til din sti, vil du køre:

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

Du kan derefter køre Windows. exe-filer, der er placeret i mappen System32 direkte, som sådan:

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

Sådan røres udgangen af ​​et kommando til en anden

Udgangen af ​​en Windows-kommando kan ledes til en Linux-kommando, og omvendt. For eksempel kan du bruge kommandoen ipconfig.exe -all til at liste detaljer om dine netværksgrænseflader og rør det til Linux grep-kommandoen for at søge i output. For eksempel, for at liste alle oplysninger om din forbindelse og søge efter sektioner der matcher "IPv4-adresse", vil du køre:

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

Det er den grundlæggende proces. Disse kommandoer vil også fungere, når de indarbejdes i et Bash-script, så du kan skrive et Bash-script, der indeholder både Windows-kommandoer og Linux-værktøjer. Hvis den kører i Bash-skalen, fungerer den i et Bash-script.

Og hvis du vil gå den anden vej, kan du bruge kommandoen "bash -c" til at køre Bash-kommandoer fra standard Windows Command Prompt.

RELATEREDE ARTIKLER
Sådan oprettes og køres Bash Shell-scripts på Windows 10
Sådan kører du Linux-kommandoer fra udenfor Bash Shell på Windows 10