Shell je prostředí, ve kterém lze provádět různé příkazy, poskytuje rozhraní mezi uživatelem a systémem UNIX. Shell je v podstatě interpret příkazového řádku, který interpretuje příkazy zadané uživatelem, může také číst kombinaci takových příkazů, která je známá jako skript shellu. Shell nám poskytuje prostředí, ve kterém můžeme spouštět naše příkazy, skripty a programy.
Zde v tomto článku budeme rozlišovat mezi dvěma nejoblíbenějšími shelly bash a zsh .
Bash (Bourne-Again shell)
Bash, neboli Bourne-Again Shell, je zdaleka nejpoužívanějším shellem a dodává se jako výchozí shell v nejpopulárnějších distribucích Linuxu. Bash je výchozí přihlašovací shell pro většinu distribucí Linuxu. Je také přístupný pro Windows a je to výchozí uživatelský shell v Ubuntu, Linux Mint, Solaris 11, Pop OS atd.
Zsh (Z shell)
Zsh je také prostředí, které lze použít jako interpret příkazového řádku pro skriptování shellu nebo jako interaktivní přihlašovací shell. Zsh je výchozí prostředí pro macOS a Kali Linux. Zsh poskytuje uživateli větší flexibilitu tím, že poskytuje různé funkce, jako je podpora zásuvných modulů, lepší přizpůsobení, podpora motivů, opravy pravopisu atd.

Tabulka rozdílů mezi Bash a Zsh
| Bash | Zsh |
|---|---|
| Bash je výchozí shell pro Linux a je vydán jako náhrada za Bourne Shell. | Z shell je postaven na horní části bash shellu a je rozšířenou verzí bash se spoustou nových funkcí. |
| Bash čte soubor .bashrc v interaktivním prostředí bez přihlášení a .bash_profile v přihlašovacím prostředí. | Zsh čte .zshrc v interaktivním prostředí a .zprofile v přihlašovacím prostředí. |
| Bash používá zpětné lomítko escape. | Zsh používá procentuální úniky. |
| Bash nemá vložené rozšíření zástupných znaků. | Zsh má vestavěné rozšíření zástupných znaků. |
| Nemá možnosti přizpůsobení. | Zsh má mnoho rámců, které poskytují přizpůsobení. |
| Nemá mnoho témat a podporu plug-inů. | Má spoustu zásuvných modulů a témat. |
| Bash postrádá funkce zvýraznění syntaxe a automatických oprav. | Zsh má funkce zvýraznění syntaxe a automatických oprav. |
| V bash se přiřazování kláves provádí pomocí „.inputrc“ a „bind builtin“. | V zsh se vazba provádí pomocí „bindkey builtin“. |