Powłoka Bourne’a to mały program, który działa w systemach operacyjnych Unix® i LINUX® i zapewnia interfejs do wykonywania programów w systemie. Jest często określany jako interfejs wiersza poleceń lub interpreter poleceń, ponieważ nie zapewnia użytkownikowi graficznego interfejsu użytkownika (GUI). Polecenia i wszelkie niezbędne parametry do wykonania są wpisywane do powłoki. Powłoka Bourne’a jest również językiem skryptowym, umożliwiającym użytkownikom tworzenie i wykonywanie plików skryptów, które mogą przetwarzać dane w wielu programach za pomocą jednego polecenia. W systemach uniksopodobnych program ten jest po prostu znany jako „sh”.
Pierwsze takie powłoki dla systemów Unix® były znane jako powłoka Thompsona, stworzona przez Kena Thompsona, jednego z pierwotnych twórców systemu operacyjnego Unix®. Powłoka Thompsona ograniczała się do interpretacji poleceń, a szereg dodatkowych funkcji musiało być wykonywanych jako operacje zewnętrzne. Później Stephen Bourne stworzył powłokę Bourne, która zastąpiła powłokę Thompsona, dodając do samej powłoki szereg nowych funkcji, a także język skryptowy powłoki.
W rzeczywistości powłoka Bourne’a została od samego początku zaplanowana jako język skryptowy. Chociaż był to nadal interfejs wiersza poleceń dla Unix® w wersji siódmej, otworzył również możliwość tworzenia skryptów powłoki, które łączyłyby ze sobą polecenia w celu przetwarzania danych. Dzięki zastosowaniu tego programowania użytkownik może ustanowić zmienne do przechwytywania znanych lub nieznanych danych z danych wejściowych lub wyjściowych i manipulować przetwarzaniem tych danych za pomocą instrukcji warunkowych w skrypcie za pomocą techniki zwanej przepływem sterowania.
Była to również pierwsza powłoka, w której zaimplementowano funkcję znaną jako obsługa sygnałów. Za pośrednictwem powłoki Bourne’a użytkownik może wysłać określony typ sygnału do procesu już uruchomionego na komputerze, instruując ten proces, aby zrobił coś innego. Wiele z nich to sposoby na zatrzymanie wykonywanego procesu i wygenerowanie pewnego rodzaju danych wyjściowych, które można wykorzystać do debugowania, chociaż istnieją inne, aby tymczasowo zatrzymać proces, wznowić i tak dalej.
Możliwość bezpośredniego kontrolowania deskryptorów plików była kolejną nowością powłoki Bourne’a. W systemie typu Unix® każdy uruchomiony program posiada tabelę zawierającą deskryptory plików dla dowolnych otwartych plików. Może to obejmować wszystko, od prostego pliku tekstowego do katalogu, a nawet gniazd komunikacyjnych, których procesy używają do współdzielenia danych między sobą. Posiadanie przez użytkownika kontroli nad deskryptorami plików w systemie pozwalało na bezprecedensową kontrolę nad wejściem i wyjściem praktycznie wszystkiego na komputerze.
Oczywiście, mimo że powłoka Bourne’a oferowała użytkownikom taką dodatkową funkcjonalność, brakowało jej funkcji, takich jak możliwość interaktywnego sterowania procesami, ustanawiania aliasów poleceń i przechowywania historii. Później jednak pojawiło się wielu potomków, którzy wzięli najbardziej użyteczne cechy muszli, które zostały opracowane przez lata, i zwinęli je w nowe muszle. Jednym z typowych przykładów jest powłoka Bourne-again lub Bash, która jest powszechna w wielu systemach LINUX®. W rezultacie wielu z tych potomków jest w pełni zdolnych do wykonywania zwykłych skryptów powłoki Bourne’a, dając każdemu systemowi uniksowemu pewną implementację oryginalnej powłoki Bourne’a w taki czy inny sposób. W wielu systemach LINUX® jest to po prostu łącze od „sh” do „bash” lub innego zdolnego potomka.