Kotisivu » miten » Aloittelijan opas Shell Scripting The Basicsille

    Aloittelijan opas Shell Scripting The Basicsille

    Termi "shell scripting" mainitaan usein Linux-foorumeilla, mutta monet käyttäjät eivät tunne sitä. Tämän helppokäyttöisen ja tehokkaan ohjelmointimenetelmän oppiminen auttaa säästämään aikaa, oppimaan komentorivin paremmin ja poistamaan tylsiä tiedostojenhallintatehtäviä.

    Mikä on Shell-komentosarjat?

    Linux-käyttäjä on pelaaminen komentorivillä. Tykkää tai ei, on vain muutamia asioita, jotka tehdään paljon helpommin tämän käyttöliittymän kautta kuin osoittamalla ja napsauttamalla. Mitä enemmän käytät ja opit komentorivin, sitä enemmän näet sen mahdollisuuksia. No, komentorivi itsessään on ohjelma: kuori. Useimmat Linux-käyttöliittymät käyttävät nykyään Bashia, ja juuri näin syötät komentoja.

    Jotkut teistä, jotka käyttivät Windowsia ennen Linuxin käyttämistä, voivat muistaa erätiedostoja. Nämä olivat pieniä tekstitiedostoja, joita voit täyttää komennoilla, joita suoritettiin, ja Windows ajaa ne vuorollaan. Se oli älykäs ja siisti tapa saada joitakin asioita, kuten pelata pelejä lukio-koneesi laboratoriossa, kun et pysty avaamaan järjestelmän kansioita tai luomaan pikakuvakkeita. Erätiedostot Windowsissa ovat hyödyllisiä, mutta ne ovat halpoja kuorien skriptejä.

    Shell-skriptit antavat meille mahdollisuuden ohjelmoida komentoja ketjuissa ja saada järjestelmä suorittamaan ne komentosarjatapahtumana, kuten erätiedostot. Ne mahdollistavat myös paljon enemmän hyödyllisiä toimintoja, kuten komennon korvaamisen. Voit kutsua komennon, kuten päivämäärän, ja käyttää sen tulostusta osana tiedostonimitysjärjestelmää. Voit automatisoida varmuuskopiot ja jokaisella kopioidulla tiedostolla voi olla nykyinen päivämäärä sen nimen loppuun. Skriptit eivät ole vain komentojen kutsumisia. He ovat omia ohjelmia. Komentosarjojen avulla voit käyttää ohjelmointitoimintoja, kuten "silmukoita", jos / sitten / muut lausunnot ja niin edelleen - suoraan käyttöjärjestelmän käyttöliittymässä. Ja sinun ei tarvitse oppia toista kieltä, koska käytät sitä, mitä jo tiedät: komentoriviltä.

    Se on todella skriptien voima. Voit ohjelmoida jo tunnetuilla komennoilla, kun opiskelet niille suurimpia ohjelmointikieliä. On tehtävä jotain toistuvaa ja tylsiä? Script se! Tarvitsetko oikotietä oikean kääntyvän komennon? Script se! Haluatko rakentaa todella helppokäyttöisen komentoriviliittymän jotain varten? Script se!

    Ennen kuin aloitat

    Ennen kuin aloitamme komentosarjojen sarjan, peitämme joitakin perustietoja. Käytämme bash-kuoria, jota useimmat Linux-jakelut käyttävät natiivisti. Bash on käytettävissä myös Mac OS -käyttäjille ja Cygwinille myös Windowsissa. Koska se on niin yleismaailmallista, sinun pitäisi pystyä skriptiin riippumatta alustastasi. Lisäksi, kunhan kaikki viitatut komennot ovat olemassa, skriptit voivat toimia useilla alustoilla, joissa tarvitaan vähän tai ei ollenkaan säätöä.

    Komentosarjat voivat helposti käyttää "järjestelmänvalvojan" tai "pääkäyttäjän" oikeuksia, joten on parasta testata skriptejä, ennen kuin asetat ne toimimaan. Käytä myös tervettä järkeä, kuten varmista, että sinulla on varmuuskopioita tiedostoista, joita aiot käyttää skriptiin. On myös erittäin tärkeää käyttää oikeita vaihtoehtoja, kuten -i, rm-komennossa, jotta vuorovaikutus on tarpeen. Tämä voi estää joitakin ikäviä virheitä. Lue sellaisia ​​skriptejä, joita lataat, ja varmista, että sinulla on tietoja, vain jos asiat menevät pieleen.

    Niiden ytimessä skriptit ovat vain tavallisia tekstitiedostoja. Voit kirjoittaa minkä tahansa tekstieditorin avulla: gedit, emacs, vim, nano ... Tämä lista jatkuu. Muista tallentaa se pelkkänä tekstinä, ei rikkaana tekstinä tai Word-dokumenttina. Koska rakastan helppokäyttöisyyttä, jota nano tarjoaa, käytän sitä.

    Komentosarjan käyttöoikeudet ja nimet

    Komentosarjat suoritetaan samankaltaisina ohjelmina, ja jotta ne tapahtuisivat, niillä on oltava asianmukaiset oikeudet. Voit tehdä komentosarjoja suoritettavaksi suorittamalla sen seuraavan komennon:

    chmod + x ~ / somecrazyfolder / script1

    Tämän ansiosta kuka tahansa voi ajaa kyseistä komentosarjaa. Jos haluat rajoittaa sen käyttöä vain käyttäjälle, voit käyttää tätä:

    chmod u + x ~ / somecrazyfolder / script1

    Jotta voit suorittaa tämän komentosarjan, sinun pitäisi cd osata oikeaan hakemistoon ja suorittaa komentosarja näin:

    cd ~ / somecrazyfolder

    ./ script1

    Jotta asiat olisivat kätevämpiä, voit asettaa komentosarjoja kotikansion hakemistoon:

    ~ / Bin

    Monissa nykyaikaisissa tiloissa tätä kansiota ei enää luoda oletuksena, mutta voit luoda sen. Tämä on yleensä silloin, kun suoritettavia tiedostoja tallennetaan käyttäjälle eikä muille käyttäjille. Asettamalla komentosarjoja täällä voit vain ajaa ne kirjoittamalla niiden nimen, kuten muutkin komennot, sen sijaan, että tarvitsisit cd: tä ja käyttää "./" -liittymää.

    Ennen kuin annat komentosarjan, sinun pitäisi kuitenkin tarkistaa, onko sinulla asennettu ohjelma, joka käyttää tätä nimeä:

    mikä [komento]

    Monet ihmiset nimittävät varhaisen komentosarjansa ”testin”, ja kun he yrittävät käyttää sitä komentorivillä, mikään ei tapahdu. Tämä johtuu siitä, että se on ristiriidassa testikomennon kanssa, joka ei tee mitään ilman argumentteja. Varmista aina, että komentosarjojen nimet eivät ole ristiriidassa komentojen kanssa, muuten saatat löytää itsesi tekemästä asioita, joita et aio tehdä!

    Komentosarjojen ohjeet

    Kuten aiemmin mainitsin, jokainen skriptitiedosto on pohjimmiltaan tavallinen teksti. Se ei kuitenkaan tarkoita sitä, että voit kirjoittaa mitä haluat kaikki typerästi. Kun tekstitiedostoa yritetään suorittaa, kuoret käsittelevät niiden kautta vihjeitä siitä, ovatko ne skriptejä vai eivät, ja miten käsitellä kaiken oikein. Tämän vuoksi on olemassa muutamia ohjeita, jotka sinun täytyy tietää.

    1. Jokaisen komentosarjan pitäisi olla "#! / Bin / bash"
    2. Jokainen uusi rivi on uusi komento
    3. Kommenttiviivat alkavat numerolla #
    4. Komentoja ympäröi ()

    Hash-Bang Hack

    Kun kuori jäsentää tekstitiedoston kautta, suorin tapa tunnistaa tiedosto skripteinä on tehdä ensimmäinen rivi:

    #! / Bin / bash

    Jos käytät toista kuoria, korvaa sen polku täällä. Kommenttiviivat alkavat hajallaan (#), mutta lisäämällä bang (!) Ja shell-polku sen jälkeen, kun se on eräänlainen hakata, joka ohittaa tämän kommenttisäännön ja pakottaa komentosarjan suorittamaan kuoren kanssa, jonka tämä rivi osoittaa.

    Uusi rivi = Uusi komento

    Jokaista uutta riviä tulisi pitää uudena komentona tai suuremman järjestelmän osana. Esimerkiksi, jos / sitten / muut lausunnot ottavat vastaan ​​useita rivejä, mutta järjestelmän jokainen osa on uudessa rivissä. Älä anna komennon vetäytyä seuraavalle riville, koska tämä voi lyhentää edellisen komennon ja antaa sinulle seuraavan rivin virheen. Jos tekstieditori tekee niin, sinun pitäisi sammuttaa tekstipakkaus, jotta se olisi turvallisella puolella. Voit poistaa tekstin käärimisen nano-bittiä painamalla ALT + L.

    Kommentti Usein #s

    Jos aloitat rivin #, rivi jätetään huomiotta. Tämä muuttuu kommenttiviivaksi, jossa voit muistuttaa itsellesi, mitä edellisen komennon tulos oli, tai mitä seuraava komento tekee. Sammuta tekstin kääriminen uudelleen tai katkaise kommenttisi useisiin riveihin, jotka kaikki alkavat hashilla. Monien kommenttien käyttäminen on hyvä käytäntö, sillä sen avulla voit ja muut ihmiset muokata skriptejä helpommin. Ainoa poikkeus on edellä mainittu Hash-Bang-häkki, joten älä seuraa #s: a! S: llä. ;-)

    Parentheses ympäröivät komennot

    Vanhemmissa päivissä komennon substituutiot tehtiin yhdellä merkintämerkillä (', jakaa ~ -näppäimen). Emme aio koskettaa tätä vielä, mutta koska useimmat ihmiset poistuvat ja tutkivat perusasioiden oppimisen jälkeen, on luultavasti hyvä mainita, että sinun pitäisi käyttää suluissa. Tämä johtuu pääasiassa siitä, että kun laitat komentoja muiden komentojen sisään - sulkeutuu paremmin.

    Ensimmäinen komentosarja

    Aloitetaan yksinkertaisella komentosarjalla, jonka avulla voit kopioida tiedostoja ja liittää päivämäärät tiedostonimen loppuun. Kutsumme sitä "datecpiksi". Tarkista ensin, onko nimi ristiriidassa jonkin muun kanssa:

    Näet, ettei ole mitään komentoa, joten olemme kaikki käyttäneet tätä nimeä.

    Luo tyhjä tiedosto ~ / bin-kansioon:

    kosketa ~ / bin / datecp

    Muutetaan nyt lupa nyt, ennen kuin unohdamme:

    Aloitetaan sitten käsikirjoituksen rakentaminen. Avaa kyseinen tiedosto tekstieditorissa. Kuten sanoin, pidän nano-yksinkertaisuudesta.

    nano ~ / bin / datecp

    Aiomme mennä eteenpäin ja laittaa edellytyksen ensimmäinen rivi ja kommentti siitä, mitä tämä käsikirjoitus tekee.

    Seuraavaksi julistetaan muuttuja. Jos olet koskaan ottanut algebran, tiedät todennäköisesti, mikä se on. Muuttujan avulla voimme tallentaa tietoja ja tehdä asioita sen kanssa. Muuttujat voivat "laajentaa", kun viitataan muualle. Toisin sanoen sen sijaan, että heidän nimensä olisi näytetty, ne näyttävät tallennetun sisällön. Voit myöhemmin kertoa, että sama muuttuja voi tallentaa eri tietoja ja sen jälkeen annettuja ohjeita käyttämään uutta tietoa. Se on todella hieno paikkamerkki.

    Mitä muutamme muuttujaan? No, säilytetään päivämäärä ja kellonaika! Tätä varten kutsutaan päivämääräkomento.

    Tutustu alla olevaan kuvakaappaukseen, miten päivämääräkomennon tulos voidaan rakentaa:

    Näet, että lisäämällä eri muuttujia, jotka alkavat%: lla, voit muuttaa komennon lähtöä haluamallesi. Lisätietoja on päivämääräkomennon käsisivulla.

    Käyttäkää sitä päivämääräkomennon viimeistä iterointia, ”päivämäärä +% m_% d_% y-% H.% M.% S” ja käytä sitä skriptiämme.

    Jos aiomme tallentaa tämän komentosarjan juuri nyt, voisimme suorittaa sen ja se antaisi meille sellaisen päivämääräkomennon tuotoksen, jota odotamme:

    Mutta tehdään jotain erilaista. Anna muuttujalle nimi, kuten date_formatted tähän komentoon. Tämän sopiva syntaksi on seuraava:

    muuttuja = $ (komentooptiot-argumentit)

    Ja me rakensimme sen näin:

    date_formatted = $ (päivämäärä +% m_% d_% y-% H.% M.% S)

    Tätä kutsumme komennon korvaamiseksi. Sanomme bashille, että aina, kun muuttuja ”date_formatted” näkyy, voit suorittaa sulkeissa olevan komennon. Sitten mikä tahansa lähtö antaa komennot tulee näyttää muuttujan nimen ”date_formatted” sijasta.

    Tässä on esimerkkisarja ja sen tulos:

    Huomaa, että lähdössä on kaksi välilyöntiä. Echo-komennon lainausmerkkien ja muuttujan edessä olevan tilan näkyvät molemmat. Älä käytä välilyöntejä, jos et halua, että ne näkyvät. Huomaa myös, että ilman tätä lisättyä "echo" -linjaa skripti ei anna mitään tuotosta.

    Palaan takaisin komentosarjaan. Lisää seuraava komento kopiointiosaan.

    cp -iv $ 1 $ 2. $ date_formatted

    Tämä käynnistää kopiointikomennon -i- ja -v-asetuksilla. Entinen kysyy sinulta tarkistusta ennen tiedoston kirjoittamista, ja jälkimmäinen näyttää, mitä komentorivillä on.

    Seuraavaksi näet, että olen lisännyt "$ 1" -vaihtoehdon. Kun skriptaus tapahtuu, dollarin merkki ($), jota seuraa numero, merkitsee skriptin numeroitua argumenttia, kun sitä käytettiin. Esimerkiksi seuraavassa komennossa:

    cp -iv Trogdor2.mp3 soittoääni.mp3

    Ensimmäinen argumentti on “Trogdor2.mp3” ja toinen argumentti on “soittoääni.mp3”.

    Tarkasteltaessa käsikirjoitustamme voimme nähdä, että viittaamme kahteen argumenttiin:

    Tämä tarkoittaa, että kun suoritamme komentosarjan, meidän on annettava kaksi argumenttia, jotta komentosarja toimii oikein. Ensimmäinen argumentti, $ 1, on kopioitava tiedosto, joka korvataan "cp -iv" -komennon ensimmäisenä argumenttina.

    Toinen argumentti, $ 2, toimii saman komennon lähtötiedostona. Mutta voit myös nähdä, että se on erilainen. Olemme lisänneet ajanjakson, ja olemme viitanneet “date_formatted” muuttujaan ylhäältä. Utelias siitä, mitä tämä tekee?

    Mitä tapahtuu, kun komentosarjaa käytetään:

    Näet, että tulostustiedosto on lueteltu mitä tahansa $ 2: lle, jota seurasi jakso, sitten päivämääräkomennon lähtö. Aistit, oikein?

    Nyt kun suoritan datecp-komennon, se suorittaa tämän komentosarjan ja sallii kopioida minkä tahansa tiedoston uuteen paikkaan ja lisätä automaattisesti päivämäärän ja kellonajan tiedostonimen loppuun. Hyödyllistä arkistointia varten!


    Shell-komentosarjat ovat keskeisessä asemassa, kun käyttöjärjestelmäsi toimii. Sinun ei tarvitse oppia uutta ohjelmointikieliä, jotta se tapahtuisi. Kokeile komentosarjoja joidenkin peruskomentojen kanssa kotona ja aloita miettiminen siitä, mitä voit käyttää tätä varten.

    Kirjoitatko? Onko neuvoja aloittelijoille? Jaa ajatuksesi kommenteissa! Tässä sarjassa on enemmän!