11Sep
"Creators Update" metu "Windows 10" "Bash" lange dabar galite paleisti "Windows" dvejetainius failus ir standartines komandinės eilutės komandas tiesiai iš "Bash".Jūs galite paleisti tiek "Linux", tiek "Windows" programas iš tos pačios "Bash" apvalkalo arba net įtraukti "Windows" komandas į "Bash" scenarijų.
Ką reikia žinoti
Štai keletas pagrindinių detalių, kurių reikia žinoti apie šią funkciją:
- vartotojo abonementas : programos, paleidžiamos iš "Bash" lange, bus paleidžiamos taip, tarsi jos būtų paleistos dabartinės Windows vartotojo abonemento.
- Leidimai : Šios programos turės tas pačias teises kaip ir Bash.exe procesas. Taigi, jei norite, kad šios komandos gautų administratoriaus prieigą, turėsite paleisti "Bash" lange kaip administratorių.
- darbo aplinka : "Windows" programos turi tą patį "darbo katalogą", kaip "Bash" apvalkalas. Taigi, jei paleisite komandą, kurioje bus nurodytas dabartinio katalogo turinys, jis parodys dabartinio darbo katalogo turinį "Bash" lange. Naudokite komandą cd pakeisti darbinius katalogus.
Atsižvelgdami į tai, pažiūrėkime, kaip paleisti programą.
Kaip paleisti "Windows" programą
Norėdami paleisti "Windows" programą, įveskite kelią į programos. exe failą Basho lange. Nepamirškite, kad jūsų "Windows C:" diskas yra prieinamas /mnt/ c "Bash"."Bash" aplinka taip pat yra svarbi, todėl turite nurodyti teisingą kapitalizaciją.
Tarkime, kad norėjote paleisti "Ping" programą, esančią C: \ Windows \ System32 \ PING.EXE.Būsite paleisti šią komandą:
/mnt/c/Windows/System32/ PING.EXETolesnė komanda neveikia, nes Bash yra didžiosios ir mažosios raidės:
/mnt/c/windows/system32/ ping.exeTai šiek tiek sudėtingiau, jei kelias yra sudėtingų simbolių, tokių kaip tarpai ir skliausteliuose,kaip programos failų aplankai. Turite "pabėgti" tarpų, skliaustus ir kitus sudėtingus simbolius, prieš juos priskirdami simboliu "\".
Pvz., Tarkime, kad norite paleisti "Internet Explorer" programą, esančią C: \ Program Files( x86) \ Internet Explorer \ iexplore.exe. Bash turi paleisti šią komandą:
/mnt/c/ Program \ Files \ \( x86 \) / Internet \ Explorer / iexplore.exePastaba "\" prieš simbolius tarpo ir bracket.Šie simboliai turi būti "pabėgę" arba "Bash" nesuvokia, kad simboliai yra failo kelio dalis.
Kaip perduoti argumentą komandai
Basho lange argumentai siunčiami tiesiai į komandas, kurias vykdote.
Pavyzdžiui, jei norite ping example.com, paleiskite:
/mnt/c/Windows/System32/ PING.EXE example.comArba, jei norite atidaryti "Windows" kompiuterių failą Notepad, paleiskite:
/mnt/c/Windows/System32/ notepad.exe "C: \ Windows \ System32 \ drivers \ etc \ hosts "Naudodami standartinį" Windows "failo kelią perduodami failo kelią tiesiai į" Windows "programą.Taip yra dėl to, kad Bash tiesiogiai pateikia argumentą.Notepad.exe ir kitos "Windows" programos tikisi "Windows" failo kelio.
Kaip paleisti įmontuotą komandą
Kai kurios "Windows" komandos yra ne. exe failai, bet yra įmontuoti į komandų eilutę.Pavyzdžiui, tai apima dir komandą, kurią paprastai galite paleisti komandinėje eilutėje. Norėdami paleisti tokią komandą, turite paleisti cmd.exe dvejetainį, susietą su komandinės eilutės komandą, ir perduoti šią komandą kaip argumentą su / C, tokiu būdu:
/mnt/c/Windows/System32/ cmd.exe / C komandaPavyzdžiui paleiskite dirkomandą, įvesta į komandų eilutę, paleiskite šią komandą:
/mnt/c/Windows/System32/ cmd.exe / C direktoriusKaip pridėti katalogus į kelią
"Windows Services for Linux" aplinka tvarko "Windows" vykdomąjį failą panašiai kaip ir "Linux" dvejetainius failus. Tai reiškia, kad galite pridėti katalogą, kuriame yra. exe failai, ir paleiskite šiuos. exe failus tiesiogiai. Pavyzdžiui, jei norite pridėti sistemos32 katalogą į savo kelią, paleiskite:
export PATH = $ PATH: /mnt/c/Windows/ System32. Tada galite paleisti Windows. exe failus, esančius kataloge System32, taip pat:
PING.exe pavyzdyscom notepad.exe cmd.exe / C dirKaip vamzdžių išvesties iš vienos komandos į kitą
Komandos Windows išvestis gali būti perduota komandai Linux ir atvirkščiai. Pavyzdžiui, galite naudoti ipconfig.exe-visą komandą, norėdami nurodyti išsamią informaciją apie jūsų tinklo sąsajas ir perkelti ją į komandą Linux grep, kad galėtumėte ieškoti išvesties. Pavyzdžiui, norėdami išvardinti visą informaciją apie jūsų ryšį ir ieškoti skirsnių, atitinkančių "IPv4 adresą", paleiskite:
/mnt/c/Windows/System32/ ipconfig.exe -visu |grep "IPv4 adresas"Tai pagrindinis procesas.Šios komandos taip pat veiks, kai bus įtrauktos į "Bash" scenarijų, todėl galėsite parašyti Basho scenarijų, kuriame yra ir "Windows" komandų, ir "Linux" komunalinės paslaugos. Jei jis paleidžiamas "Bash" lange, jis veiks Basho scenarijuje.
Ir, jei norite pereiti kitu būdu, galite naudoti komandą "bash -c", norėdami paleisti Bash komandas iš standartinės "Windows" komandinės eilutės.