Programavimas

10 „Unix“ komandų, kurias turėtų žinoti kiekvienas „Mac“ ir „Linux“ vartotojas

GUI yra puikūs - mes nenorėtume gyventi be jų. Bet jei esate „Mac“ ar „Linux“ vartotojas ir norite maksimaliai išnaudoti savo operacinę sistemą (ir klavišų paspaudimus), esate skolingi sau, kad susipažintumėte su „Unix“ komandine eilute. Spustelėkite ir spustelėkite, kai reikia ką nors padaryti vieną ar du kartus. Bet jei jums reikia pakartoti tą užduotį daug kartų, komandinė eilutė yra jūsų gelbėtojas.

Komandinė eilutė yra langas į visą, nuostabų kompiuterio galią. Jei trokštate atsikratyti GUI apribojimų ar manote, kad jūsų ateitis yra programuoti ar administruoti nuotolines mašinas, tada „Unix“ komandinės eilutės mokymasis tikrai jums tinka.

Nesijaudinkite, jei „Unix“ komandos atrodo kaip stebuklingi užkalbėjimai arba paslaptingi sistemos vidiniai elementai atrodo už jūsų ribų. Jų išmokti nėra taip sunku, o šiame straipsnyje gausite 10 pagrindinių komandų, kurių jums reikia norint pradėti. Neilgai trukus tos paslaptingos stygos bus antroji prigimtis.

Apvalkalo pagrindai

„Unix“ komandinės eilutės apvalkalas maždaug atitinka „Microsoft Windows“ komandų langą (cmd arba „PowerShell“). Komandos, kuriomis mes einame toliau, veiks bet kurioje „Unix“ tipo sistemoje, įskaitant „Linux“, „Darwin“ („MacOS“ pagrindas), „FreeBSD“ ir net „Windows“ su kažkuo panašiu į „Git Bash“ ar naują „Bash“ apvalkalą sistemoje „Windows 10“. Parinktys ir išvestis skiriasi šiek tiek, bet neturėtumėte vargo juos įprasminti.

Pirmiausia turite atidaryti apvalkalą, kartais vadinamą terminalo langu. Dažnai „Unix“ platintojai tai priskiria Administravimo arba Sistemos meniu. „MacOS“ rasite terminalą skiltyje „Programos“> „Utilities“> „Terminal“. Kai paleisite, pamatysite maždaug taip:

Šis „MacOS 10.11“ ekranas yra būdingas daugumai GUI kriauklių. Lango viršuje matome apvalkalo tipą, šiuo atveju „Bash“ („Bourne Again Shell“, kuris yra numatytasis „MacOS“ ir daugumos „Linux“ paskirstymų apvalkalas), ir lango dydį. Lango viduje yra raginimas, šiuo atveju sukonfigūruotas rodyti mašinos pavadinimą (Merkurijus), dabartinio darbo katalogo pavadinimas (čia tildė, ~, kuris yra vartotojo namų katalogo sutrumpinimas), vartotojo vardas ir galiausiai raginimo simbolis ( $). Atminkite, kad jūsų raginimas pasikeis, kai judėsite failų sistemoje arba tapsite kitu savo kompiuterio vartotoju (pvz., Šakniniu arba super vartotojo, norėdami paleisti administravimo komandas). Paraginime pateikiama ši informacija, todėl bet kurioje mašinoje galite lengvai pasakyti, kur ir kas esate.

Verta žinoti, kad yra du pagrindiniai „Unix“ apvalkalo skoniai: „Bourne“ ir „C“ apvalkalas. Bourne'as ir kompanija buvo gauti iš originalaus „AT&T Unix“, o „C“ apvalkalas kilęs iš Kalifornijos universiteto Berkeley ir BSD Unix. Paprastai Bourne'o ir C apvalkalo dariniai yra naudingi interaktyviam darbui terminale. „POSIX“ standartinis apvalkalas, „Korn“ apvalkalas, yra tas, kurį norite naudoti savo programoms rašyti į apvalkalą, vadinamus scenarijais. Šios pamokos pavyzdžiams naudojame „Bash“ apvalkalą.

Korpuso aplinka

Vienas iš pirmųjų faktų, kurį reikia suprasti dirbant „Unix“ komandinėje eilutėje, yra tai, kad apvalkalas veikia savo aplinkoje. Suprasti, kaip valdyti apvalkalo aplinką, yra svarbi efektyvumo komandinėje eilutėje dalis. Pažvelkime į aplinką naudodami env komanda:

Nesijaudinkite dabar suprasdami visus aplinkos kintamuosius, bet žinokite, kad jie yra. Jau turėtumėte atpažinti keletą kintamųjų. Pavyzdžiui, SHELL = / bin / bash sako mums, kad naudojame „Bash“ apvalkalą. NAMAI = / Vartotojai / nunez nurodo vartotojo namų katalogo vietą. Galite keisti ar kurti aplinkos kintamuosius, ir tai dažnai darysite. Čia pateikiamas aplinkos kintamojo, vadinamo, nustatymo pavyzdys FOO ir rodoma jo vertė:

Kaip matote, pagal susitarimą kintamuosius dedame didžiosiomis raidėmis. Ypatingai atkreipkite dėmesį į tai, kaip mes remiamės aplinkos kintamaisiais, kai juos naudojame komandose, su ankstesniais $. $ liepia komandų vertėjui naudoti kintamojo reikšmę. Be $, aidas aukščiau pateikta komanda paprasčiausiai atspausdins kintamojo pavadinimą, FOO.

„Unix“ komandos

Nepriklausomai nuo to, kurį apvalkalą naudojate, kai įvesite komandą į apvalkalą, sukursite „Unix“ programos vykdymą. „Unix“ dizaino filosofija yra sukurti programas, kurios gerai atlieka vieną dalyką, ir grandinėmis (arba „vamzdeliais“) jas kartu atlikti naudingą darbą. Pažvelkime į paprastą pavyzdį suskaičiuoti failų skaičių kataloge / etc (vėliau pamatysime, kaip pereiti į / etc katalogą):

Ši komandų seka iliustruoja dvi svarbias sąvokas: vamzdynas ir parinktys. ls komanda (atitinka rež komandą sistemoje „Windows“) rodo katalogo turinį ir wc (žodžių skaičius) žodžių skaičius. Atkreipkite dėmesį į vertikalią juostą tarp jų? Tai yra vamzdžio personažas. Vamzdis paima pirmosios komandos išvestį ir nukreipia ją kaip įvestį į antrąją komandą. „Unix“ sistemoje galite susieti bet kokį komandų skaičių, sujungdami vamzdžius viena su kita.

Antras dalykas, kurį reikia pastebėti, yra kiekvienai komandai suteiktos parinktys. „Unix“ sistemoje parinktys tradiciškai pridedamos su vienu brūkšniu, -. Šios komandinės eilutės parinktys pakeičia komandos elgesį. Šiame pavyzdyje -l galimybė ls reiškia katalogo turinį išleisti „ilgu“ formatu, o –L galimybė wc reiškia skaičiuoti „eiles“ vietoj žodžių. Anglų kalba ši komanda gali būti perskaityta:

Išvardinkite eilučių skaičių dabartiniame kataloge ir nusiųskite juos į žodžių skaičiavimo programą, kad suskaičiuotumėte eilučių skaičių.

Dažnai šios komandinės eilutės parinktys pakeičia numatytuosius nustatymus, nustatytus aplinkoje. Jei norite pakeisti komandos elgseną nuolat, galite automatiškai nustatyti aplinkos kintamąjį prisijungdami. Daugelis komandų leidžia sujungti parinktis vienoje eilutėje, pavyzdžiui, ls -la—Bet kiti to nedaro. Apie visas komandos parinktis galite sužinoti patikrinę jos vadovą arba „man puslapius“ (kuriuos aptarsime toliau).

Mokymasis ir naudojimasis komandinės eilutės parinktimis yra didelė efektyvumo Unix komandinėje eilutėje dalis. Kai kuriose komandose yra tiek daug galimybių, kad dokumentacija eina į dešimtis puslapių. Neleiskite, kad tai dabar jus jaudintų. Norint atlikti nurodytą užduotį, jums dažnai reikia tik kelių parinkčių, o daugelis parinkčių naudojamos tik rašant programas apvalkalo kalba.

Vadovas

Supratę komandinės eilutės ir aplinkos pagrindus, galime pradėti gilintis į sistemą. Pirmiausia reikia pradėti su vadovu.

Vienas iš gražių „Unix“ aspektų yra aukšta dokumentų kokybė. Yra dokumentacija vartotojams, sistemos administratoriams ir programinės įrangos kūrėjams. Dokumentus galite pasiekti naudodami vyras komandą. Pradėkime nuo vadovo skaitymo (įveskite vyras vyras komandinėje eilutėje):

Instrukcijos yra suskirstytos į aštuonis skyrius, kurie šiek tiek skiriasi priklausomai nuo to, ar naudojate BSD / Linux / Mac, ar „System V“ tipo „Unix“. Pradėti naudinga perskaičius kiekvieno skyriaus įvadą, ir tai galite padaryti užkalbėdami vyras -s 1 intro, tai reiškia, kad ieškodami 1 skirsnio rasite rankinį puslapį, vadinamą „intro“:

Jei nesate tikri, kokios komandos ieškote, galite išbandyti -f ir -k galimybės. žmogus –f komandą pasakys komandos funkciją, jei žinote jos pavadinimą vyras –k užuomina surašys atitinkamų komandų pavadinimus pagal vieną ar daugiau raktinių žodžių. Abi parinktys ieškos įmontuotoje duomenų bazėje (jei ji sukonfigūruota; paprastai turi) ir grąžins visas atitiktis. Pavyzdžiui, žmogus –k bzer bus rodomi vadovo puslapiai, prasidedantys eilute bz:

Failų sistema

Yra daug komandų, susijusių su „Unix“ failų sistema, nes ji yra pagrindinė operacinės sistemos dalis. Vieną jų matėme anksčiau: ls, kuriame pateikiami failai kataloge:

ls komanda gali būti dažniausiai naudojama komanda, ir ji turi daug galimybių koreguoti išvestį. Vienas variantas, apie kurį norėsite sužinoti iškart ls -a (išvardyti visus). Tai atskleis „taškinius“ failus (failus ar katalogus, kurių pavadinimai prasideda tašku arba tašku), kurie pagal numatytuosius nustatymus yra paslėpti. Šiuose failuose ar kataloguose paprastai yra „Unix“ sistemos konfigūracijos informacija arba žurnalo failai. Pvz., Failas .bash_history registruoja visas komandas, kurias įvedate komandų eilutėje.

Kita komanda, kurios jums prireiks iš karto, yra cd komandą, kurią naudojate katalogams pakeisti. Tai panašu į tą pačią komandą sistemoje „Windows“, tačiau su svarbiu skirtumu. „Unix“ sistemoje visi diskai (įrenginiai) rodomi kaip vienas diskas. Kadangi sistemoje „Windows“ nuotraukas galite turėti išoriniame standžiajame diske, kuris rodomas kaip E:, „Unix“ sistemoje tas diskas gali būti / home / user / pictures. Visi „Unix“ sistemos failai pasiekiami keliu, prasidedančiu ženklu / (šakninis katalogas), o skirtinguose failų sistemos taškuose galite prijungti skirtingus standžiuosius diskus pagal savo poreikius.

Prieš pradėdami klaidžioti po failų sistemą, leiskite įvesti kitą komandą, kurios jums reikės: pwd (spausdinti darbo katalogą). Kadangi augančioje failų sistemoje yra daugybė vietų, kurias galima pamesti, šios komandos leidžia greitai nustatyti, kur esate. Pakeiskime katalogus į vietą, kurioje laikomi sistemos konfigūracijos failai, ir patikrinkime mūsų vietą:

Atminkite, kad galite naudoti cd komanda be jokių argumentų greitai grįžti į savo namų katalogą. Kitas patarimas: ~ gali būti naudojamas kaip spartusis klavišas, nurodantis jūsų namų katalogą „Bash“ ir „C“ apvalkale.

Šiuo metu jūs žinote, kaip judėti failų sistemoje ir išvardyti katalogų turinį. Dabar mums reikia būdo nuskaityti juose saugomus failus. Šiais laikais dauguma sistemų yra su mažiau komandą tam. mažiau rodys failą po puslapį ir leis jums naršyti naudojant Vi komandas (paspauskite j judėti žemyn, k judėti aukštyn, h gauti pagalbos ir q norėdami išeiti iš failo).

Pažiūrėkime, kas yra mūsų / etc / passwd faile, įvesdami mažiau / etc / passwd:

„Passwd“ faile pateikiami „Unix“ sistemos vartotojų abonementai, jų vartotojo ir grupės ID numeriai, namų katalogas ir kelias į atitinkamą komandą ar apvalkalą. Tačiau „MacOS“ sistemoje „passwd“ rasite tik sistemos paslaugų paskyras. Taip yra todėl, kad vartotojai žmonės yra sukonfigūruoti „MacOS“ sistemos nuostatų skiltyje „Vartotojai ir grupės“.

Disko talpa

Vietos diske trūkumas yra laipsniškas procesas, kuris gali užtrukti metus, bet vis tiek gali jus užklupti. Yra dvi komandos, kurias galite naudoti norėdami patikrinti laisvą vietą ir nustatyti, kurie failai užstoja jūsų diską: du (disko naudojimas) ir df (be disko). Jie abu imasi a -h variantas (skaitomas žmonėms). Norėdami sužinoti, ar jūsų diskas yra pilnas, naudokite df komanda:

Kol kas sutelkite dėmesį į %aš naudojau ir pritvirtintas stulpeliai. Tai rodo, kad mano namų katalogas yra 92 proc. Užpildytas, todėl turėčiau jį išvalyti. Bet kaip sužinoti, kur naudojama visa erdvė? Štai ką du skirtas:

Šiame pavyzdyje aš nuėjau su užkeikimu, kuris apriboja išvestį iki pirmųjų 10 eilučių. Kitaip du surašys kiekvieną mašinos katalogą, kurio lengvai gali būti per daug suprasti. Šiame sąraše galite pamatyti, kiek vietos sunaudoja kiekvienas katalogas. Taip pat galite pamatyti, kaip susiedami kelias komandas, mes lengvai sudarytume scenarijų, kuriame būtų išvardyti 10 geriausių katalogų pagal vietos naudojimą. Komanda, kurią mums reikia rūšiuoti išvestį, be abejo, yra rūšiuoti komandą.

Nes „MacOS“ versija rūšiuoti negali susitvarkyti duŽmogaus skaitomą išvestį aš naudojau -m parinktis du rodyti disko naudojimą megabaitais (naudokite -g arba -k galimybė rodyti gigabaitais arba kilobaitais). -n ir -r parinktys rūšiuoti rūšiuokite išvestį skaitmenine ir atvirkštine tvarka, todėl sąrašo viršuje pasirodys didžiausi katalogai.

Supernaudotojai, su ir sudo

Nemažai komandų yra susijusios su sistemos administravimu. Pabandykite rašyti vyras -s 8 įvadas įvadui į juos. Aš jums duosiu vieną esminę komandos administravimo komandą: su. Tai reiškia „super vartotojas“ ir nurodo administratoriaus vartotoją arba šakninę paskyrą. Visi sistemai priklausantys failai priklauso šiam vartotojui, todėl turėsite tapti šiuo vartotoju, kad atliktumėte administravimą.

Susijusi komanda, sudo, leidžia jums tapti vienos komandos super vartotoju. Kodėl verta naudoti sudo vietoj su? Nes geriausia praktika nurodo, kad nebėgsi kaip pagrindinis vartotojas, turėdamas galią padaryti atsitiktinai nepataisomą žalą. Jūs visada norėsite padaryti viską, ką galite, kaip įprastas vartotojas, ir tapti super vartotoju tik tada, kai jums to reikia. Tiksliai, kaip gausite super vartotojo teises, priklausys nuo jūsų „Unix“ platinimo. Pažiūrėkime, kaip su veikia „MacOS“:

Huh? Esu tikras, kad teisingai įvedžiau slaptažodį. Čia nutiko tai, kad dabartinis mano vartotojas nunez, neturi leidimo su. Kai kuriuose „Unix“ įrenginiuose tai reiškia, kad vartotojas turi būti ratas grupėje ir kitose sistemose (įskaitant „MacOS“) vartotojas turi būti sudoers failą.

Pabaigkime pridėdami nunez į sudoers, kuris suteiks jums skonį redaguoti failus komandinėje eilutėje. Energijos vartotojai giria „Emacs“ ir „Vi“ redaktorių pagyrimus, o aš raginu juos išbandyti, tačiau čia naudosime „Nano“. „Nano“ lengva išmokti ir naudoti, o „MacOS“ ir daugybė „Linux“ distros įrenginių jau yra įdiegti.