Što je Bourne Shell?

Bourneova ljuska je mali program koji radi na Unix® i LINUX® operativnim sustavima i pruža sučelje za izvršavanje programa na sustavu. Često se naziva sučelje naredbenog retka ili interpreter naredbi, jer korisniku ne pruža grafičko korisničko sučelje (GUI). Naredbe i svi potrebni parametri koji se trebaju izvršiti upisuju se u ljusku. Bourneova ljuska također je skriptni jezik, koji korisnicima omogućuje stvaranje i izvršavanje skriptnih datoteka koje mogu obraditi podatke kroz više programa putem jedne naredbe. Na sustavima sličnim Unixu, program je jednostavno poznat kao “sh”.

Prve takve ljuske za Unix® sustave bile su poznate kao Thompsonova ljuska, koju je stvorio Ken Thompson, jedan od izvornih kreatora Unix® operativnog sustava. Thompsonova ljuska bila je ograničena na interpretaciju naredbi, a brojne dodatne funkcije morale su se izvršiti kao vanjske operacije. Kasnije je Stephen Bourne stvorio Bourneovu ljusku kako bi zamijenio Thompsonovu ljusku, dodajući niz novih značajki u samu ljusku, kao i skriptni jezik ljuske.

U stvarnosti, Bourneova ljuska je bila planirana kao skriptni jezik od samog početka. Iako je to još uvijek bilo sučelje naredbenog retka za Unix® verziju sedam, također je otvorilo mogućnost korisnicima da razviju shell skripte koje bi povezivale naredbe zajedno u svrhu obrade podataka. Korištenjem ovog programiranja, korisnik može uspostaviti varijable za hvatanje poznatih ili nepoznatih podataka s ulaza ili izlaza i manipulirati obradom tih podataka korištenjem uvjetnih iskaza u skripti putem tehnike koja se naziva kontrolni tijek.

Ovo je također bila prva ljuska koja je implementirala značajku poznatu kao rukovanje signalom. Kroz Bourneovu ljusku, korisnik može poslati određenu vrstu signala procesu koji je već pokrenut na računalu, nalažući tom procesu da učini nešto drugo. Mnogi od njih su načini da se zaustavi proces koji se izvršava i proizvede neku vrstu izlaza koji se može koristiti za otklanjanje pogrešaka, iako postoje drugi za privremeno zaustavljanje procesa, nastavak i tako dalje.

Mogućnost izravnog upravljanja deskriptorima datoteka bila je još jedna prva za Bourneovu ljusku. Na sustavu sličnom Unixu, svaki pokrenuti program ima tablicu koja navodi deskriptore datoteka za sve otvorene datoteke. To može uključivati ​​bilo što, od jednostavne tekstualne datoteke do direktorija ili čak komunikacijskih utičnica koje procesi koriste za međusobno dijeljenje podataka. Da bi korisnik imao kontrolu nad deskriptorima datoteka na sustavu, omogućio je neviđenu kontrolu nad ulazom i izlazom za gotovo sve na računalu.

Naravno, iako je Bourneova ljuska korisnicima nudila takvu dodatnu funkcionalnost, nedostajale su joj značajke poput mogućnosti interaktivne kontrole procesa, uspostavljanja aliasa naredbi i zadržavanja povijesti. Međutim, kasnije se počelo pojavljivati ​​niz potomaka koji su uzeli najkorisnije značajke ljuske koje su osmišljene tijekom godina i umotale ih u nove školjke. Jedan uobičajen primjer je Bourne-again shell, ili Bash, koji je uobičajen na mnogim LINUX® sustavima. Kao rezultat toga, mnogi od ovih potomaka u potpunosti su sposobni izvršavati redovite skripte Bourneove ljuske, dajući svakom sustavu sličnom Unix®-u neku implementaciju izvorne Bourneove ljuske na ovaj ili onaj način. Na mnogim LINUX® sustavima, ovo je jednostavno veza od “sh” do “bash” ili nekog drugog sposobnog potomka.