Možná jste slyšeli o Bash – výchozím prostředí většiny linuxových distribucí. V Linuxu je předinstalovaný další shell: Bourne shell.
Bourne shell je jedním z nejstarších shellů, které se stále používají na moderních systémech Linux, i když není tak široce používán jako Bash. Zde je to, co potřebujete vědět o Bourne shellu v Linuxu.
Co je Bourne Shell?
Bourne shell, často zkracovaný na „sh“, je pojmenován po britském počítačovém vědci Stephenu R. Bourne, který jej vyvinul při práci v Bell Labs v roce 1978. Shell nahradil dřívější Thompson Shell, napsaný jedním z původních tvůrců Unixu, Kenem Thompsonem.
Bourne shell debutoval s verzí 7 Unix v roce 1979. Měl funkce jako řízení toku, proměnné a vylepšené zpracování řetězců. Tyto vlastnosti usnadnily použití shellu jako programovacího jazyka spíše než jen jako způsob vyvolání jiných programů.
Zatímco Bourne shell zůstal populární pro psaní přenosných skriptů napříč unixovými systémy, byl nahrazeno pro interaktivní použití shellem C, KornShell, Bourne Again shell, také známým jako Bash, a Z skořápka. Tyto mušle nabízely funkce jako
historie příkazů a editace příkazového řádku které uživatelům a správcům usnadnily život.KornShell, Bash a Z shell (probrané později) mají syntaxe ovlivněné Bourne shellem.
Výkonnější multiplatformní skriptovací jazyky s ještě pokročilejšími funkcemi jako Perl a Python také z velké části nahradily skriptování v shellu.
Přesto je Bourne shell široce chápán a mnoho skriptů dodávaných s linuxovými programy používá jeho syntaxi pro různé úkoly.
Chování Bourne shellu bylo zakódováno standard POSIX, takže mnoho moderních unixových systémů jej nějakým způsobem implementuje pomocí kompatibilního shellu.
Moderní alternativy Bourne Shell
Existuje několik open source moderních alternativ k původnímu Bourne shellu na systémech Linux. Zde jsou některé z nejznámějších:
1. Bourne Again Shell (Bash)
Název Bourne Again shell (Bash) je hra na Bourne shell. Tento shell byl původně vyvinut jako součást systému GNU a několik let předcházel Linuxu.
Je z velké části kompatibilní se skripty původně napsanými pro Bourne shell. Zahrnoval také funkce, jako je editace z příkazového řádku, kterou propagoval KornShell.
Bash je výchozí shell na mnoha distribucích Linuxu, a proto se stal de facto standardem sám o sobě.
2. KornShell
KornShell, také známý jako ksh, byl původně vyvinut Davidem Kornem, také v Bell Labs, v 80. letech. KornShell, postavený na Bourne shellu, zavedl některé další funkce, jako je ovládání úloh, pole a editace z příkazového řádku. Druhý jmenovaný byl revoluční funkcí, když se poprvé objevil, protože byl mnohem jednodušší než použití mechanismu historie shellu C.
Pokud jste potřebovali znovu upravit dříve zadaný příkaz, můžete k tomu použít příkazy podobné Vi nebo Emacs.
KornShell byl výchozí na některých komerčních systémech Linux, jako je Oracle Solaris. Protože původní KornShell původně vydal AT&T pod proprietární licencí, byla nakonec vydána open-source verze s názvem pdksh.
3. Almquist/Debian Almquist Shell
Almquist shell byl původně napsán Kenneth Almquist a byl zamýšlen jako lehká náhrada za Bourne shell. Mnoho systémů BSD to zahrnuje jako implementaci sh.
Verze byla portována do Debianu v 90. letech a je známá jako Debian Almquist shell. Jak název napovídá, jedná se o implementaci sh na systémech Debian a Ubuntu.
4. Z Shell
Z shell, nebo zsh, je jedním z nejnovějších shellů, původně vyvinutých v roce 1990 Paulem Falstedem. Z shell se stal známým pro své pokročilé funkce. Dobrým příkladem je rekurzivní globování nebo schopnost porovnat zástupné znaky v podadresářích.
Z shell je výchozí přihlašovací prostředí pro macOS a Kali Linux.
Kompatibilita Bourne Shell
I když jsou tyto shelly do značné míry kompatibilní se skripty původně napsanými pro Bourne shell, existují způsoby, jak změnit jejich chování, aby se více podobalo původnímu shellu.
Hlavní způsob, jak toho dosáhnout, je přes symbolický odkaz. Většina systémů se symbolicky propojí /bin/sh do Bash nebo jiného shellu. Když je vyvolán tímto způsobem, shell vstoupí do režimu kompatibility s Bourne shellem.
Můžete vidět, který shell /bin/sh je spojen s příkaz ls:
ls -l /bin/sh
Nyní víte o Bourne Shell
Bourne shell je jedním z nejstarších standardů pro skriptování na systémech podobných Unixu. I když byl nahrazen jinými shelly, je stále životně důležitý pro spouštění skriptů napsaných jinými.
Bash je jedním z nejlepších Bourneových derivátů pro kódování, zejména pro svůj přístup k proměnným. Má několik jedinečných proměnných, které vás mohou přimět zvážit jej pro váš další projekt.