10Aug

"Geek" mokykla: mokymasis naudoti "PowerShell" komutatorius

Jei naudodami komandų eilutę naudojate ipconfig arba ping, jūs esate pusiaukelėje, kad taptumėte "PowerShell ninja".Taigi įeikite ir prisijunkite prie mūsų, kai atrinksime "Geek School" diegimo cmdlet.

Būtinai perskaitykite mūsų pirmąjį straipsnį, kuriame pristatoma "PowerShell", ir visą savaitę palaikykite ryšį su likusia mūsų serija.

Cmdlet

anatomija Pirmojoje serijos dalyje matėme cmdlet, kuris atrodė panašiai:

atnaujinimo Pagalba

"PowerShell" cmdlet turi verbos-vardo sintaksę, kurią galima pamatyti aukščiau. Svarbu pažymėti, kad daiktavardis visada yra vienaskaitos, nors cmdlet gali grąžinti daugiau nei vieną rezultatą.Norėdami peržiūrėti PowerShell teisinių veiksmažodžių sąrašą, galite naudoti "Get-Verb" cmdlet.

Teisinių veiksmažodžių suvokimas ir vienos taisyklės vardų priminimas tikrai padeda atsikratyti cmdletų pavadinimų.Pavyzdžiui, tarkime, kad norite gauti paslaugų sąrašą ir jų būseną - tai tiesa, tai taip pat lengva, kaip Get-Service. Kaip manote, kad gaus procesų sąrašą - tai tiesa, "Get-Process" atliks triuką.

Get-Process

Dėl to labai lengva dirbti su bet kokia technologija. Pavyzdžiui, jei turite įkeltą "Exchange" cmdlet, galėtume lengvai gauti serveryje esančių pašto dėžučių sąrašą naudodami:

Get-Mailbox

Tačiau yra išimtis. Keisdami nuorodą, visos kitos konkrečios technologijos komandos turi turėti prefiksą.Pavyzdžiui, jei norime gauti vartotojus, kurie šiuo metu yra prisijungę per nuotolinį darbalaukį, mes turėtume įvesti:

Get-RDUserSession

, kurį galima pamatyti paveikslėlyje žemiau.

Pastaba: šis ekrano kopija buvo įtraukta į "Server 2012" langelį, nes čia rasite daugumą konkrečių technologijų modulių.

Aš seniai perskaičiau straipsnį "PowerShell" krikštatėvisas Don Jonesas, kuriame jis paaiškino, kad "Exchange" buvo išsiųstas prieš tai, kai šis prefiksas buvo pridėtas prie cmdlet, taigi jis niekada jų neįgyvendino ir niekada nebus.

slapyvardžiai

Dar viena funkcija "PowerShell" - tai galimybė turėti kelis būdus, kaip paleisti tą pačią komandą - slapyvardžius, jei norite. Nuostabus dalykas yra tai, kad jie įtraukti daug komandų, kurias galėjote naudoti komandinėje eilutėje, taip pat kai kurias "Linux" aliases. Pavyzdžiui, "PowerShell" galime gauti katalogų sąrašą naudodami:

Get-ChildItem

Naudojamas komandų eilutės naudojimui? Nesijaudinkite, jie jums padengti.

Turite Linux foną?Jie taip pat padengė ten.

Kai scenarijus buvo keletą metų, jūs linkęs gauti tingą ir pradėti naudoti daugybę slapyvardžių, tačiau tai nepadeda naujokams, kurie ketina perskaityti mūsų kodą.Norėdami pamatyti, kokia komanda turi slapyvardį po gaubtu, galite naudoti šią funkciją:

Get-Alias-Name ls

Kita vertus, jei manote, kad laikas pradėti žaidimą, naudokite apibrėžimo parametrą, kad gautumėtevisi pavadinimai, skirti cmdlet:

Get-ChildItem -Definition Get-ChildItem

Jei jūs kilęs iš kito fono, galite pridėti savo slapyvardžius atlikdami šiuos veiksmus:

New-Alias ​​-Name icanhazfilez -Value Get-ChildItem

Akivaizdu,turėsite pakeisti "icanhazfilez" su savo naujo slapyvardžio pavadinimu ir Get-ChildItem su cmdlet, kurią norite paleisti po gaubtu.

Vienas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad jūs prarasite visas slapyvardžius, kuriuos apibrėžėte uždarę apvalkalą.Galite išspręsti šią problemą pridėdami savo apibrėžimą į savo profilio scenarijų.

Sutrumpinimo parametrai

"Windows PowerShell" taip pat leidžia sutrumpinti parametrų pavadinimus iki taško, kuriame jie tampa dviprasmiški, ty iki taško, kuriame "PowerShell" daugiau nebegalima suprasti, apie kurį parametrą jūs kalbate. Pavyzdžiui:

Get-Service -Pavadinimas "Apple Mobile Device" -ComputerName localhost

Tas pats:

Get-Service -Na "Apple Mobile Device" -Com localhost

Jei bet kokiu atveju parametrų pavadinimai yra per daug dviprasmiškigaus klaidą

palikimo komandos

Galiausiai komandos, kurias pažįstate ir mylėsite, vis tiek dirbs "PowerShell".

ping www.google.com

Tiesiog nepamirškite, kad senosios programinės įrangos, pvz., "Ping", išveda eilutę, ir dažnai yra geresnis būdas tai padaryti naudojant "PowerShell" cmdlet.

Vietoj to, kad išvedė ilgą teksto eilutę, mes dabar paliekami objekto, kurį mes pažvelgsime į rytoj Geeko mokyklos leidimą.