La Bourne Shell ( sh back in the day) del ramo AT&T di Unix è stata migliorata e sostituita dalla Korn Shell, ksh . ksh è uscito anche da AT&T Bell Labs e non era GPL (la versione attuale è Eclipse Public License). C-shell, csh è uscito dalla versione Berkeley di Unix e non era anche GPL (licenza BSD) e utilizzava anche una sintassi diversa da sh. La Z-shell, zsh è un miglioramento su sh ma non su GPL (licenza simile al MIT). Bash è stato un miglioramento su sh, ha usato GPL e GNU. Solo su licenza Bash sarebbe stata probabilmente la scelta per un sistema operativo GPL. Soprattutto con un guscio che è una parte centrale di una distribuzione.
Ma Bash era anche un progetto GNU, che gli dava, credo, uno sviluppo più attivo e rendeva i contributi più facili di un prodotto legacy di Berkeley Unix o AT&T Unix. Un ottimo caso potrebbe essere che zsh sia ed è stata una shell migliore di Bash, ma non abbastanza per superare la sua diversa licenza e lo stato del progetto non GNU.
All'epoca in cui le distro Linux apparivano per la prima volta e sceglievano la loro shell predefinita (dalla prima alla metà degli anni '90), non esisteva github (2008) o persino un SourceForge (1999). A quel punto, penso che i progetti GNU abbiano avuto un reale vantaggio rispetto ai progetti non GNU nel farsi notare, disegnare e includere nuovi sviluppatori. Quindi le distro potrebbero guardare Z-shell come meglio, ma anche aspettarsi che Bash ottenga un buon supporto e manutenzione in futuro, e abbia anche più funzionalità aggiunte, che gli consentano di raggiungere zsh.
Ora che Bash ha avuto anni di status predefinito, è diventato uno standard defacto, con libri scritti al riguardo. C'è un libro che copre sia Bash che Z-shell , ma nessun libro che lo copre esclusivamente, mentre ce ne sono molti che lo fanno per Bash.
E a questo punto, se le distro cambiassero il valore predefinito per gli aggiornamenti di un sistema esistente, si romperanno le configurazioni poiché alcuni file di inizializzazione hanno nomi diversi (ad es. .Bashrc contro .zshrc) e il contenuto dei file potrebbe avere sintassi incompatibile. Quindi sarebbero molto riluttanti a farlo, lasciando nuovi download con zsh come predefinito e gli aggiornamenti con bash. Due impostazioni predefinite diverse per la stessa distribuzione sono qualcosa che probabilmente non vogliono supportare e che anche gli utenti / aziende non vogliono occuparsi.
ksh
, è anche vero che la maggior parte delle persone usa una shell diversa, e questo di per sé spiegherebbe perchéksh
non è la shell predefinita. Comunque non credo sia questo il motivo, aspettiamo qualche risposta killer che sono sicuro che questa domanda riceverà.