5.1.6. Komandni interpreter (Shell) - skripte |
Komandni interpreter nije samo 'prozor' koji omogućava okruženje za terminal-emulator i zadavanje raspoloživih komandi, već nešto mnogo više od toga. Debian podrazumno koristi BASH (GNU Bourne-Again SHell), što je u biti izvršiva datoteka veličine oko 600 kB koja se nalazi u imeniku [/bin].
voda:~# cd /bin
voda:/bin# ls -al | grep bash
-rwxr-xr-x 1 root root 700492 2008-05-12 21:02 bash
lrwxrwxrwx 1 root root 4 2010-04-18 11:42 rbash -> bash
lrwxrwxrwx 1 root root 4 2010-04-18 11:42 sh -> bash
voda:/bin#
BASH je SH-kompatibilan komandni interpreter, djeluje u okruženju nazvanom ŠKOLJKA (shell) u kojem se izvršavaju komande zaprimljene na standardnom ulazu ili iz neke datoteke. U sebi sadrži korisne osobitosti 'Korn' i 'C' komandnih interpretera (ksh i csh shell). SH je originalna UNIX školjka, poznata i po imenu 'Bourne Shell' prema imenu programera koji ju je dizajnirao. Ostale dvije navedene školjke imaju mnoštvo moćnih osobitosti koje izvorna SH školjka nema, od kojih je dio implementiran u BASH školjku. Iz jedne školjke može se za rad pozvati druga školjka, te iz nje treća i tako u nizu. Trenutna školjka radi u prethodno aktiviranoj. Već je navedeno da se prekid izvršavanja komandi vrši s kombinacijom tipki <CTRL> + <C>, dok se izlaz iz okruženja školjke vrši s kombinacijom tipki <CTRL> + <D>. Izlaz iz prve korištene školjke u nizu znači ujedno i odjavu sa sustava.
Veličina 'bash' školjke u kB sugerira da datoteka ima poprilično sadržaja. Općenito, svaka školjka pa tako i ova, sadrži ugrađene (built-in) komande, koje su po aktiviranju školjke stalno raspoložive korisniku, a iz školjke se mogu pozvati na izvršavanje bilo koja izvršiva datoteka ili skripta iz [/bin], [/sbin], [/usr/bin] ili [/etc] imenika. Prema tom konceptu komande u imenicima [/bin], [/sbin] i [/usr/bin] mogu se shvatiti kao vanjske (slično DOS-u) i stoga se mogu izvršiti iz bilo koje školjke. Školjka se u radu oslanja na pripadne joj biblioteke, što znači da instalacija dodatnih školjki podrazumijeva instalaciju pripadnih im sadržaja (izvršive datoteke, konfiguracijske datoteke, biblioteke, dokumentacija ...) u više imenika.
Komande ugrađene u školjku
Već je navedeno da Linux razlikuje velika i mala slova, te se zadana komanda ' su ' prepoznaje, a komanda ' SU ' ne prepoznaje jer je ni nema. Gotove sve komande imaju naziv s malim slovima. Isto vrijedi i za ugrađene komande (built-in) u školjku od kojih su ključne riječi (KR) za najznačajnije navedene nadalje:
Specifične izrazi, logički i matematički operatori školjke
Osim ugrađenih komandi, koriste se i specifični izrazi, neka vrst komandi, koji se u načelu ne koriste samostalno već su to nekakve petlje brojanja ili ispitivanja. Naravno koriste se operatorima kako bi se navedeno moglo izvršiti, a podrazumijeva se da se pišu malim slovima.
Navedeno podsjeća na ključne riječi i operatore programskih jezika, pa kako se koriste i prilikom izrade skripta, zasigurno će izrada skripta za programera biti mnogo lakša od korisnika koji je u ovom području početnik.
Kombinacije tipki
Tipkovničke kratice (keyboard shortcuts) u velikoj mjeri mogu ubrzati rad na računali, te ih je stoga korisno poznavati. Važno za komandnu liniju je da se uzduž upisanog teksta pomoću tipki sa strelicama ' lijevo ' i ' desno ' može pomicati kursor duž upisane linije. U tom smislu pomažu kombinacije tipki za brzo izvršavanje nekih radnji. Manji dio tih kratica prikazan je nadalje.
Kao i za Windows operativne sustave i ovdje vrijedi, ako je instalirano grafičko sučelje - GUI, da se brz rad s računalom ostvaruje istovremenom uporabom tipkovnice i miša. Ako je riječ o poslužitelji koji nema instaliran GUI, značaj poznavanja 'tipkovničkih kratica' je još veći. Specifična programska potpora, kao ' pico ' editor, s TUI sučeljem imati će svoje 'tipkovničke kratice', koje je opet korisno naučiti.
Slijed komandi koji se izvršava pod nadzorom ljuske naziva se SKRIPTA (script). Na taj način mogu se automatizirati mnoge složene zadaće. U imeniku [/etc/] također je niz skripta koje se izvršavaju tijekom uključivanja i isključivanja računala ili tijekom samog rada. Najviše ih ima u [/etc/init.d] imeniku i [etc/rcX.d] imenicima. Znači, koriste se kada se želi zaustaviti neki servis ili pokrenuti ga ako je zaustavljen ili pak samo ponovo pokrenutu (restart), kao npr. 'DNS' ili 'apache2' servisi prema primjerima za [/etc] sadržaje, kako bi se prihvatile unesene konfiguracijske izmjene, bez ikakve potrebe da se računalo gasi te ponovo pali fizički ili na vruće (reboot). Vješt korisnik napisati će sam skripte za sve zadaće koje traže puno vremena. Slijedi par jednostavnih primjera.
Primjer V
Skripta za brisanje zastarjele elektroničke pošte, starije od 40 dana, koju lijeni korisnik ne briše.
#! /bin/zsh cd /var/mail for i in * do mail-expire --delete 40 $i chown $i:mail $i chmod 660 $i done
Svaka skripta u svom prvom redu ima zapis koji ukazuje u kojoj školjki se treba izvršiti. Ako navedene školjke nema, kao ' zsh ' u ovom primjeru, treba je instalirati na sustav ili skriptu napisati za drugu školjku. Navedeno ukazuje da se skripta može izvršiti iz bilo koje školjke bez prijelaza iz jedne školjke u drugu.
Primjer VI
Skripta za izradu popisa inficirane elektroničke pošte za određeni datum.
#! /bin/bash echo "Statistika Virusa, unesite datum" read d grep "$d" /var/log/mail/mail.info | grep INFECTED | cut -d " " -f 8 | tr -d ",()" | sort | uniq -c | sort -nr
Pisanje skripta itekako ima smisla. Tako se recimo dotjerane konfiguracijske datoteke poslužitelja mogu spremiti na stick, da bi se nakon reinstalacije ponovo postavile na poslužitelj s jednostavnom skriptom koja će ih sa stick-a kopirati na pripadno im mjesto. Ponovnim pokretanje računala očitavaju se nove konfiguracijske datoteke s postavkama koje je administrator želio. Brzo i efikasno, bez uporabe nekog editora i mnoštva kopiranja tekstualnih sadržaja. Suprotno navedenom, mogu se na stick kopirati sve originalne konfiguracije i potom 'upeći' na CD glede arhiviranja.
SAŽETAK:
No i nije baš sve tako bajno i jednostavno, sve dosad navedeno je tek vrh sante leda zvane Linux. Ima tu pod površinom jako mnogo: regularni izrazi, programiranje u npr. GNU C compileru, perlu, pythonu, i još mnogo toga, recimo za specifični servis kao web uporaba PHP (Hypertext Preprocessor - skripti jezik za izradu dinamičkih web sadržaja) i MySQL (relacijska baza podataka) postaje pravilo, što je opet ogroman dio štiva. Naime za svladati Linux do uporabe komandi na nekom poslužitelju bez straha od moguće štete i iskoristiti sve što se nudi, treba barem preuzeti dobru literaturu s Interneta u PDF formatu i neprekidno čitati :-). Cijeloživotno samoškolovanje!?
Debian je višezadačni i višekorisnički sustav, te osim korisnika ' root ' i npr. ' drago ' na sustavu može egzistirati još mnoštvo korisnika, osobito ako je u pitanju poslužitelj. Svaki od njih ima pravo na korištenje instalirane programske potpore. No da se ne bi miješali jedan u drugoga njihove osobne postavke za programsku potporu koju koriste nalaze se najčešće u imeniku [/home/korisničko_ime/]. U navedenom ima odstupanja pa se npr. nepročitana pošta korisnika čuva u datoteci [/var/mail/korisničko_ime]. Moguće je da korisnik za svoje potrebe odredi i neke druge lokacije, ili će ih definirati sama programska potpora prilikom korištenja od strane korisnika. Za specifične zahtjeve korisnik mora konsultirati administratora sustava.
Citiranje ove stranice: Radić, Drago. " Informatička abeceda " Split-Hrvatska. {Datum pristupa}; https://informatika.buzdo.com/datoteka. Copyright © by Drago Radić. Sva prava pridržana. | Odgovornost |