Być może słyszałeś o Bash — domyślnej powłoce w większości dystrybucji Linuksa. Jest jeszcze jedna powłoka, która jest preinstalowana w systemie Linux: powłoka Bourne.

Powłoka Bourne jest jedną z najstarszych powłok wciąż używanych w nowoczesnych systemach Linux, mimo że nie jest tak szeroko stosowana jak Bash. Oto, co musisz wiedzieć o powłoce Bourne'a w systemie Linux.

Co to jest powłoka Bourne'a?

Powłoka Bourne'a, często skracana do „sh”, została nazwana na cześć brytyjskiego informatyka Stephena R. Bourne, który opracował go podczas pracy w Bell Labs w 1978 roku. Powłoka zastąpiła wcześniejszą Thompson Shell, napisaną przez jednego z oryginalnych twórców Uniksa, Kena Thompsona.

Powłoka Bourne'a zadebiutowała w wersji 7 systemu Unix w 1979 roku. Miał takie funkcje, jak kontrola przepływu, zmienne i ulepszona obsługa ciągów. Te funkcje ułatwiły używanie powłoki jako języka programowania, a nie tylko sposobu wywoływania innych programów.

Chociaż powłoka Bourne'a pozostała popularna do pisania przenośnych skryptów w systemach Unix, tak było zastąpione do interaktywnego użytku przez powłokę C, KornShell, powłokę Bourne Again, znaną również jako Bash i Z powłoka. Te muszle oferowały takie funkcje, jak

instagram viewer
historia poleceń i edycja wiersza poleceń które ułatwiły życie użytkownikom i administratorom.

Powłoki KornShell, Bash i Z (omówione później) mają składnię inspirowaną powłoką Bourne'a.

Bardziej wydajne, wieloplatformowe języki skryptowe z jeszcze bardziej zaawansowanymi funkcjami, takimi jak Perl i Python, również w dużej mierze zastąpiły skrypty powłoki.

Mimo to powłoka Bourne'a jest szeroko rozumiana i wiele skryptów dostarczanych z programami Linuksa używa jej składni do różnych zadań.

Zachowanie powłoki Bourne'a zostało skodyfikowane w standardzie POSIX, tak wiele nowoczesnych systemów uniksopodobnych implementuje go w jakiś sposób przy użyciu kompatybilnej powłoki.

Nowoczesne alternatywy Bourne Shell

Istnieje kilka nowoczesnych alternatyw typu open source dla oryginalnej powłoki Bourne w systemach Linux. Oto niektóre z najbardziej znanych:

1. Skorupa Bourne'a (Bash)

Imię Powłoka Bourne Again (Bash) jest grą na muszli Bourne'a. Powłoka ta została pierwotnie opracowana jako składnik systemu GNU, poprzedzający Linuksa o kilka lat.

Jest w dużej mierze kompatybilny ze skryptami pierwotnie napisanymi dla powłoki Bourne'a. Zawierał również funkcje, takie jak edycja wiersza poleceń, której pionierem był KornShell.

Bash jest domyślną powłoką w wielu dystrybucjach Linuksa i dlatego sam stał się de facto standardem.

2. KornShell

KornShell, znany również jako ksh, został pierwotnie opracowany przez Davida Korna, również w Bell Labs, w latach 80. Zbudowany na bazie powłoki Bourne, KornShell wprowadził kilka dodatkowych funkcji, takich jak kontrola zadań, tablice i edycja wiersza poleceń. Ta ostatnia funkcja była rewolucyjną funkcją, gdy pojawiła się po raz pierwszy, ponieważ była o wiele łatwiejsza niż użycie mechanizmu historii powłoki C.

Jeśli potrzebowałeś ponownie edytować poprzednio wydane polecenie, możesz użyć do tego poleceń podobnych do Vi lub Emacsa.

KornShell był domyślny w niektórych komercyjnych systemach Linux, takich jak Oracle Solaris. Ponieważ oryginalny KornShell został początkowo wydany przez AT&T na licencji zastrzeżonej, ostatecznie wydano wersję open source o nazwie pdksh.

3. Powłoka Almquist/Debian Almquist

Powłoka Almquist została pierwotnie napisana przez Kennetha Almquista i miała być lekkim zamiennikiem powłoki Bourne. Wiele systemów BSD zawiera go jako implementację sh.

Wersja została przeniesiona do Debiana w latach 90. i jest znana jako powłoka Debian Almquist. Jak sama nazwa wskazuje, jest to implementacja sh w systemach Debian i Ubuntu.

4. Skorupa Z

Skorupa Z, lub zsh, to jedna z najnowszych powłok, pierwotnie opracowana w 1990 roku przez Paula Falsteda. Powłoka Z stała się dobrze znana ze swoich zaawansowanych funkcji. Dobrym przykładem jest rekursywne globowanie, czyli możliwość dopasowywania symboli wieloznacznych w podkatalogach.

Powłoka Z to domyślna powłoka logowania dla systemów macOS i Kali Linux.

Zgodność z Bourne Shell

Chociaż te powłoki są w dużej mierze kompatybilne ze skryptami pierwotnie napisanymi dla powłoki Bourne'a, istnieją sposoby na zmianę ich zachowania, aby bardziej przypominały oryginalną powłokę.

Głównym sposobem na to jest przejście dowiązanie symboliczne. Większość systemów będzie dowiązywać symbolicznie /bin/sh do Bash lub innej powłoki. Po wywołaniu w ten sposób powłoka wejdzie w tryb zgodności z powłoką Bourne'a.

Możesz zobaczyć, która skorupa /bin/sh jest powiązany z polecenie ls:

ls -l /bin/sh

Teraz wiesz o muszli Bourne'a

Powłoka Bourne'a jest jednym z najstarszych standardów skryptowania w systemach uniksopodobnych. Nawet jeśli został zastąpiony przez inne powłoki, nadal jest niezbędny do uruchamiania skryptów napisanych przez innych.

Bash jest jedną z najlepszych pochodnych Bourne'a do kodowania, szczególnie ze względu na podejście do zmiennych. Ma kilka unikalnych zmiennych, które mogą sprawić, że zechcesz rozważyć go przy następnym projekcie.