Bash skriptovanje predstavlja dragocenu veštinu koju svaki korisnik Linux operativnog sistema treba da savlada. Čak i za početnike, poznavanje ove veštine može biti presudno za maksimalno iskorišćavanje potencijala vašeg računara i izbegavanje rutinskih, manuelnih zadataka. U ovom članku ćemo vas korak po korak voditi kroz proces pisanja Bash skripti za automatizaciju Linuxa i preuzimanje potpune kontrole nad vašim radnim okruženjem. Detaljno ćemo razmotriti osnove skriptovanja pomoću Bash shell-a, objasnićemo strukturu skripte, kako je pokrenuti na sistemu, značaj shebang-ova i još mnogo toga!
Različiti Tipovi Skripti
Postoji nekoliko različitih vrsta skripti, među kojima se najčešće koriste SH i BASH. Ekstenzija datoteke ima ključnu ulogu jer upućuje interpretator kako da pokrene skriptu. Datoteke sa SH ekstenzijom mogu se izvršavati u bilo kom shell-u, ne samo u Bash-u. To znači da skripta napisana za Bash na Linuxu može biti pokrenuta i na macOS-u, BSD-u i drugim sistemima sa kompatibilnim shell-ovima.
Skripte koje koriste BASH ekstenziju su isključivo namenjene za pokretanje u okviru Bash-a. Dakle, vaša skripta sa .bash ekstenzijom neće raditi u Fish shell-u na Linux-u ili bilo kojem drugom sličnom shell-u.
Shebang-ovi
Neke skripte uopšte ne koriste ekstenzije datoteka. Umesto toga, koriste shebang da bi omogućili interpretatoru da prepozna svrhu skripte i način njenog pokretanja. Prilikom pisanja skripte, shebang je UVEK na prvoj liniji. Ako shebang nedostaje, skripta često neće hteti da se pokrene, pogotovo ako nema ekstenziju.
Postoji mnogo toga što se može naučiti o shebang-ovima, ali početnici ne treba da brinu o svim detaljima. Oni su uglavnom korisni naprednijim korisnicima Bash-a, koji razvijaju složene Bash alate. Za početnike, jedino što treba da znaju je standardni shebang: #!/bin/bash
Kreiranje Bash Skripte
Mnogi početnici pogrešno izjednačavaju Bash skriptovanje sa programiranjem. Glavna svrha skriptovanja u Bash-u je da spoji veći broj komandi, omogućavajući obavljanje dugih i komplikovanih zadataka bez potrebe za ručnim unosom svake pojedinačne komande u terminal. Ako pokušavate da radite ozbiljno programiranje u Bash-u, razmislite o korišćenju programskih jezika specifičnih za Linux, kao što je Python.
Da biste počeli, otvorite terminal i unesite sledeću komandu:
nano myfirstbashscript
Ovo će otvoriti Nano tekst editor. U Nano editoru dodajte shebang, kako bi interpretator znao šta da radi sa skriptom:
#!/bin/bash
Odavde možete sve! Na primer: Ubuntu korisnik može napraviti jednostavnu skriptu za ažuriranje sistema dodavanjem linija:
sudo apt update;sudo apt upgrade -y
Alternativno, možete kreirati kontinuiranu ping skriptu koja će se pokretati u pozadini, ukoliko ste zabrinuti za brzinu svoje mreže:
ping google.com
Dodajte bilo koje komande koje želite u skriptu! Budite kreativni!
Nakon što dodate željene komande, sačuvajte skriptu u Nano editoru koristeći kombinaciju tastera CTRL + O.
Sada kada je skripta kreirana, potrebno je ažurirati njene dozvole. U terminalu unesite:
sudo chmod +x myfirstbashscript
Pokretanje Skripti
Da biste pokrenuli shell skriptu, otvorite terminal i unesite:
sudo sh script.sh
Za pokretanje Bash datoteka, pokušajte:
sudo bash script.bash
Alternativno, bilo koja skripta, bez obzira na ekstenziju, može se lako pokrenuti sa ./ime_datoteke
u terminalu.
Sva tri načina za pokretanje skripte su funkcionalna. Međutim, korišćenje ./ime_datoteke je najgori način, jer se skripte često neće pokrenuti osim ako nemaju odgovarajuće dozvole. Podesite dozvole koristeći sledeću komandu:
sudo chmod +x script
Pretvaranje Skripte u Binarnu Datoteku
Da biste pokrenuli skriptu jednostavnim unosom njenog imena u terminal, morate je pretvoriti u binarnu datoteku. Ovo se postiže korišćenjem komande chmod, koja omogućava da skripta bude izvršna.
sudo chmod +x
Kada je skripta označena kao izvršna, potrebno je premestiti je na lokaciju koja je dostupna u PATH-u korisnika. To se postiže pomoću komande MV. Alternativno, možete koristiti komandu CP umesto komande mv ako želite da zadržite kopiju skripte na njenoj originalnoj lokaciji.
sudo mv /putanja/do/skripte /usr/bin/
ili
sudo cp /putanja/do/skripte /usr/bin/
Zatim pokrenite premeštenu skriptu u terminalu, sa bilo koje lokacije, jednostavnim ukucavanjem njenog imena. Na primer: ako ste koristili YouTube-DL da kreirate skriptu za automatsko preuzimanje YouTube video snimaka i premestili je u /usr/bin/ radi lakšeg pristupa.
Da biste pokrenuli ovu skriptu, jednostavno unesite:
youtubescript
I to je sve!
Zaključak
Učenje Bash jezika je veoma korisno. Bez njega, sistemski administratori i napredni korisnici bi se satima bavili rutinskim operacijama. Umesto toga, mogu da pišu Bash skripte za automatizaciju Linuxa. Savladavanjem moći Bash-a, možete da automatizujete sve složene operacije i brzo ih izvršavate pomoću skripti.
Shell je izvanredan alat, i što više budete učili o njemu, više ćete saznati o svom Linux sistemu, kako da ga automatizujete, pa čak i da poboljšate način na koji stvari funkcionišu. Nebo je granica sa Bash-om, sve što je potrebno je malo kreativnosti!