El Bourne Shell ( sh back in the day) de la rama AT&T de Unix fue mejorado y reemplazado por el Korn Shell, ksh . ksh también salió de AT&T Bell Labs y no era GPL (la versión actual es Eclipse Public License). El C-shell, csh salió de la versión Berkeley de Unix y tampoco era GPL (licencia BSD) y también usaba una sintaxis diferente a la sh. El Z-shell, zsh es una mejora en sh pero no GPL (licencia tipo MIT). Bash fue una mejora en sh, usó la GPL y de GNU. Solo con licencia, Bash probablemente habría sido la opción para un sistema operativo GPL. Particularmente con un caparazón que es una parte central de una distribución.
Pero Bash también fue un proyecto GNU, lo que le dio, creo, un desarrollo más activo y facilitó las contribuciones que un producto heredado de Berkeley Unix o AT&T Unix. Un buen caso podría ser que zsh es y ha sido un shell mejor que Bash, pero no lo suficiente como para superar su licencia diferente y el estado del proyecto que no es GNU.
Cuando las distribuciones de Linux aparecieron por primera vez y eligieron su shell predeterminado (desde principios hasta mediados de los 90), no había github (2008) o incluso un SourceForge (1999). En ese momento, creo que los proyectos GNU tenían una ventaja real sobre los proyectos que no son GNU para hacerse notar y dibujar e incluir nuevos desarrolladores. Por lo tanto, las distribuciones podrían considerar a Z-shell como mejor, pero también esperar que Bash obtenga un buen soporte y mantenimiento en el futuro, y también tener más características agregadas, lo que le permitirá alcanzar zsh.
Ahora que Bash ha tenido años de estado predeterminado, se ha convertido en un estándar de facto, con libros escritos al respecto. Hay un libro que cubre tanto Bash como Z-shell , pero no hay un libro que lo cubra exclusivamente, mientras que hay varios que lo hacen para Bash.
Y en este punto, si las distribuciones cambiaran el valor predeterminado para las actualizaciones de un sistema existente, se romperían las configuraciones ya que algunos de los archivos de inicialización tienen nombres diferentes (por ejemplo .bashrc versus .zshrc) y el contenido de los archivos puede tener una sintaxis incompatible. Por lo tanto, serían muy reacios a hacer eso, dejando que las nuevas descargas tengan zsh como predeterminado y las actualizaciones tengan bash. Dos valores predeterminados diferentes para la misma distribución es algo que probablemente no quieren tener que apoyar y los usuarios / empresas tampoco quieren tratar.
ksh
, entonces también es cierto que la mayoría de las personas usa un shell diferente, y esto en sí mismo explicaría por quéksh
no es el shell predeterminado. Sin embargo, no creo que esa sea la razón, esperemos una respuesta asesina que estoy seguro de que esta pregunta recibirá.