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 avulla voit säästää aikaa, oppia komentorivin paremmin ja lopettaa tylsät tiedostonhallintatehtävät.
Linux-käyttäjänä voit pelata komentorivillä. Kuten tai ei, on vain joitakin asioita, jotka tehdään helpommin tämän käyttöliittymän kautta kuin osoittamalla ja napsauttamalla. Mitä enemmän käytät ja opi komentorivillä, sitä enemmän näet sen potentiaalin. No, itse komentorivi on ohjelma: kuori. Useimmat Linux-distrojat käyttävät nykyään Bashia, ja juuri sinä todella syötät komentoja.
Jotkut teistä, jotka käyttävät Windowsia ennen Linuxin käyttöä, voivat muistaa erätiedostoja. Nämä olivat pieniä tekstitiedostoja, jotka voisit täyttää suoritettavia komentoja ja Windows käyttää niitä vuorostaan. Se oli älykäs ja siisti tapa saada joitakin asioita, kuten ajaa pelejä korkeakoulu tietokone lab, kun et voi avata järjestelmän kansioita tai luoda pikakuvakkeita. Erätiedostot Windowsissa, vaikka ne ovat hyödyllisiä, ovat kuori komentosarjoja.
Shell-komentosarjoilla voimme ohjelmoida komentoja ketjuissa ja käyttää järjestelmää komentosarjatapahtumana, kuten erätiedostoja. Ne mahdollistavat myös paljon hyödyllisemmän toiminnon, kuten komennon korvaamisen. Voit nimetä komennon, kuten päivämäärän, ja käyttää sen tuotos osana tiedostojen nimeämissuunnitelmaa. Voit automatisoida varmuuskopiot ja jokainen kopioitu tiedosto voi olla nykyinen päivämäärä, joka on liitetty sen nimen loppuun. Komentosarjat eivät ole pelkästään komentoja. Ne ovat ohjelmia omin päin. Komentosarjan avulla voit käyttää ohjelmointitoimintoja - kuten "for" -silmukoita, if / then / else -lausuntoja ja niin edelleen - suoraan käyttöjärjestelmän rajapinnassa. Sinun ei tarvitse oppia toista kieltä, koska käytät jo tiedätte: komentorivi.
Se on todellakin käsikirjoituksen voima, luulen. Voit ohjelmoida jo tiedät komennot, kun opit tärkeimpien ohjelmointikielten niittejä. Tarvitseeko tehdä jotain toistuvaa ja tylsiä? Script it! Tarvitsetko pikakuvakkeen todella sekava komento? Script it! Haluatko rakentaa todella helppokäyttöisen komentorivin käyttöliittymän jotain? Script it!
Ennen kuin aloitamme komentosarja-sarjan, katetaan joitain perustietoja. Käytämme bash-kuorta, jota useimmat Linux-jakelut käyttävät natively. Bash on käytettävissä Mac OS -käyttäjille ja Cygwin Windowsille. Koska se on niin yleismaailmallista, sinun pitäisi pystyä käsikirjoituksesta riippumatta alustastasi. Lisäksi, niin kauan kuin kaikki viitatut komennot ovat olemassa, komentosarjat voivat toimia useilla alustoilla, joissa on vain vähän tai ei lainkaan säätämistä.
Komentosarjat voivat helposti käyttää "pääkäyttäjän" tai "ylivaraajan" oikeuksia, joten on parasta testata komentosarjoja ennen kuin laitat ne käyttöön. Käytä myös tervettä järkeä, kuten varmistamalla, että sinulla on varmuuskopioita tiedostoista, joista aiot suorittaa komentosarjan. On myös erittäin tärkeää käyttää oikeita vaihtoehtoja, kuten -i rm-komennolle, jotta vuorovaikutus on välttämätöntä. Tämä voi estää joitain ikäviä virheitä. Sellaisena voit lukea skriptejä, jotka lataat ja ole varovainen tietojen mukana, vain siinä tapauksessa, että asiat menevät väärin.
Heidän ydinsä, komentosarjat ovat vain tavallisia tekstitiedostoja. Voit käyttää mitä tahansa tekstieditoria kirjoittamaan ne: gedit, emacs, vim, nano ... Tämä luettelo jatkuu. Varmista, että tallennat sen pelkkänä tekstinä, ei rikkaana tekstinä tai Word-asiakirjana. Koska rakastan helppokäyttöisyyttä, jota nano tarjoaa, käytän sitä.
Komentosarjat toteutetaan kuten ohjelmat, ja jotta tämä tapahtuisi, niillä on oltava oikeat käyttöoikeudet. Voit tehdä skriptit suoritettaviksi suorittamalla seuraavan komennon:
chmod + x ~ / somecrazyfolder / script1
Sen avulla kuka tahansa voi käyttää kyseistä komentosarjaa. Jos haluat rajoittaa sen käyttöä vain käyttäjälle, voit käyttää sitä sen sijaan:
chmod u + x ~ / somecrazyfolder / script1
Jotta voisit suorittaa tämän komentosarjan, sinun on syötettävä cd oikeaan hakemistoon ja suorita sitten komentosarja seuraavasti:
cd ~ / somecrazyfolder
./script1
Jotta asiat olisivat helpommin toteutettavissa, voit sijoittaa komentosarjat kotihakemiston "bin" -kansioon:
~ / Bin
Monissa moderneissa doksissa tätä kansiota ei enää luoda oletuksena, mutta voit luoda sen. Tämä on yleensä silloin, kun tallennetaan suoritettavat tiedostot, jotka kuuluvat käyttäjänne eikä muille käyttäjille. Sijoittamalla komentosarjoja täällä, voit vain käyttää niitä kirjoittamalla heidän nimensä aivan kuten muut komennot sen sijaan, että tarvitsisit cd-levyn ympärille ja käytät './' -otsiketta.
Ennen kuin nimeät käsikirjoituksen, sinun kannattaa tarkistaa, onko käytössäsi ohjelma, joka käyttää tätä nimeä:
joka [komento]
Monet ihmiset nimittävät aikaisemmat komentosarjat "testi", 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, että käsikirjoituksesi nimet eivät ole ristiriidassa komentojen kanssa, muutoin saatat löytää itsesi tekemällä asioita, joita et aio tehdä!
Kuten aiemmin mainitsin, jokainen komentotiedosto on lähinnä selkeä teksti. Tämä ei tarkoita sitä, että voit kirjoittaa mitä haluatte kaikki tahtomatta. Kun tekstitiedostoa yritetään suorittaa, kuoret käsittelevät niitä selville siitä, ovatko ne komentosarjoja vai eivät, ja miten käsitellä kaikkea oikein. Tämän takia on muutamia ohjeita, jotka sinun on tiedettävä.
Hash-Bang Hack
Kun kuori parsittaa tekstitiedoston läpi, suorin tapa tunnistaa tiedosto komentokuvana on tekemällä ensimmäinen rivi:
#! / Bin / bash
Jos käytät toista kuorta, vaihda sen polku tähän. Komentorivit alkavat hashilla (#), mutta lisäävät bang (!) Ja shell-polun sen jälkeen, kun se on eräänlainen hakkerointi, joka ohittaa tämän kommentointisäännön ja pakottaa komentosarjan suoritettavaksi tämän rivin osoittavan kuoren kanssa.
Uusi rivi = uusi komento
Jokainen uusi rivi olisi pidettävä uutena komennuksena tai suuremman järjestelmän komponenttina. Jos / sitten / muuten lausumat käsittelevät esimerkiksi useita rivejä, mutta jokaisen järjestelmän osa on uudessa rivissä. Älä anna komennon päästää seuraavaan riviin, koska tämä voi katkaista edellisen komennon ja antaa sinulle seuraavan rivin virheen. Jos tekstieditori tekee tämän, sinun kannattaa poistaa tekstipakkaus käytöstä turvallisella puolella. Voit poistaa tekstin käärinnän nanobittiä painamalla ALT + L-näppäintä.
Kommentti Usein #s
Jos aloitat rivin #, linja jätetään huomiotta. Tämä muuttuu komentoriviksi, jossa voit muistuttaa itseäsi siitä, mitä edellisen komennon tuotos oli, tai mitä seuraava komento tekee. Jälleen sammuta tekstin kääriminen tai rikkoa kommentit useisiin viivoihin, jotka kaikki alkavat hashilla. Useiden kommenttien käyttäminen on hyvä käytäntö pitää, sillä se antaa sinulle ja muille ihmisille nopeammin komentojasi. Ainoa poikkeus on edellä mainittu Hash-Bang-hakata, joten älä seuraa #s with! S. ;-)
Komennot ympäröidään aivoristeillä
Vanhemmissa päivinä komentojohdot tehtiin yhdellä painikkeella (', jakaa ~ avaimen). Emme aio koskettaa tätä vielä, mutta kun useimmat ihmiset poistuvat ja tutkivat perusteiden oppimisen jälkeen, on luultavasti hyvä mainita, että sinun pitäisi käyttää sulkeja sen sijaan. Tämä johtuu pääasiassa siitä, että kun peset - laitat komentoja muihin komentoihin - sulkeet toimivat paremmin.
Aloitetaan yksinkertaisella komentosarjalla, jonka avulla voit kopioida tiedostoja ja lisätä päivämäärät tiedostonimen loppuun. Let's call it "datecp". Tarkista ensin, onko nimi ristiriidassa jotain:
Näet, että komentoa ei ole, joten olemme kaikki käyttäneet tätä nimeä.
Luo tyhjä tiedosto ~ / bin -kansioon:
kosketa ~ / bin / datecp
Ja nyt muutetaan lupa, ennen kuin unohdamme:
Aloitetaan sitten käsikirjoituksen rakentaminen. Avaa kyseinen tiedosto valintasi tekstieditorissa. Kuten sanoin, pidän nano-yksinkertaisuudesta.
nano ~ / bin / datecp
Ja mennään eteenpäin ja asetetaan vaatimus ensimmäinen rivi ja kommentti siitä, mitä tämä skripti tekee.
Seuraavaksi ilmoitetaan muuttuja. Jos olet koskaan ottanut algebralle, luultavasti tiedät mitä se on. Muuttujan avulla voimme tallentaa tietoja ja tehdä asioita sen kanssa. Muuttujat voivat laajentaa viittausta muualle. Eli niiden näyttämisen sijasta ne näyttävät tallennetut sisällöt. Voit myöhemmin kertoa, että sama muuttuja tallentaa eri tietoja, ja kaikki sen jälkeen tapahtuvat ohjeet käyttävät uutta tietoa. Se on todella hieno paikkamerkki.
Mitä asetamme muuttujaan? No, tallennetaan päivämäärä ja kellonaika! Tätä varten kutsumme päivämääräkomennon.
Katso alla olevaa kuvakaappausta, miten päivämäärän komennon tuotos saadaan:
Voit nähdä, että lisäämällä eri muuttujat, jotka alkavat%: lla, voit muuttaa komennon tuoton siihen, mitä haluat. Lisätietoja on päivämääräkomennon manuaalisessa sivussa.
Käytetään päivämääräkomennon viimeistä iterointia, "päivämäärä +% m_% d_% y-% H.% M.% S", ja käytä sitä komentosarjassamme.
Jos tallennamme tämän käsikirjoituksen juuri nyt, voimme käyttää sitä ja antaa meille päivämääräkomennon tuotos, kuten odotimme:
Tehdään kuitenkin jotain erilaista. Anna muuttujan nimi, kuten date_formatted tähän komentoon. Asianmukainen syntaksi on seuraava:
muuttuja = $ (komento -option argumentit)
Ja meille, me rakennamme sen näin:
date_formatted = $ (päivämäärä +% m_% d_% y-% H.% M.% S)
Tätä kutsumme komennon korvaamiseksi. Olemme lähinnä kerrottu, että aina, kun muuttuja "date_formatted" ilmestyy, suoritetaan komentojen sisällä sulkeissa. Tällöin näytetään minkä tahansa komennon antamat tuotokset muuttujan nimen sijasta, "date_formatted".
Tässä on esimerkkikirjoitus ja sen tulos:
Huomaa, että lähdössä on kaksi tilaa. Echo-komennon lainausmerkit ja muuttujan edessä oleva tila ovat molemmat näkyvissä. Älä käytä välilyöntejä, jos et halua niiden tulevan näkyviin. Huomaa myös, että ilman tätä lisättyä "echo" -viivaa, komentosarja ei antaisi mitään tuottoa.
Palatkaamme käsikirjallamme. Seuraavaksi lisäämme komennon kopiointiosaan.
cp -iv $ 1 $ 2. $ date_formatted
Tämä vetoaa kopiointikomentoon -i ja -v-asetuksilla. Ensin kysytään tarkistusta ennen tiedostojen päällekirjoittamista, ja jälkimmäinen näyttää sen, mitä komentorivillä on alas.
Seuraavaksi näet, että olen lisännyt $ 1 -vaihtoehdon. Kun kirjoitat, dollarimerkki ($), jota seuraa numero, merkitsee sitä scriptin numeroitua argumenttia, kun sitä kutsuttiin. Esimerkiksi seuraavassa komennossa:
cp -iv Trogdor2.mp3 ringtone.mp3
Ensimmäinen argumentti on "Trogdor2.mp3" ja toinen argumentti on "ringtone.mp3".
Tarkastelemalla käsikirjoitusta voimme nähdä, että viittaamme kahteen argumenttiin:
Tämä tarkoittaa sitä, että kun suoritamme käsikirjoituksen, meidän on annettava kaksi argumenttia, jotta komentosarja toimisi oikein. Ensimmäinen argumentti, $ 1, on tiedosto, joka kopioidaan ja korvataan nimellä "cp -iv" -komennon ensimmäinen argumentti.
Toinen argumentti, $ 2, toimii saman komennon tulostustiedostona. Mutta voit myös nähdä, että se on erilainen. Olemme lisänneet ajanjakson ja olemme viitanneet "date_formatted" -muuttujasta yllä. Kiinnostaako tämä, mitä tämä tekee?
Näin tapahtuu, kun komentosarja ajetaan:
Näet, että tulostustiedosto on lueteltu minulle, mitä annoin $ 2: lle, jota seuraa aika, sitten päivämääräkomennon tuotos! Onko järkevää, eikö?
Nyt kun suoritan datecp-komennon, se ajaa tämän komentosarjan ja antaa minun kopioida minkä tahansa tiedoston uuteen paikkaan ja lisätä automaattisesti päivämäärän ja kellonajan tiedostonimen lopettamiseen. Hyödyllistä arkistointia varten!
Shell-komentosarjat ovat keskeisessä asemassa, jotta käyttöjärjestelmäsi toimisi sinulle. Sinun ei tarvitse oppia uutta ohjelmointikieltä sen tekemiseksi. Kokeile kirjoittaa joitain peruskomentoja kotona ja alkaa miettiä, mitä voit käyttää tätä varten.
Oletko käsikirjoitus? Onko neuvoja aloittelijoille? Jaa ajatuksesi kommentteihin! Tähän sarjaan tulee enemmän!