Co je shell?
Shell je program, který poskytuje rozhraní mezi uživatelem a jádrem operačního systému (OS). Operační systém spouští shell pro každého uživatele, když se uživatel přihlásí nebo otevře terminálové či konzolové okno.
Jádro je program, který:
- Řídí všechny operace počítače.
- Koordinuje všechny prováděné nástroje
- Zajišťuje, aby se prováděné nástroje navzájem nerušily a nespotřebovávaly všechny systémové prostředky.
- Rozvrhuje a řídí všechny systémové procesy.
Prostřednictvím rozhraní s jádrem poskytuje shell uživateli možnost spouštět nástroje a programy.
Uživatelské prostředí
Prostředí shellu poskytuje také uživatelské prostředí, které lze přizpůsobit pomocí inicializačních souborů. Tyto soubory obsahují nastavení vlastností uživatelského prostředí, jako jsou:
- Vyhledávací cesty pro vyhledávání příkazů.
- Výchozí oprávnění pro nové soubory.
- Hodnoty proměnných, které používají ostatní programy.
- Hodnoty, které si můžete přizpůsobit.
Jaké jsou různé shelly?
Následující části popisují shelly operačních systémů, které jsou většinou dostupné v operačním systému UNIX/Linux. Popsány jsou také funkce shellu a jejich výchozí výzvy.
The Bourne Shell
The Bourne shell (sh), napsaný Stevem Bournem v AT&T Bell Labs, je původní shell systému UNIX. Je to preferovaný shell pro programování v shellu díky své kompaktnosti a rychlosti. Nevýhodou Bourneova shellu je, že postrádá funkce pro interaktivní použití, například možnost vyvolání předchozích příkazů (historie). Bourne shell také postrádá vestavěné zpracování aritmetických a logických výrazů.
Bourne shell je výchozím shellem operačního systému Solaris. Je to standardní shell pro skripty správy systému Solaris. Pro shell Bourne platí:
- Jméno plné cesty příkazu je /bin/sh a /sbin/sh.
- Výchozí výzva uživatele bez rootu je $.
- Výchozí výzva uživatele s rootem je #.
Pouzdro C
Pouzdro C (csh):
- Je vylepšení systému UNIX, které napsal Bill Joy na Kalifornské univerzitě v Berkeley.
- Obsahuje funkce pro interaktivní použití, například aliasy a historii příkazů.
- Obsahuje pohodlné programovací funkce, jako je vestavěná aritmetika a syntaxe výrazů podobná jazyku C.
Pro shell C:
- Jméno plné cesty příkazu je /bin/csh.
- Výchozí výzva uživatele bez roota je hostname %.
- Výchozí výzva uživatele root je hostname #.
Pouzdro Korn
Pouzdro Korn (ksh):
- Napsal ho David Korn v AT&T Bell Labs
- Je nadmnožinou prostředí Bourne.
- Podporuje vše, co prostředí Bourne.
- Má interaktivní funkce srovnatelné s funkcemi shellu C.
- Obsahuje pohodlné programovací funkce, jako je vestavěná aritmetika a pole, funkce a prostředky pro manipulaci s řetězci podobné jazyku C.
- Je rychlejší než shell C.
- Spustí skripty napsané pro shell Bourne.
Pro shell Korn platí:
- Jméno plné cesty příkazu je /bin/ksh.
- Výchozí výzva uživatele bez roota je $.
- Výchozí výzva uživatele s rootem je #.
Pouzdro GNU Bourne-Again
Pouzdro GNU Bourne-Again (bash):
- Je kompatibilní s Bourneovým prostředím.
- Obsahuje užitečné funkce z prostředí Korn a C.
- Pouzdro GNU Bourne-Again je kompatibilní s Bourneovým prostředím.
- Má šipky, které jsou automaticky mapovány pro vyvolání a úpravu příkazů.
Pro shell GNU Bourne-Again:
- Jméno plné cesty příkazu je /bin/bash.
- Výchozí výzva pro uživatele, který není root, je bash-x.xx$. (Kde x.xx označuje číslo verze shellu. Například bash-3.50$)
- Výchozí výzva uživatele root je bash-x.xx#. (Kde x.xx označuje číslo verze shellu. Například bash-3.50$#)
Tady je krátké srovnání všech 4 shellů a jejich vlastností.
Shell | Path | Výchozí výzva (ne.uživatel root) | Výchozí výzva (uživatel root) |
---|---|---|---|
Pouzdro Bourne (sh) | /bin/sh a /sbin/sh | $ | # |
Pouzdro C Shell (csh) | /bin/csh | % | # |
The Korn Shell (ksh) | /bin/ksh | $ | # |
The GNU Bourne-Shell (Bash) | /bin/bash | bash-x.xx$ | bash-x.xx# |