Lupina Bourne je majhen program, ki deluje v operacijskih sistemih Unix® in LINUX® in zagotavlja vmesnik za izvajanje programov v sistemu. Pogosto se imenuje vmesnik ukazne vrstice ali tolmač ukazov, saj uporabniku ne zagotavlja nobenega grafičnega uporabniškega vmesnika (GUI). Ukazi in vsi potrebni parametri, ki jih je treba izvesti, se vnesejo v lupino. Lupina Bourne je tudi skriptni jezik, ki uporabnikom omogoča ustvarjanje in izvajanje skriptnih datotek, ki lahko obdelujejo podatke prek več programov z enim samim ukazom. Na sistemih, podobnih Unix®, je program preprosto znan kot »sh«.
Prve takšne lupine za sisteme Unix® so bile znane kot lupina Thompson, ki jo je ustvaril Ken Thompson, eden od prvotnih ustvarjalcev operacijskega sistema Unix®. Thompsonova lupina je bila omejena na interpretacijo ukazov, številne dodatne funkcije pa je bilo treba izvesti kot zunanje operacije. Kasneje je Stephen Bourne ustvaril Bournovo lupino, da bi nadomestil Thompsonovo lupino in dodal številne nove funkcije v samo lupino, pa tudi skriptni jezik lupine.
V resnici je bila Bournova lupina načrtovana kot skriptni jezik že od samega začetka. Čeprav je bil še vedno vmesnik ukazne vrstice za Unix® različico XNUMX, je uporabnikom odprl tudi možnost, da razvijejo skripte lupine, ki bi povezovali ukaze med seboj za obdelavo podatkov. Z uporabo tega programiranja lahko uporabnik vzpostavi spremenljivke za zajemanje znanih ali neznanih podatkov iz vhoda ali izhoda in manipulira z obdelavo teh podatkov z uporabo pogojnih stavkov v skriptu s tehniko, imenovano kontrolni tok.
To je bila tudi prva lupina, ki je implementirala funkcijo, znano kot ravnanje s signalom. Preko Bournove lupine lahko uporabnik pošlje določeno vrsto signala procesu, ki se že izvaja v računalniku, in temu procesu naroči, naj naredi nekaj drugega. Mnogi od teh načinov so načini za ustavitev procesa, ki se izvaja, in izdelavo neke vrste izhodnih podatkov, ki jih je mogoče uporabiti za odpravljanje napak, čeprav drugi obstajajo za začasno zaustavitev procesa, nadaljevanje in tako naprej.
Možnost neposrednega nadzora deskriptorjev datotek je bila še ena prva za Bournovo lupino. V sistemu, podobnem Unix®, ima vsak delujoči program tabelo, v kateri so navedeni deskriptorji datotek za vse odprte datoteke. To lahko vključuje vse, od preproste besedilne datoteke do imenika ali celo komunikacijskih vtičnic, ki jih procesi uporabljajo za izmenjavo podatkov med seboj. Da bi imel uporabnik nadzor nad deskriptorji datotek v sistemu, je omogočil nadzor nad vhodom in izhodom brez primere za skoraj vse v računalniku.
Seveda, čeprav je lupina Bourne uporabnikom ponujala takšno dodatno funkcionalnost, ji je manjkalo funkcij, kot so zmožnost interaktivnega nadzora procesov, vzpostavljanja vzdevkov ukazov in ohranjanja zgodovine. Kasneje pa so se začeli pojavljati številni potomci, ki so vzeli najbolj uporabne lastnosti lupine, ki so jih izmislili skozi leta, in jih zvili v nove lupine. Eden pogostih primerov je lupina Bourne-again ali Bash, ki je pogosta v mnogih sistemih LINUX®. Posledica tega je, da so mnogi od teh potomcev v celoti sposobni izvajati običajne skripte Bournove lupine, kar vsakemu sistemu, podobnemu Unixu®, na tak ali drugačen način daje neko implementacijo izvirne Bournove lupine. V mnogih sistemih LINUX® je to preprosto povezava od »sh« do »bash« ali kakšnega drugega sposobnega potomca.