Programiranje

Odkrijte moč Bash-a v sistemu Windows

Microsoft Windows je morda prevladujoči igralec na namizju, vendar hitro rastoči trg odprtokodne programske opreme - zlasti za skrbniška in razvojna orodja - očitno daje prednost Linuxu. Da ne omenjam mobilnega trga, kjer Android uporablja različice Linuxa. Če ste razvijalec v operacijskem sistemu Windows, bobnanje, s katerim boste spoznali zmogljivosti Linuxa, postaja vedno glasnejše.

Skozi leta je Microsoft predstavil različne rešitve za uporabo zmožnosti Linuxa v sistemu Windows, kot so PowerShell s SSH ter Cygwin in MSYS. Druga možnost je zagon Linuxa v navideznem računalniku. Toda VM porabijo veliko virov in ne nudijo prvovrstne izkušnje z Linuxom, saj na primer ne morete urejati lokalnih datotek ali dobiti popolnega dostopa do lokalnih pogonov.

Ker se svet IT za številne projekte obrača proti Linuxu, je Microsoft pripravil novo ponudbo, da bi izkoristil ta rastoči trg. Odgovor je Bash v sistemu Windows. Tu vas bomo vodili skozi namestitev Bash-a v sistem Windows in vam okušali, kaj lahko - in zakaj bi to storili - naredite v ukazni vrstici Linuxa.

Pregled Bash-a v sistemu Windows

Bash on Windows je nova funkcija, dodana operacijskemu sistemu Windows 10. Microsoft se je združil s Canonical-om, imenovanim ustvarjalci Ubuntu-Linuxa, da bi zgradil to novo infrastrukturo v sistemu Windows, imenovano Podsistem za Windows (WSL). Razvijalcem omogoča dostop do celotnega nabora Ubuntu CLI in pripomočkov. Z domačo izkušnjo Linuxa lahko razvijalci v sistemu Windows izvajajo ukaze za Linux, vključno z dostopom do lokalnih datotek in pogonov. Ker je Linux izvorno integriran v sistem Windows, imajo razvijalci prilagodljivost za delo na isti datoteki v sistemih Linux in Windows. Preprosto povedano, Bash v operacijskem sistemu Windows prinese uporabniško območje Ubuntuja v sistem Windows, minus jedro Linuxa.

Bash proti PowerShell

Microsoft že ima ukazno lupino v PowerShell-u. Torej, kako se Bash v sistemu Windows razlikuje? PowerShell je Microsoftov okvir za upravljanje konfiguracije za avtomatizacijo opravil. Uporablja se za upravljanje sistema Windows s svojo arhitekturo, usmerjeno v API. Bash pa se za avtomatizacijo in razvoj večinoma zanaša na besedilne datoteke. Razlikujeta se tako po fokusu kot po oblikovanju. Na primer, ko navajate datoteke v imeniku z ls PowerShell prikaže izhod kot datotečne predmete, medtem ko Bash v sistemu Windows prikaže izhod kot niz nizov. Na srečo lahko za skrbnike sistema Windows sodelujete z obema rešitvama in si zagotovite najboljše iz obeh svetov.

Previdno: PowerShell ima vzdevke, ki vam to omogočajo pomisli izvajate tradicionalne ukaze Bash, ko dejansko izvajate komandne gumbe PowerShell. To lahko nekatere ljudi spotakne. Na primer, ls je vzdevek za Get-ChildItem ukaz. Podobno, pwd je vzdevek za Get-Location in cd je vzdevek za Set-Location. Za seznam vseh vzdevkov v PowerShell uporabite Get-Alias cmdlet.

Bash v sistemu Windows ponuja številne prednosti razvijalcem odprtokodne kode. S tem, ko Bash v operacijskem sistemu Windows prinese domače zmogljivosti Linuxa, odpravlja potrebo po dvojnem zagonu z Ubuntujem za dostop do zmožnosti Linuxa. Ni vam treba uporabljati Mac OS X, zagnati navideznega računalnika ali ustvariti zaobidenih rešitev s pomočjo Cygwin-a. Omogoča nabor orodij za pisanje in gradnjo kode za vaše scenarije in platforme. Z dostopom do datotečnega sistema Windows iz storitve Bash lahko na istih datotekah delate s sistemom Windows ali Linux CLI.

Kako je Microsoft Bash prenesel v sistem Windows?

Na konferenci o gradnji aprila 2016 je Microsoft na presenečenje mnogih napovedal podsistem Windows za Linux (WSL). Rojen v partnerstvu s Canonical-om, je Bash v sistemu Windows prvič dobavljen s posodobitvijo Windows 10 Anniversary Update. Na voljo je v dveh delih: osnovni podsistem in paket. Osrednji podsistem je že del sistema Windows 10 Insider Builds in ponuja Linux API v sistemu Windows, kar pomeni, da lahko izvorno naložite knjižnice in izvršljive datoteke Linux. Canonical ponuja programski paket kot dodatno opremo. Ta programski paket ponuja orodja Bash in CLI, potrebna za okolje Linux.

Namestitev Bash-a

Če želite zagnati Bash v sistemu Windows, mora sistem zagnati x64 Windows 10 Anniversary Update Build 14393 ali novejšo različico. Gradnjo odkrijete s tipkanjem winver v ukaznem polju.

Če je različica gradnje manjša od 14393, Bash-a ne boste mogli namestiti.

Če želite omogočiti Bash v podprti gradnji, morate najprej vklopiti način za razvijalce. Če želite to narediti, pojdite v Nastavitve, kliknite Za razvijalce in izberite izbirni gumb Način za razvijalce. Ko je to končano, boste pozvani, da potrdite.

Ko je to storjeno, mora biti omogočena funkcija podsistem Windows za Linux. To najlažje naredite s pomočjo ukazne mize PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Podsistem-Linux

Če želite odpreti Bash v sistemu Windows, odprite ukazni poziv, vnesite bashin sprejmite licenčno pogodbo. Ko se Bash namesti, izvede nekaj sprememb v vašem sistemu:

  • Prenese se slika uporabniškega načina Ubuntu.
  • Skrita mapa na naslovu % localappdata% \ lxss \ je ustvarjen.
  • Bližnjica je postavljena na namizje.

Če želite zagnati Bash, lahko zdaj odprete ukazni poziv ali uporabite ikono bližnjice na namizju.

Po uspešni namestitvi Basha vas bo sistem pozval, da ustvarite uporabniško ime in geslo za Unix. To uporabniško ime in geslo sta za Bash in se nikakor ne nanašata na vaše okolje Windows.

Kako začeti z ukazi

Ko ste v Bashu, imate na voljo nekaj ukazov za upravljanje WSL in slike Ubuntu.

  • lxrun: Za upravljanje primerka WSL
  • lxrun / namestitev: Za zagon postopka prenosa in namestitve
  • lxrun / odstranitev: Če želite odstraniti sliko Ubuntu
  • lxrun / posodobitev: Za posodobitev indeksa paketov WSL
  • lxrun / setdefaultuser: Nastavite privzeti Bash za uporabnika Ubuntu

Bash v sistemu Windows vam seveda omogoča tudi izvajanje številnih "tradicionalnih" ukazov Bash. Na primer:

  • grep: Za iskanje vrstic, ki se ujemajo z vzorcem
  • sed: Če želite nadomestiti niz
  • odmev: Za prikaz vrednosti na zaslon
  • var = 2: Če želite ustvariti spremenljivko za $ var
  • =!=: Za primerjavo majhnih delčkov besedil

Navigacijski ukazi

Za navigacijo lahko uporabite tudi ukaz Windows DOS cd za krmarjenje po strukturi map.

  • cd temp: Spremeni delovni imenik v mapo z imenom temp
  • cd \: Popelje vas v korenski imenik. Ker Ubuntu nima črk pogona, kot je Windows, bi bil korenski imenik najvišji nivo.
  • cd ..: Pomik poviša za eno stopnjo navzgor (to je v nadrejeni imenik)
  • cd ~: Popelje vas v domači imenik

Vendar cd v PowerShell je nekoliko drugačen v Bashu v Ubuntuju. V okolju WSL so vaši pogoni Windows shranjeni v / mnt mapo, ime pogona pa se uporablja kot podmapa. Ko uporabite cd ukaz, morate ustrezno spremeniti pot.

Prikaži ukaze

Če želite preveriti pot in vsebino imenika, je nekaj primerov:

  • pwd: Na zaslon natisne pot ali imenik, v katerem ste
  • ls: Prikaže datoteke v imeniku

Ukazi za pomoč

Če želite razumeti funkcionalnost in parametre, povezane z vsakim ukazom, se človek ukaz.

Tip človek in prikazal bo povzetek, za kaj je ukaz in s tem povezane parametre. To je podobno kot PowerShell pomoč ukaz.

Urejanje ukazov

Ena od prednosti Basha je, da delate z navadnim besedilom. To pomeni, da se vam ni treba zapletati z nastavitvami registra ali programa. Ne glede na to, ali želite spremeniti zagonsko zaporedje ali konfiguracijo spletnega strežnika, preprosto uredite ustrezno besedilno datoteko. Za učinkovito izvajanje nalog urejanja potrebujete dober urejevalnik besedil. Bash ponuja zmogljive urejevalnike, ki vam olajšajo delo. Nekaj ​​dobrih primerov urejevalnikov besedil, ki so na voljo v storitvi Bash, je nano in vi.

Upravljanje paketov v Bashu

Ker v bistvu uporabljate Linux, imate zdaj na voljo tudi ukaze za upravljanje paketov v obliki apt-get. Nekaj ​​primerov:

  • posodobitev sudo apt-get: Osveži seznam repozitorijev, iz katerih lahko povlečete
  • sudo apt-get nadgradnja: Nadgradi vso programsko opremo na najnovejšo različico
  • apt-cache iskanje app_name: Poišče skladišče za določeno aplikacijo
  • sudo apt-get namestitev apt-name: Prenese in namesti določeno aplikacijo

sudo je dodana vsem ukazom, da lahko zaženete ukaz pod drugim uporabnikom, privzeto super uporabnikom (ali skrbnikom). Podobno je tehniki "zaženi kot skrbnik" v sistemu Windows.

Ukazi za mreženje

Za prenos datotek prek strežnika HTTP s strežnika ali URL-ja lahko zdaj uporabite curl ukaz. Ta ukaz je podoben ukazu PowerShell Invoke-WebRequest cmdlet.

Podobno se lahko povežete z drugim oddaljenim računalnikom Linux in na njem zaženete ukaze. Ker smo zdaj v Linuxu, imamo končno pravega odjemalca SSH, s katerim lahko sodelujemo. Namesto da bi uporabili Cygwin ali trenutno različico implementacije OpenSSH za Windows, lahko zdaj SSH izvirno zaženemo prek ssh ukaz:

ssh uporabniško ime @ abc.com

Medtem ko smo na temi OpenSSH, imamo zdaj tudi izvorno možnost varnega kopiranja datotek prek SCP z uporabo vgrajenega scp ukaz:

scp localfile uporabniško [email protected]: oddaljeni imenik / oddaljena datoteka

Z Bashom v sistemu Windows imate zdaj na voljo veliko drugih funkcij:

  • Orodja, kot so Git, Python in Ruby, neposredno v sistemu Windows
  • Urejevalniki ukazne vrstice, kot sta emacs in vi
  • Dostop do datotečnega sistema Windows iz okolja Bash
  • Uporabniška podpora za Linux
  • Podpora za Symlink
  • Montaža shrambe prek / mnt

Kateri so najpogostejši primeri uporabe Bash v sistemu Windows?

Trenutno številni razvijalci uporabljajo orodja Windows in Linux, kar pomeni, da morajo za izvajanje CLI-ja izvesti dvojni zagon ali zagnati Linux znotraj navideznega računalnika. Ko lahko ta orodja zaženejo v sistemu Windows, potem Windows postane njihovo glavno namizje. V tem primeru jim ni treba prenesti aplikacij in storitev Linux v sisteme Windows. Medtem ko so nekateri lahko v sistemu Windows zagnali aplikacije za grafični uporabniški vmesnik Linuxa, mnogi dobijo priročen Linux CLI za izvajanje preprostih nalog, ne da bi pri tem kupili namenski računalnik Linux iz Azure ali se za preproste namene preselili v napravo Mac. Ker je skriptiranje na Bashu enostavno, lahko avtomatizirate razvojne naloge, kot je varnostno kopiranje spletnih mest v Apacheju.

Mnogi razvijalci na primer uporabljajo GitHub za naloge nadzora različic. Če želite dostopati do GitHub v sistemu Windows, morate namestiti GitHub za Windows, nato pa za urejanje sprememb uporabiti ukaze za prevzem in potiskanje. Namesto tega morate prenesti pripomoček Git, kar je dolgočasen postopek. Z Bashom v sistemu Windows postane vaše delo preprosto:

apt-get install git

git commit

git push

Poleg tega v razdelku Bash ne potrebujete drugih orodij za delo s tradicionalnimi vrstami datotek Linux, kot so GZIPed tarballs (datoteke tar.gz).

Katere so pomanjkljivosti uporabe Bash-a v sistemu Windows?

Bash v sistemu Windows je še vedno v različici beta in vsebuje nekaj grobih robov. Microsoft pravi, da Bash v sistemu Windows trenutno morda ne bo popolnoma izvedel vseh vaših skriptov. Vendar pa Microsoft pozorno spremlja delovanje in povratne informacije in proaktivno spreminja to rešitev.

Drugič, Bash on Windows je nastal za razvojno skupnost. Ni bil zasnovan za upravljanje okolja Windows. Čeprav lahko v WSL zaženete demone strežnika, pa ta ne ponuja vseh zmožnosti celotnega virtualnega stroja Linux. Če nameravate v Ubuntuju izvajati strežniške procese pod delovnimi obremenitvami, si oglejte druge možnosti za zagon celotnega operacijskega sistema Linux.

Nazadnje, Bash v operacijskem sistemu Windows v operacijski sistem Windows pripelje zmogljivosti Linuxa. Vendar orodja Linux ne bodo mogla komunicirati z orodji in aplikacijami Windows. To pomeni, da zaradi njihovih značilnih arhitekturnih razlik ni zmogljivosti med različnimi platformami.

Bash v sistemu Windows je še vedno v začetni fazi. Čeprav ima ta rešitev nekaj omejitev, si Microsoft močno prizadeva za dodajanje več zmogljivosti za izbris teh razlik in Windows za platformo št. 1 za vse vrste razvojnih projektov. Bodite pozorni na ta projekt pri Microsoftu. Z novo držo Microsofta v odprtokodnem svetu bo Bash zagotovo postal prvovrstni državljan sistema Windows s časom.

Povezani članki

  • Bistveni vodnik po PowerShell za Windows, Windows Server in Exchange
  • 10 bistvenih varnostnih skriptov PowerShell za skrbnike sistema Windows
  • Vse o ponudnikih in modulih PowerShell
  • Go pro: Navodila za uporabnike PowerShell
$config[zx-auto] not found$config[zx-overlay] not found