Mis on Shelli skriptimine?
Olles Linuxi kasutaja, tähendab see, et sa mängid käsureaga. Nagu või mitte, on vaid mõni asi, mida on selle liidese kaudu palju hõlpsamini teha, kui juhtida ja klõpsates. Mida rohkem te kasutate ja õppite käsurealt, seda rohkem näete selle potentsiaali. Noh, käsurea ise on programm: shell. Enamik Linuxi distributsiooni kasutab täna Bashi ja selle kaudu sisestate käsud sisestama.
Nüüd, mõned, kes kasutasid Windowsit enne Linuxi kasutamist, võivad meeles pidada partiifaile. Need olid väikesed tekstifailid, mida võite täitmise käskudega täita ja Windows käivitas need omakorda. Kui te ei suutnud avada süsteemikaustu ega luua otseteid, oli see nutikas ja puhas viis mõnede asjade sooritamiseks, näiteks mängida oma keskkooli arvutiklassis. Windowsi partiifailid, mis on kasulikud, on odavad jäljendid shell skripte.
Ma arvan, et see on tõesti skriptimise võime. Saate programmeerida käskudega, mida juba teate, samal ajal kui õpivad kõige enam programmeerimiskeele. Kas peate tegema midagi korduvat ja tüütu? Script seda! Kas soovite otsekohe tõeliselt keerdse käskluse jaoks? Script seda! Kas soovite luua midagi hõlpsasti käsurealiidest? Script seda!
Enne alustamist
Enne kui hakkame oma skriptide seeriat alustama, vaatame põhiteavet. Me kasutame bash-kestat, mida enamus Linuxi distributsioone kasutab ennast. Bash on saadaval Mac OSi kasutajatele ja Cygwinile ka Windowsis. Kuna see on nii universaalne, peaksite saama skripti oma platvormist sõltumata. Lisaks, seni, kuni kõik viidatud käsklused on olemas, võivad skriptid töötada mitmel platvormil, mida nõutakse vähese häälestamisega.
Skriptid võivad hõlpsalt kasutada administraatori või administraatori õigusi, seega on kõige parem katsetada skripte enne nende tööle panemist. Samuti kasutage tervet mõistust, näiteks veenduge, et olete failide varukoopiaid, millega olete skripti käivitanud. Samuti on tõesti oluline kasutada õigeid valikuid, näiteks käsu r-i jaoks, nii et teie suhtlus on vajalik. See võib takistada mõned leinavad vigu. Sellisena loete läbi skripte, mida laadite alla, ja olge nende andmetega ettevaatlik, kui asjad lähevad valesti.
Südamikud on lihtsalt tekstifailid. Tekstiredaktori saab neile kirjutada: gedit, emacs, vim, nano … See nimekiri läheb edasi. Lihtsalt veenduge, et salvestate selle kui tavalise teksti, mitte rikasteksti või Wordi dokumendina. Kuna ma armastan nano pakutavat kasutuskõlblikkust, kasutan seda.
Skripti õigused ja nimed
Skriptid täidetakse nagu programmid, ja selleks peab neil olema õiged õigused. Te saate käivitavaid skripte teha, käivitades sellele järgmise käsu:
chmod +x ~/somecrazyfolder/script1
See võimaldab igal konkreetsel skriptil käivitada. Kui soovite piirata selle kasutamist ainult teie kasutajale, võite selle asemel kasutada:
chmod u+x ~/somecrazyfolder/script1
Selle skripti käivitamiseks peaksite cd olema õigesse kataloogi ja käivitage skript järgmiselt:
cd ~/somecrazyfolder
./script1
Asjade mugavamaks muutmiseks võite skripte paigutada kodukataloogi kausta "bin":
~/bin
Paljudes kaasaegsetes distrosides pole seda kausta enam vaikimisi loodud, kuid saate seda luua. See on tavaliselt käimasolevate failide salvestamine, mis kuuluvad teie kasutajale ja mitte teistele kasutajatele. Asetades skripte siin, saate neid lihtsalt käivitada, kirjutades nende nime, nagu ka teisi käske, selle asemel, et printida ja kasutada "./" eesliidet.
Enne skripti nime saamist peaksite järgima seda käsklust, et kontrollida, kas teil on olemas selline nimi, mis on installitud:
which [command]
Paljud inimesed nimetavad oma varasemate skriptide "test" ja kui nad püüavad käsku käivitada, ei juhtu midagi. Seda põhjusel, et see on vastuolus katsekäsuga, mis ei tee argumentidega midagi. Alati veenduge, et teie skripti nimed ei oleks käskudega vastuolus, vastasel juhul võib juhtuda, et teete asju, mida te ei kavatse teha!
Skriptimise juhised
- Iga skript peaks olema koos "#! / Bin / bash"
- Iga uus rida on uus käsk
- Kommentaari read algavad #
- Käsud on ümbritsetud ()
Hash-Bang Hack
Kui shell koondab tekstifaili, on kõige otsesem viis faili skripti tuvastamiseks teha oma esimene rida:
#!/bin/bash
Kui kasutate mõnda muud kotti, asenda see siin. Kommentaaride read algavad hashes'iga (#), kuid lisades pausi (!) Ja shelli tee pärast seda, kui see on mingi häkkimine, mis mööda seda kommentaari reeglit üritab ja sunnib skripti täitma shelliga, millele see joon näitab.
Uus rida = uus käsk
Iga uut rida tuleks pidada uueks käsuks või suurema süsteemi komponendiks. Näiteks juhul, kui / siis / muu avaldused võtab üle mitu rida, kuid selle süsteemi iga komponent on uues rida. Ärge laske käsklus ületada järgmisele reale, kuna see võib kärpida eelmist käsu ja anda teile järgmise rea vea. Kui teie tekstiredaktor seda teete, peate tekstiklaami väljalülitamiseks olema ohutu poolel. Teksti ümbermõõtu saab välja lülitada nano-bitise ALT + L-ga.
Kommentaar Sageli #s
Kui alustate # -ga joont, ignoreeritakse joont. See muudab selle kommentaarideks, kus saate meenutada endist eelmise käsu väljundit või seda, mida järgmine käsk teeb. Jällegi lülitage tekstivõre välja või katkestage kommenteerimine mitmesse rida, mis kõik algavad räsihinnaga. Palju kommentaare on hea tava hoida, kuna see võimaldab teil ja teistel inimestel hõlpsamini oma skripte muuta. Ainsaks erandiks on eespool nimetatud Hash-Bangi häkkimine, seega ärge järgige #s koos! Sga.;-)
Käsud ümbritsevad Parentheses
Vanematel päevadel käsk asendusi tehti ühe märgi märkidega (`, jagab ~ võtme). Me ei kavatse seda veel puudutada, kuid kuna enamik inimesi läheb ära ja uurivad põhiteadmiste õppimist, siis on ilmselt hea mõte mainida, et peaksite selle asemel kasutama sulgudes. See on peamiselt seetõttu, et kui pesad - pane käske teiste käskude sees - sulgud toimivad paremini.
Sinu esimene skript
Alustame lihtsa skriptiga, mis võimaldab kopeerida faile ja lisada kuupäevad failinime lõppu. Vaatame seda "datecp". Esmalt kontrollime, kas see nimi on midagi vastuolus:
Looge tühja faili kataloogis ~ / bin:
touch ~/bin/datecp
nano ~/bin/datecp
Ja laseme edasi ja paneme esialgse eelduse ja kommenteerime, mida see skript teeb.
Mida me paneme välja muutujaga? Pange tähele kuupäeva ja kellaaega! Selleks kutsume kuupäeva käsku.
Vaadake alljärgnevat ekraanipilti, kuidas luua kuupäeva käsu väljundit:
Kasutage seda kuupäeva käsku viimast iteratsiooni, "date +% m_% d_% y-% H.% M.% S" ja kasutage seda meie skriptis.
Kuid tegema midagi muud. Andke muutuja nimi, nagu date_formatted sellele käsule. Selle nõuetekohane süntaks on järgmine:
variable=$(command –options arguments)
Ja meie jaoks me ehitaksime seda järgmiselt:
date_formatted=$(date +%m_%d_%y-%H.%M.%S)
Siin on näidisskript ja selle väljund:
Läheme tagasi meie skripti. Järgmisena lisage käsu kopeerimise osa.
cp –iv $1 $2.$date_formatted
Järgmisena näete, et olen lisanud võimaluse "$ 1".Kui skriptid, siis tähistab dollar tähis ($), millele järgneb number, selle skripti nummerdatud argumendi, kui see on kutsutud. Näiteks järgmises käskluses:
cp –iv Trogdor2.mp3 ringtone.mp3
Esimene argument on "Trogdor2.mp3" ja teine argument on "Ärrington.mp3".
Vaadates meie skripti tagasi, näeme, et me viitame kahel argumendil:
Teine argument, $ 2, toimib sama käsu väljundfailina. Kuid võite ka näha, et see on erinev. Me lisasime perioodi ja me viitasime muutujale "DATE_FORMATSIOONID" ülalt. Kas see on huvitav?
Siin, mis juhtub siis, kui skript käivitatakse:
Nüüd, kui käivitan datecp käsku, käivitab see selle skripti ja lubab mul kopeerida kõik failid uude asukohta ja lisada automaatselt faili nime kuupäev ja kellaaeg lõpuni. Kasulik vara arhiveerimiseks!
Shell-skriptimine on teie operatsioonisüsteemi töö tegemisel teie jaoks kõige olulisem. Samuti ei pea te õppima uut programmeerimiskeele, et see juhtuks. Proovige skripte mõne põhikäsuga kodus ja hakake mõtlema, mida saate seda kasutada.
Kas sa stsenaariumi? Kas teil on nõuandeid algajatele? Jagage oma mõtteid kommentaarides! Seal on veel see seeria!