sh vs bash : Shrnutí

Dub 18, 2021
admin

Pokud čtete tento článek, pak je velká pravděpodobnost, že jste se v minulosti setkali s pojmy shell, sh, bash atd. Tyto termíny mohou znít matoucí, a protože spolu úzce souvisejí, je to ještě horší. Proto jsem se rozhodl napsat tento příspěvek s cílem pokusit se vysvětlit rozdíly mezi nimi.

Shell vs. jádro

Než budeme pokračovat, je důležité, abychom pochopili, co znamenají pojmy shell a jádro.

Jádro

Jádro je centrem operačního systému. Je zodpovědné za činnosti, jako je interakce s hardwarem, provádění vstupů a výstupů ze souborů a spouštění procesů.

Shell

Shell funguje jako rozhraní mezi uživatelem a jádrem. Technicky vzato je shell interpret příkazového řádku, tj. program, který buď interpretuje příkazy zadané v emulátoru terminálu (interaktivní režim), nebo zpracovává skripty shellu (textové soubory obsahující příkazy).

Když už máme představu o tom, co je shell a jádro, můžeme se pokusit porozumět jazykům sh a Bash.

sh

Přísně vzato je sh (neboli příkazový jazyk shell) programovací jazyk popsaný standardem POSIX. Klíčové zde je, že sh není ve skutečnosti programovací jazyk sám o sobě. Je to pouze specifikace. Specifikace je podrobný popis syntaxe a sémantiky tohoto jazyka. Specifikace nezahrnuje implementaci.

Bash

Existují různé operační systémy s vlastními shelly a jádrem. Bash je shell pro operační systém GNU. Můžeme ale také říci, že bash je programovací jazyk.

Počkat, není to matoucí? Je bash zároveň shell i programovací jazyk?“

Přemýšlejte o pythonu. Python můžeme také spustit v interaktivním režimu a chová se jako shell. Nebo JavaScript, Ruby či jiný skriptovací jazyk.

Dává to smysl?

Takže bash je programovací jazyk, který lze považovat za implementaci jazyka sh (i když to se časem změnilo).

Shrnuto a podtrženo, sh je specifikace, bash je implementace.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.