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

23

Entonces, la pregunta 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.

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

Andrés
fuente
1
Si eso ayuda, un artículo de 2016: stackabuse.com/zsh-vs-bash
Cœur
Esta pregunta se volvió relevante nuevamente debido a que las manzanas cambiaron a zsh
amar el

Respuestas:

16

Esto es de las preguntas frecuentes de Zsh :

2.5: Similitudes con bash

El Bourne-Again Shell, bash, es otro shell similar al Bourne mejorado; lo mas obvio
La diferencia con zsh es que no intenta emular el shell Korn. Ya que ambos
los depósitos 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 las normas (es decir, POSIX) para
más tiempo, y hasta ahora ha evitado las características interactivas más abstrusas (programables 
terminación, etc.) que tiene zsh.

Los he usado a los dos, pero prefiero Bash hoy en día porque las máquinas en las que trabajo por defecto funcionan de manera consistente. El comentario de cumplimiento de estándares es importante para mí porque eso significa consistencia entre los sistemas operativos.

Zsh tiene buenas capacidades de autocompletar, 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 "vi-mode" ( set -o vi) en Bash lo convierte en un entorno de línea de comandos mucho más agradable de lo que normalmente es, 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 es menos probable que tenga problemas de compatibilidad. Esa es solo una vieja costumbre que me ha mantenido bien.

Greg
fuente
2
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 rodeada de comillas como locate "*/vi".
Pro Backup
Pero ambos ejemplos funcionan en bash.
John Stack