Sisällysluettelo:
Komentorivi Unix- ja Linux-järjestelmissä on jo erittäin tehokas, mutta kuoret ovat vielä tehokkaampi työkalu kuin silmälle. Voit mukauttaa niitä ja muuttaa ne sydämesi sisältöön, kunhan tiedät miten.
Mikä on kuori?
Lähes jokaisessa Unix- ja Linux-käyttöoppaassa on vakiokaavio kuoresta, joka käärii käyttöjärjestelmän ympärille ja muistuttaa jonkinlaista karkkia. Kuori ei todellakaan ole muuta kuin käyttöliittymän, mukaan lukien ydin, tiedostojärjestelmä ja eri järjestelmäsoitot, ja käyttäjän välinen rajapinta. Se oli monien vuosien ajan ainoa vuorovaikutteinen käyttöliittymä, ennen kuin graafiset käyttöliittymät yleistyivät 1980-luvulla. Graafisia käyttöliittymiä voidaan pitää myös kuorityyppinä, koska ne palvelevat samoja toimintoja: ohjelmien käynnistäminen, järjestelmän määrittäminen ja tiedostojen hallinta.
Näillä nöyrillä tekstipohjaisilla käyttöliittymillä on yllättävän suuri voima. Ensinnäkin, he ovat täysin vakiintuneita ohjelmointikieliä. Ennen kuin vieläkin tehokkaampia komentosarjojen kieliä, kuten Python, ilmestyi, komentosarjat olivat ihanteellisia ohjelmien kirjoittamiseen, jotka eivät välttämättä tarvitse C: n voimaa. Ne ovat silti hyödyllisiä järjestelmätehtävien automatisoinnissa ja nopeassa prototyyppien muodostamisessa.
Niillä on myös useita ominaisuuksia, jotka helpottavat tiedostojen käsittelyä ja löytämistä. Yksi yleisimmin käytetyistä on "jokerimerkinnät" tai "maapallot". Lähes kaikki Unix- ja Linux-käyttäjät tuntevat "*" jokerimerkin sopimaan mihin tahansa merkkiin. Tämä on itse asiassa kuoren työ. Eri kuorilla on vielä tehokkaammat vaihtoehdot.
Yksi Unixin erityispiirteistä on kyky ohjata ohjelman syöttö ja lähtö. Kuori toteuttaa tämän toiminnon.
Kuori on vain uusi ohjelma, joten kuka tahansa ohjelmoija, jolla on oikeat taidot, voi luoda sen. Vuosien varrella on syntynyt useita merkittäviä kuoria.
Historia ja kuorien roundup
Vaikka käyttöjärjestelmän varhaisina päivinä oli useita Unix-kuoria, ensimmäinen niistä, jotka saivat huomattavaa tunnustusta Bell Labsin ulkopuolella, oli Stephen R. Bourne -niminen Bourne Shell. Kuoren tärkein innovaatio oli se, että se tuki jäsennellyn ohjelmoinnin ominaisuuksia, mikä mahdollisti ensimmäistä kertaa kuoren käytön oikeana ohjelmointikielenä. Se on niin välttämätöntä, että kaikki nykyaikaiset Unix- ja Linux-versiot käyttävät sitä edelleen, vaikka se on yleensä yksi uudemmista kuorista, jotka jäljittelevät Bourne-kuorta.
Seuraava suuri kuori oli C-kuori, yleisesti lyhennettynä "csh". Tämä kuori kehitettiin UC Berkeleyssä, ja siitä tuli tärkeä osa Unixin BSD-makua. Kuten nimestä voi päätellä, sen syntaksi on suunniteltu muistuttamaan C-ohjelmointikieltä, mutta se on todella suunniteltu interaktiiviseen käyttöön.
Se sisälsi historiamekanismin, jonka avulla käyttäjät voivat palata takaisin ja toistaa kaikki aiemmin antamat komennot joutumatta kirjoittamaan kokonaista riviä uudelleen ja paransi työn hallintaa, mikä helpotti useiden tehtävien suorittamista. (Muista, tämä oli aika, jolloin useimmat ihmiset käyttivät edelleen tekstipohjaisia päätteitä.)
Seuraava suuri kuori oli Korn-kuori, joka tuli myös Bell Labsista. Kuori nimettiin muuten David Kornin, ei bändin mukaan. Korn-kuoren tärkein innovaatio on komentorivien muokkauksen käyttöönotto, laajentamalla historiatoimintoja entisestään. Käyttäjät voivat palata ja muokata kirjoittamasi komentoja käyttämällä komentoja, jotka ovat samanlaisia kuin vi- tai Emacs-muokkaimet.
Suurimmista kuorista Bourne Again Shell, tai bash, on suosituin sen käyttöönoton jälkeen 80-luvun lopulla. Tämä kuori, joka on kehitetty osana GNU-hanketta, sisältää C- ja Korn-kuorien innovaatiot säilyttäen samalla yhteensopivuuden Bourne-kuoren kanssa, tästä myös nimi. Se on "tavallinen" kuori useimmissa Linux-jakeluissa.
Z-kuori (zsh), joka julkaistiin ensimmäisen kerran vuonna 1990, on komentorivikäyttäjän unelma. Sen lisäksi, että siinä on suurin osa muista kuorista tulevista tärkeimmistä ominaisuuksista, se on mielenkiintoisesti muokattavissa paljon tehokkaita ominaisuuksia. Yksi tehokkaimmista on rekursiivinen globaalistus, jonka avulla käyttäjät voivat sovittaa alihakemistojen tiedostonimet, kun he antavat komentoja, eikä nykyisen työhakemiston tiedostoja. Todella edistyneet käyttäjät voivat myös mukauttaa valmistusasetuksia, sovittamalla tiedostoja tarvitsematta kirjoittaa niitä kokonaan. Ja rasvasormisten koneiden kirjoittajille se voi myös korjata oikeinkirjoituksen. Tämä kuori on niin pitkälle edennyt, sen manuaalinen sivu on jaettu useisiin erittäin pitkiin osiin.
Scripting
Kuten aiemmin mainittiin, kuoret eivät ole vain komentoriviliittymiä, vaan tehokkaita ohjelmointikieliä. Shell-komentosarjojen kauneus on, että voit käyttää samaa kieltä sekä säännöllisessä vuorovaikutteisessa käytössä että komentosarjoissa, mikä tekee oppimiskäyrästä paljon tasaisemman. Nykyaikaiset kuoret sisältävät kaikki tavanomaiset ohjelmointikielen ominaisuudet, mukaan lukien virtauksen hallinta, toiminnot ja muuttujat. Joillakin heistä on jopa edistyneitä tietorakenteita, kuten assosiatiiviset taulukot.
Voimasta huolimatta kuorien ohjelmoinnissa on joitain sudenkuoppia. Suurin ongelma on, että on liian helppoa kirjoittaa skriptejä, jotka riippuvat jostakin ohjelmasta, joka ei ehkä ole toisessa järjestelmässä, tai riippuu tietystä Unixin tai Linuxin mausta. Siksi shell-skriptit sopivat parhaiten ohjelmiin, joiden tiedät toimivan vain yhdessä järjestelmässä. Jos yrität rakentaa jotain kannettavaa, etkä halua kirjoittaa C-ohjelmaa, sinun kannattaa kirjoittaa toisella skriptikielellä, kuten Perl tai Python.
Pee Unix / Linux-komentorivin kotelon alla
Unix / Linux-komentorivin pinnan alla on enemmän virtaa. Tämä artikkeli saattaa inspiroida sinua kurkistamaan suosikkisuojasi kotelon alla nähdäksesi, mitä voit todella tehdä. Jos haluat päästä shell-komentosarjoihin, kannattaa tutustua kirjoihin Unix Power Tools ja Learning the Bash Shell. Stephen R. Bournen alkuperäinen paperi kuorellaan toimii myös hyvänä johdanna komentosarjojen maailmaan, vaikka se olisi vanha.