Una shell è un ambiente in cui possono essere eseguiti vari comandi, fornisce un'interfaccia tra l'utente e il sistema UNIX. Fondamentalmente, una shell è un interprete della riga di comando che interpreta i comandi forniti dall'utente, può anche leggere la combinazione di tali comandi, nota come script di shell. La shell ci fornisce un ambiente in cui possiamo eseguire i nostri comandi, script e programmi.
Qui in questo articolo distingueremo tra le due shell più popolari bash E zsh .
Bash (shell Bourne-Again)
Bash, o Bourne-Again Shell, è di gran lunga la shell più utilizzata e viene installata come shell predefinita nelle distribuzioni Linux più popolari. Bash è la shell di accesso predefinita per la maggior parte delle distribuzioni Linux. È accessibile anche per Windows ed è la shell utente predefinita in Ubuntu, Linux Mint, Solaris 11, Pop OS, ecc.
Zsh (guscio Z)
Zsh è anche un ambiente che può essere utilizzato come interprete della riga di comando per lo scripting della shell o come shell di accesso interattiva. Zsh è la shell predefinita per macOS e Kali Linux. Zsh offre all'utente maggiore flessibilità fornendo varie funzionalità come supporto plug-in, migliore personalizzazione, supporto temi, correzione ortografica, ecc.

Tabella delle differenze tra Bash e Zsh
| Bash | Zsh |
|---|---|
| Bash è la shell predefinita per Linux e viene rilasciata in sostituzione di Bourne Shell. | La shell Z è costruita sopra la shell bash ed è una versione estesa di bash con molte nuove funzionalità. |
| Bash legge il file .bashrc nella shell interattiva non di login e .bash_profile nelle shell di login. | Zsh legge .zshrc in una shell interattiva e .zprofile in una shell di login. |
| Bash utilizza la barra rovesciata. | Zsh utilizza gli escape percentuali. |
| Bash non ha un'espansione di caratteri jolly in linea. | Zsh ha un'espansione con caratteri jolly incorporata. |
| Non ha opzioni di personalizzazione. | Zsh ha molti framework che forniscono personalizzazione. |
| Non ha molti temi e supporto plug-in. | Ha molti plug-in e temi. |
| Bash non dispone di funzionalità di evidenziazione della sintassi e di correzione automatica. | Zsh ha funzionalità di evidenziazione della sintassi e di correzione automatica. |
| In bash la combinazione di tasti viene eseguita utilizzando '.inputrc' e 'bind builtin'. | In zsh l'associazione viene eseguita utilizzando 'bindkey builtin'. |