În actualizarea creatorilor, shell-ul Bash Windows 10 vă permite acum să executați binare Windows și comenzi standard Command Prompt, direct de la Bash. Puteți rula atât programele Linux, cât și programele Windows din aceeași coajă Bash sau chiar să încorporați comenzile Windows într-un script Bash.
Iată câteva detalii de bază despre această caracteristică:
CD
comanda pentru a schimba directoarele de lucru.Având în vedere acest lucru, să aruncăm o privire la modul de derulare a unui program.
Pentru a rula un program Windows, introduceți calea spre fișierul .exe al programului în shell-ul Bash. Rețineți că unitatea Windows C: este disponibilă la / mnt / c în Bash. Mediul Bash este, de asemenea, sensibil la minuscule, deci trebuie să specificați capitalizarea corectă.
Să presupunem că ați vrut să lansați utilitarul Ping situat la C: \ Windows \ System32 \ PING.EXE. Ați executa următoarea comandă:
/mnt/c/Windows/System32/PING.EXE
Următoarea comandă nu ar funcționa, deoarece Bash este sensibil la minuscule:
/mnt/c/windows/system32/ping.exe
Este ceva mai complicat dacă calea conține caractere complexe precum spații și paranteze, cum ar fi dosarele Program Files. Trebuie să "scăpați" spațiile, parantezele și alte caractere complexe, prefixându-le cu un caracter "\".
De exemplu, să presupunem că doriți să rulați programul Internet Explorer situat la C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe. Va trebui să executați următoarea comandă în Bash:
/ mnt / c / Program \ Files \ (x86 \) / Internet \ Explorer / iexplore.exe
Rețineți "\" înaintea caracterelor de spațiu și colț. Aceste caractere trebuie să fie "scapate" sau Bash nu va realiza că caracterele fac parte dintr-o cale de fișier.
Bash shell-ul transmite argumentele direct comenzilor pe care le executați.
De exemplu, dacă doriți să adăugați ping example.com, ați rula:
/mnt/c/Windows/System32/PING.EXE example.com
Sau, dacă doriți să deschideți fișierul gazdă Windows în Notepad, ați rula:
/mnt/c/Windows/System32/notepad.exe "C: \ Windows \ System32 \ drivere \ etc \ hosts"
Utilizați calea standard a fișierului Windows când treceți o cale de fișier direct la un program Windows. Asta pentru că Bash transmite argumentul în mod direct. Notepad.exe și alte programe Windows se așteaptă la o cale de fișiere Windows.
Unele comenzi Windows nu sunt fișiere .exe, ci sunt încorporate în Command Prompt. De exemplu, aceasta include dir
puteți executa în mod normal într-o comandă. Pentru a rula o astfel de comandă, trebuie să rulați cmd.exe
binar asociat cu Promptul de comandă și să îi transmiteți comanda ca argument cu / C, după cum urmează:
/mnt/c/Windows/System32/cmd.exe / comanda C
De exemplu, pentru a rula dir
comandă încorporată în Command Prompt, ați rula următoarea comandă:
/mnt/c/Windows/System32/cmd.exe / C dir
Mediul Windows Services for Linux tratează executabilul Windows similar cu modul în care tratează binarele Linux. Acest lucru înseamnă că puteți adăuga un director care conține fișiere .exe pe cale și apoi executați acele fișiere .exe direct. De exemplu, pentru a adăuga directorul System32 la calea ta, ai rula:
exportul PATH = $ PATH: / mnt / c / Windows / System32
Apoi, puteți rula fișierele Windows .exe situate direct în folderul System32, cum ar fi:
PING.exe example.com
notepad.exe
cmd.exe / C dir
Ieșirea unei comenzi Windows poate fi trimisă la o comandă Linux și invers. De exemplu, puteți utiliza funcțiaipconfig.exe -all
comanda pentru a lista detaliile despre interfețele de rețea și a le conduce la Linux grep
comanda pentru a căuta ieșirea. De exemplu, pentru a afișa toate informațiile despre conexiunea dvs. și pentru a căuta secțiuni care se potrivesc "Adresa IPv4", ați rula:
/mnt/c/Windows/System32/ipconfig.exe - tot | grep "adresa IPv4"
Acesta este procesul de bază. Aceste comenzi vor funcționa și atunci când sunt încorporate într-un script Bash, astfel încât să puteți scrie un script Bash care include atât comenzi Windows, cât și utilitare Linux. Dacă rulează în shell-ul Bash, va funcționa într-un script Bash.
Și dacă doriți să mergeți în altă direcție, puteți folosi comanda "bash -c" pentru a rula comenzile Bash de la standardul Windows Command Prompt.