Programavimas

Atraskite „Bash“ galią sistemoje „Windows“

„Microsoft Windows“ gali būti dominuojantis žaidėjas darbalaukyje, tačiau sparčiai didėjanti atvirojo kodo programinės įrangos rinka, ypač skirta „admin“ ir „dev“ įrankiams, aiškiai palaiko „Linux“. Jau nekalbant apie mobiliojo ryšio rinką, kur „Android“ naudoja „Linux“ variantus. Jei esate „Windows“ kūrėjas, būgnų ritmas, norint pasinaudoti „Linux“ galimybėmis, vis garsėja.

Per daugelį metų „Microsoft“ pristatė įvairius „Linux“ galimybių naudojimo „Windows“ būdus, pavyzdžiui, „PowerShell“ su SSH ir „Cygwin“ bei MSYS. Dar viena galimybė yra paleisti „Linux“ virtualioje mašinoje. Bet VM sunaudoja daug išteklių ir nesuteikia aukščiausios klasės „Linux“ patirties, nes, pavyzdžiui, negalite redaguoti vietinių failų ar gauti visiškos prieigos prie vietinių diskų.

Kai IT pasaulis daugelio projektų atžvilgiu linksta prie „Linux“, „Microsoft“ pateikė naują pasiūlymą pasinaudoti šia augančia rinka. „Bash“ sistemoje „Windows“ yra atsakymas. Čia mes jums padėsime įdiegti „Bash“ sistemoje „Windows“ ir parodysime, ką galite padaryti - ir kodėl tai darytumėte - „Linux“ komandinėje eilutėje.

„Bash“ apžvalga sistemoje „Windows“

„Bash on Windows“ yra nauja funkcija, pridėta prie „Windows 10“. „Microsoft“ kartu su „Canonical“, dar žinomu kaip „Ubuntu Linux“ kūrėjai, sukurs šią naują infrastruktūrą sistemoje „Windows“, vadinamą „Windows“ posistemiu „Linux“ (WSL). Tai leidžia kūrėjams pasiekti visą „Ubuntu“ CLI ir paslaugų rinkinį. Turėdami savąją „Linux“ patirtį, kūrėjai gali paleisti „Linux“ komandas sistemoje „Windows“, įskaitant prieigą prie vietinių failų ir diskų. Kadangi „Linux“ yra savaime integruota į „Windows“, kūrėjai gauna lankstumo dirbti su tuo pačiu failu „Linux“ ir „Windows“. Paprasčiau tariant, „Bash“ sistemoje „Windows“ „Ubuntu“ vartotojai patenka į „Windows“, atėmus „Linux“ branduolį.

Bashas prieš „PowerShell“

„Microsoft“ jau turi komandų apvalkalą „PowerShell“. Taigi kuo skiriasi „Bash“ sistemoje „Windows“? „PowerShell“ yra „Microsoft“ konfigūracijos valdymo sistema, skirta automatizuoti užduotis. Jis naudojamas valdyti „Windows“ su savo API orientuota architektūra. Kita vertus, Bashas dažniausiai remiasi tekstiniais failais, kad būtų galima automatizuoti ir tobulinti. Abi skiriasi tiek dėmesiu, tiek dizainu. Pvz., Kai kataloge nurodote failus naudodami ls komandą, „PowerShell“ išvestį rodo kaip failo objektus, o „Bash“ sistemoje „Windows“ išvestį rodo kaip eilučių rinkinį. Laimei, „Windows“ administratoriams galite dirbti kartu su abiem sprendimais ir išnaudoti visas abi puses.

Vienas žodis atsargiai: „PowerShell“ turi slapyvardžius, kurie leidžia jums tai padaryti pagalvok naudojate tradicines „Bash“ komandas, kai iš tikrųjų naudojate „PowerShell“ cmdlet. Tai gali pakenkti kai kuriems žmonėms. Pavyzdžiui, ls yra slapyvardis „Get-ChildItem“ komandą. Panašiai pwd yra slapyvardis „Get-Location“ ir cd yra slapyvardis Nustatyti vietą. Norėdami rasti visų „PowerShell“ slapyvardžių sąrašą, naudokite „Get-Alias“ cmdlet.

„Bash“ sistemoje „Windows“ atvirojo kodo kūrėjams suteikiama daug privalumų. Pateikdamas vietines „Linux“ galimybes į „Windows“, „Bash“ sistemoje „Windows“ nebereikia paleisti dvigubo paleidimo naudojant „Ubuntu“, kad būtų galima pasiekti „Linux“ galimybes. Jums nereikia eiti į „Mac OS X“, paleisti virtualią mašiną ar kurti apeitį naudojant „Cygwin“. Tai suteikia reikiamą įrankių rinkinį scenarijų ir platformų kodui rašyti ir kurti. Patekę į „Windows“ failų sistemą iš „Bash“, galite dirbti su tais pačiais failais naudodami „Windows“ arba „Linux“ CLI.

Kaip „Microsoft“ perkėlė „Bash“ į „Windows“?

2016 m. Balandžio mėn. „Build“ konferencijoje „Microsoft“ daugelio nuostabai paskelbė „Windows“ posistemį, skirtą „Linux“ (WSL). Bendradarbiaudamas su „Canonical“, „Bash“ sistemoje „Windows“ pirmiausia buvo pristatytas su „Windows 10 Anniversary Update“. Jį sudaro dvi dalys: pagrindinis posistemis ir paketas. Pagrindinis posistemis jau yra „Windows 10 Insider Builds“ dalis ir siūlo „Linux“ API sistemoje „Windows“, o tai reiškia, kad galite natūraliai įkelti „Linux“ bibliotekas ir vykdomuosius failus. „Canonical“ pateikia programinės įrangos paketą kaip papildomą variantą. Šis programinės įrangos paketas siūlo „Bash“ ir CLI įrankius, reikalingus „Linux“ aplinkai.

„Bash“ diegimas

Norėdami paleisti „Bash“ sistemoje „Windows“, jūsų sistema turi paleisti „x64 Windows 10 Anniversary Update Build 14393“ arba naujesnę versiją. Suraskite komponavimą įvesdami Winver komandų laukelyje.

Jei versijos versija yra mažesnė nei 14393, negalėsite įdiegti „Bash“.

Norėdami įgalinti „Bash“ palaikomoje versijoje, pirmiausia turėtumėte įjungti kūrėjo režimą. Norėdami tai padaryti, eikite į „Nustatymai“, spustelėkite „Kūrėjams“ ir pasirinkite radijo mygtuką „Kūrėjo režimas“. Kai tai bus padaryta, būsite paraginti patvirtinti.

Kai tai bus padaryta, turi būti įjungta „Windows“ posistemio, skirto „Linux“, funkcija. Lengviausias būdas tai padaryti per „PowerShell“ cmdlet:

Įgalinti-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Norėdami atidaryti „Bash“ sistemoje „Windows“, atidarykite komandų eilutę, įveskite bashir sutikite su licencijos sutartimi. Kai „Bash“ įdiegia, jis atlieka keletą jūsų sistemos pakeitimų:

  • Atsisiunčiamas „Ubuntu“ vartotojo režimo vaizdas.
  • Paslėptas aplankas, esantis % localappdata% \ lxss \ yra sukurtas.
  • Spartusis klavišas dedamas ant darbalaukio.

Norėdami paleisti „Bash“, dabar galite pereiti į komandų eilutę arba naudoti darbalaukio nuorodos piktogramą.

Sėkmingai įdiegus „Bash“, sistema paragins jus sukurti „Unix“ vartotojo vardą ir slaptažodį. Šis vartotojo vardas ir slaptažodis yra skirti „Bash“ ir niekaip nesusiję su „Windows“ aplinka.

Darbo pradžia su komandomis

Patekę į „Bash“, turite keletą galimų komandų, skirtų WSL ir „Ubuntu“ vaizdui tvarkyti.

  • lxrun: WSL egzemplioriaus valdymui
  • lxrun / install: Norėdami pradėti atsisiųsti ir įdiegti procedūrą
  • lxrun / pašalinti: Norėdami pašalinti „Ubuntu“ vaizdą
  • lxrun / atnaujinimas: Norėdami atnaujinti WSL paketo rodyklę
  • lxrun / setdefaultuser: Norėdami nustatyti numatytąjį „Bash“ „Ubuntu“ vartotojui

Be abejo, „Bash“ sistemoje „Windows“ taip pat leidžia paleisti daug „tradicinių“ „Bash“ komandų. Pavyzdžiui:

  • grep: Norėdami rasti linijas, atitinkančias modelį
  • sed: Norėdami pakeisti eilutę
  • aidas: Norėdami išvesti vertę į ekraną
  • var = 2: Norėdami sukurti kintamąjį $ var
  • =!=: Palyginti mažus teksto fragmentus

Naršymo komandos

Naršydami taip pat galite naudoti „Windows DOS“ komandą cd naršyti aplanko struktūrą.

  • cd temp: Pakeičia darbo katalogą į aplanką pavadinimu temp
  • CD \: Nukelia į šakninį katalogą. Kadangi „Ubuntu“ neturi tokių diskų raidžių kaip „Windows“, šakninis katalogas būtų aukščiausio lygio katalogas.
  • CD ..: Pakelia eilutę vienu lygiu aukštyn (ty į pagrindinį katalogą)
  • cd ~: Nukelia į namų katalogą

Tačiau cd „PowerShell“ yra šiek tiek kitoks nei „Bash“, esančiame „Ubuntu“. WSL aplinkoje jūsų "Windows" diskai yra saugomi / mnt aplanką, o disko pavadinimas naudojamas kaip antrinis aplankas. Kai naudosite cd komandą, turėtumėte atitinkamai pakeisti kelią.

Rodyti komandas

Norėdami patikrinti katalogo kelią ir turinį, pateikite keletą pavyzdžių:

  • pwd: Ekrane išspausdina kelią arba katalogą, kuriame esate
  • ls: Rodo failus kataloge

Pagalbos komandos

Jei norite suprasti kiekvienos komandos funkcionalumą ir su ja susijusius parametrus, vyras komanda gali būti naudojama.

Tipas vyras ir ji parodys, kam skirta komanda, ir susijusių parametrų santrauką. Tai panašu į „PowerShell“ pagalba komandą.

Redaguoti komandas

Vienas iš „Bash“ pranašumų yra tai, kad dirbate su paprastu tekstu. Tai reiškia, kad jums nereikia blaškytis su registro ar programos nustatymais. Nesvarbu, ar norite pakeisti įkrovos seką, ar žiniatinklio serverio konfigūraciją, tiesiog redaguokite atitinkamą tekstinį failą. Norint efektyviai atlikti redagavimo užduotis, reikia gero teksto redaktoriaus. „Bash“ siūlo galingus redaktorius, kad jūsų darbas būtų lengvas. Keletas gerų „Bash“ pasiekiamų teksto redaktorių pavyzdžių yra nano ir vi.

Paketų tvarkymas „Bash“

Kadangi iš esmės naudojate „Linux“, dabar taip pat turite paketų tvarkymo komandas, pasiekiamas kaip apt-get. Keletas pavyzdžių:

  • sudo apt-get atnaujinimas: Atnaujinamas saugyklų, iš kurių reikia ieškoti, sąrašas
  • sudo apt-get atnaujinimas: Atnaujina visą programinę įrangą į naujausią versiją
  • apt-cache ieškokite programos_pavadinimas: Ieško konkrečios programos saugykloje
  • sudo apt-get install apt-name: Atsisiunčia ir įdiegia konkrečią programą

sudo yra paruoštas visoms komandoms, kad galėtumėte paleisti komandą naudodamiesi kitu vartotoju, pagal nutylėjimą - super vartotojo (arba administratoriaus). Tai panašu į „Windows“ paleisti kaip administratorių.

Tinklo komandos

Norėdami atsisiųsti failus naudodami HTTP iš serverio ar URL, dabar galite naudoti garbanoti komandą. Ši komanda yra panaši į „PowerShell“ „Invoke-WebRequest“ cmdlet.

Panašiai galite prisijungti prie kito nuotolinio „Linux“ kompiuterio ir vykdyti jame komandas. Kadangi dabar esame „Linux“, pagaliau turime tikrą SSH klientą, su kuriuo galėtume dirbti. Užuot naudoję „Cygwin“ ar dabartinę „OpenSSH“ diegimo „Windows“ beta versiją, mes dabar galime paleisti SSH natūraliai per ssh komanda:

ssh vartotojo vardas @ abc.com

Nors kalbame apie „OpenSSH“ temą, mes taip pat turime galimybę saugiai kopijuoti failus per SCP naudodami integruotą scp komanda taip pat:

scp localfile vartotojo [email protected]: remotedirectory / remotefile

Naudodami „Bash“ sistemoje „Windows“, dabar turite daugybę kitų funkcijų:

  • Tokie įrankiai kaip „Git“, „Python“ ir „Ruby“ tiesiogiai „Windows“
  • Komandinės eilutės redaktoriai, pvz., „Emacs“ ir „vi“
  • Prieiga prie „Windows“ failų sistemos iš „Bash“ aplinkos
  • „Linux“ vartotojo palaikymas
  • „Symlink“ palaikymas
  • Sandėliavimo montavimas per / mnt

Kokie yra „Bash“ dažniausiai naudojami „Windows“ atvejai?

Šiuo metu daugelis kūrėjų naudoja „Windows“ ir „Linux“ įrankius, o tai reiškia, kad norint gauti CLI galimybes, jie turi atlikti dvigubą paleidimą arba paleisti „Linux“ virtualioje mašinoje. Kai jie gali paleisti šiuos įrankius sistemoje „Windows“, „Windows“ tampa pagrindiniu jų darbalaukiu. Tokiu atveju jiems nereikia perkelti „Linux“ programų ir paslaugų į „Windows“ sistemas. Nors kai kurie žmonės galėjo paleisti „Linux“ GUI programas „Windows“ sistemoje, daugelis žmonių gauna patogų „Linux“ CLI paprastoms užduotims atlikti, nepirkdami specialios „Linux“ mašinos iš „Azure“ arba paprastiems tikslams persikelti į „Mac“ įrenginį. Kadangi „Bash“ scenarijus kurti yra lengva, galite automatizuoti kūrimo užduotis, pvz., „Apache“ kurti atsargines svetainių atsargines kopijas.

Pavyzdžiui, daugelis kūrėjų naudoja „GitHub“ versijų valdymo užduotims atlikti. Norėdami pasiekti „GitHub“ sistemoje „Windows“, turite įdiegti „GitHub“, skirtą „Windows“, tada naudokite „Commit“ ir „push“ komandas, kad atliktumėte pakeitimus. Arba turite atsisiųsti „Git“ įrankį, kuris yra varginantis procesas. „Bash“ sistemoje „Windows“ jūsų darbas tampa paprastas:

apt-get install git

git įsipareigoti

git stumti

Be to, skyriuje „Bash“ jums nereikia jokių trečiųjų šalių įrankių, kad galėtumėte dirbti su tradiciniais „Linux“ failų tipais, pvz., „GZIPed tarballs“ (tar.gz failai).

Kokie yra „Bash“ naudojimo „Windows“ trūkumai?

„Bash“ sistemoje „Windows“ vis dar yra beta versija ir joje yra šiurkščių kraštų. „Microsoft“ teigia, kad „Bash“ sistemoje „Windows“ šiuo metu gali būti nevisiškai vykdomi visi jūsų scenarijai. Tačiau „Microsoft“ akylai stebi našumą ir atsiliepimus ir aktyviai keičia šį sprendimą.

Antra, „Bash“ sistemoje „Windows“ buvo sukurta kūrėjų bendruomenei. Jis nebuvo skirtas „Windows“ aplinkoms tvarkyti. Nors WSL galite atlikti tokius dalykus, kaip paleisti serverio demonus, tai nepateikia visų „Linux“ virtualios mašinos galimybių. Jei ketinate paleisti serverio procesus, naudodami „Ubuntu“ apkrovą, turėtumėte ieškoti kitų alternatyvų, kaip paleisti visą „Linux“ operacinę sistemą.

Galiausiai, „Bash on Windows“ suteikia „Linux“ galimybes „Windows“. Tačiau „Linux“ įrankiai negalės sąveikauti su „Windows“ įrankiais ir programomis. Tai reiškia, kad nėra platformų galimybių dėl būdingų jų architektūros skirtumų.

„Bash“ sistemoje „Windows“ vis dar yra kuriama stadija. Nors šiam sprendimui yra tam tikrų apribojimų, „Microsoft“ stengiasi pridėti daugiau galimybių, kad šie skirtumai būtų pašalinti ir „Windows“ taptų Nr. 1 platforma kiekvieno tipo kūrimo projektui. Stebėkite šį „Microsoft“ projektą. Dėl naujos „Microsoft“ pozicijos atvirojo kodo pasaulyje Bashas tikrai taps pirmos klasės piliečiu sistemoje „Windows“, laikui bėgant.

Susiję straipsniai

  • Esminis „PowerShell“, skirto „Windows“, „Windows Server“ ir „Exchange“, vadovas
  • 10 pagrindinių „PowerShell“ saugos scenarijų, skirtų „Windows“ administratoriams
  • Viskas apie „PowerShell“ tiekėjus ir modulius
  • „Go pro“: „PowerShell“ galios vartotojo vadovas
$config[zx-auto] not found$config[zx-overlay] not found