25 votos

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

Así que la pregunta lo dice todo. Estoy en Snow Leopard, y hago un montón de desarrollo web, en particular en Rails 3 que hace un uso intensivo de la consola.

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

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

1 votos

2 votos

Si eso ayuda, un artículo de 2016: stackabuse.com/zsh-vs-bash

0 votos

Esta pregunta ha vuelto a ser relevante debido al cambio de las manzanas a zsh

17voto

81bronco Puntos 7071

Esto es de la Zsh FAQ :

2.5: Similarities with bash

The Bourne-Again Shell, bash, is another enhanced Bourne-like shell; the most obvious 
difference from zsh is that it does not attempt to emulate the Korn shell. Since both 
shells are under active development it is probably not sensible to be too specific 
here. Broadly, bash has paid more attention to standards compliancy (i.e. POSIX) for 
longer, and has so far avoided the more abstruse interactive features (programmable 
completion, etc.) that zsh has.

He usado ambos, pero ahora prefiero Bash porque las máquinas en las que trabajo tienen por defecto Bash. El comentario sobre el cumplimiento de los estándares es importante para mí porque eso significa consistencia entre los sistemas operativos.

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

He comprobado que activar 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 .bashrc archivo.

Cuando escribo shell scripts no programo nunca ni en bash ni en zsh - programo usando sh ( /bin/sh ), porque es el mínimo común denominador y el que menos problemas de compatibilidad tiene. Es un viejo hábito que me ha servido de mucho.

2 votos

Una de las diferencias es que los caracteres comodín se comportan de forma diferente. Por ejemplo, para encontrar todas las instancias de archivos llamados "vi" se puede utilizar 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 tiene que estar rodeada de comillas como locate "*/vi" .

0 votos

Pero ambos ejemplos funcionan en bash.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X