Kazalo:
Ukazna vrstica v sistemih Unix in Linux je že zelo zmogljiva, vendar so lupine še bolj zmogljivo orodje, kot jih sreča oko. Lahko jih prilagodite in preklopite na vsebino vašega srca, če veste, kako.
Kaj je lupina?
Skoraj vsak priročnik za Unix in Linux ima standardni diagram lupine, ki se ovije okoli operacijskega sistema, podobno nekakšni bomboni. Lupina res ni nič drugega kot vmesnik med operacijskim sistemom, vključno z jedrom, datotečnim sistemom in različnimi sistemskimi klici ter uporabnikom. Dolga leta je bil edini interaktivni uporabniški vmesnik, preden so grafični uporabniški vmesniki postali pogosti v osemdesetih letih. Grafični uporabniški vmesniki bi lahko veljali tudi za vrsto lupine, saj opravljajo številne iste funkcije: zagon programov, konfiguriranje sistema in upravljanje datotek.
Ti skromni besedilni vmesniki imajo presenetljivo veliko moči. Kot prvo, so popolni programski jeziki. Pred pojavom še tako močnih skriptnih jezikov, kot je Python, so bili skripti lupine idealni za pisanje programov, ki ne potrebujejo nujno moči C. Še vedno so uporabni za avtomatizacijo sistemskih nalog in za hitro izdelavo prototipov.
Imajo tudi številne funkcije, ki olajšajo delo in iskanje datotek. Eden od najbolj razširjenih je "wildcarding" ali "globlob". Skoraj vsi uporabniki Unixa in Linuxa so seznanjeni z "*" nadomestnim znakom, da se ujema s katerim koli znakom. To je pravzaprav delo lupine. Različne lupine imajo še močnejše možnosti.
Ena od značilnosti Unixa je zmožnost preusmeritve vnosa in izhoda programa. Lupina izvaja to funkcionalnost.
Lupina je le še en program, zato lahko vsak programer s pravimi znanji ustvari enega. Z leti se je pojavilo več glavnih školjk.
Zgodovina in pregled školjk
Čeprav je bilo v zgodnjih dneh operacijskega sistema več lupin Unixa, je bila prva, ki je dobila večje prepoznavnost zunaj Bell Labs, Bourne Shell, imenovan po Stephen R. Bourneu. Glavna novost lupine je bila, da podpira funkcije za strukturirano programiranje, kar omogoča, da je lupina prvič uporabljena kot pravi programski jezik. Tako nepogrešljiv je, da ga še vedno uporabljajo vse moderne različice Unixa in Linuxa, čeprav je ponavadi ena izmed novejših lupin, ki posnemajo lupino Bourna.
Naslednja večja lupina je bila C Shell, običajno skrajšano kot "csh." Ta lupina je bila razvita v UC Berkeley in je postala pomemben sestavni del BSD okusa Unix. Kot že ime pove, je njegova sintaksa zasnovana tako, da spominja na programski jezik C, vendar je bila resnično zasnovana za interaktivno uporabo.
Vključeval je mehanizem zgodovine, ki je uporabnikom omogočil, da se vrnejo nazaj in ponovijo vse ukaze, ki so jih izdali prej, ne da bi morali ponovno vnesti celotno vrstico in izboljšati nadzor nad opravili, kar je olajšalo izvajanje več nalog. (Ne pozabite, to je bil čas, ko je večina ljudi še vedno uporabljala besedilne terminale.)
Naslednja večja lupina je bila Kornova školjka, ki je prav tako izšla iz Bell Labs. Školjka je bila mimogrede poimenovana po Davidu Kornu in ne skupina. Glavna novost Korn lupine je uvedba urejanja ukazne vrstice, ki zgodovino še poveča. Uporabniki se lahko vrnejo nazaj in uredijo ukaze, ki so jih vtipkali z uporabo ukazov, podobnih urejevalnikom vi ali Emacs.
Med večjimi školjkami je najbolj priljubljena Bourne Again školjka, ali bash, od uvedbe v poznih 80. letih. Ta lupina, razvita v okviru projekta GNU, vključuje inovacije lupin C in Korn, hkrati pa ohranja združljivost z lupino Bourne, od tod tudi ime. To je "standardna" lupina v večini distribucij Linuxa.
Z Shell (zsh), ki je bil prvič izdan leta 1990, so sanje uporabnika ukazne vrstice. Poleg tega, da ima večino drugih glavnih lastnosti, ki jih imajo druge lupine, je nerazumljivo prilagodljiv z veliko močnimi funkcijami. Eno najmočnejših je rekurzivno globlobranje, ki uporabnikom omogoča, da se pri izdajanju ukazov ujemajo z imeni v poddirektorjih in ne z datotekami v trenutnem delovnem imeniku. Resnično napredni uporabniki lahko prilagodijo tudi možnosti dokončanja in ujemajo datoteke, ne da bi jih morali vnesti v celoti. In za maščobne piskarje lahko popravi tudi črkovanje. Ta lupina je tako napredna, njena ročna stran je razdeljena na več zelo dolgih odsekov.
Scenarij
Kot smo že omenili, lupine niso samo vmesniki ukazne vrstice, temveč močni programski jeziki. Lepota zapisovanja lupin je v tem, da lahko uporabljate isti jezik tako v redni interaktivni uporabi kot tudi v skriptah, zaradi česar je krivulja učenja veliko bolj laskava. Sodobne lupine vključujejo vse običajne funkcije programskega jezika, vključno z nadzorom pretoka, funkcijami in spremenljivkami. Nekateri od njih imajo celo napredne strukture podatkov, kot so asociativni nizi.
Kljub njihovi moči ima programiranje v lupinah nekaj pasti. Največja težava je, da je preveč enostavno napisati skripte, ki so odvisne od programa, ki morda ni v drugem sistemu ali pa je to odvisno od določenega okusa Unixa ali Linuxa. Zato so skripte lupine najbolj primerne za programe, za katere veste, da se bodo izvajali le v enem sistemu. Če poskušate sestaviti nekaj prenosnega in ne želite pisati programa C, je najboljša izbira, da pišete v drugem skriptnem jeziku, kot sta Perl ali Python.
Pokuk pod pokrovom ukazne vrstice Unix / Linux
Pod površino vaše ukazne vrstice Unix / Linux je več energije. Ta članek vas morda navdihne in pokukate pod pokrov svoje najljubše lupine, da vidite, kaj lahko v resnici naredite. Če se želite vključiti v zapisovanje lupin, boste morda želeli preveriti knjige Unix Power Tools in Learning the Bash Shell. Izvirni papir Stephena R. Bourna na njegovi lupini služi tudi kot dober uvod v svet pisanja lupin, čeprav je star.