Bash o Zsh, ¿cuál es la diferencia, por qué usar uno u otro? [duplicar]

Entonces, la pregunta prácticamente lo dice todo. Estoy en Snow Leopard y hago mucho desarrollo web, particularmente en Rails 3, que hace un uso intensivo de la consola.

He visto a algunos bloggers notables, etc., mencionar a Zsh como su preferencia sobre Bash, pero no sé qué diferencia haría.

¿Alguien podría darme una buena comparación de qué diferencia hay y qué podría hacer que uno prefiera una opción u otra?

Si eso ayuda, un artículo de 2016: stackabuse.com/zsh-vs-bash
Esta pregunta ha vuelto a ser relevante debido al cambio de Apple a zsh

Respuestas (1)

Esto es de las preguntas frecuentes de Zsh :

2.5: Similitudes con bash

El Bourne-Again Shell, bash, es otro shell mejorado tipo Bourne; lo mas obvio
La diferencia con zsh es que no intenta emular el shell de Korn. Ya que ambos
los shells están en desarrollo activo, probablemente no sea sensato ser demasiado específico
aquí. En términos generales, bash ha prestado más atención al cumplimiento de estándares (es decir, POSIX) para
más tiempo, y hasta ahora ha evitado las características interactivas más abstrusas (programables
finalización, etc.) que tiene zsh.

Los he usado a ambos, pero ahora prefiero Bash porque las máquinas en las que trabajo por defecto usan Bash consistentemente. El comentario sobre el cumplimiento de los estándares es importante para mí porque significa coherencia entre los sistemas operativos.

Zsh tiene buenas habilidades de autocompletado, pero seguí encontrando casos en los que no sabía lo que quería. Eso fue hace varios años, por lo que podría haber mejorado desde entonces.

Descubrí que habilitar el "modo vi" ( set -o vi) en Bash lo convierte en un entorno de línea de comandos mucho más agradable de lo que es normalmente, así que lo hago inmediatamente en mi .bashrcarchivo.

Cuando escribo scripts de shell, nunca programo ni en bash ni en zsh; programo usando sh ( /bin/sh), porque es el mínimo común denominador y el que tiene menos probabilidades de tener problemas de compatibilidad. Eso es sólo un viejo hábito que me ha soportado bien.

Una diferencia es que los caracteres comodín se comportan de manera diferente. Por ejemplo, para encontrar todas las instancias de archivos llamados "vi", se puede usar bash con el comando locate */vi. Usando zsh, el resultado para el mismo comando es zsh: no matches found: */vi. Para que la búsqueda funcione en zsh, la consulta de búsqueda debe estar entre comillas como locate "*/vi".
Pero ambos ejemplos funcionan en bash.