Diferencia entre Zsh vs Bash
- Zsh se llama Z Shell, que es una extensión de Bash que tiene muchas características y temas nuevos. Zsh fue lanzado en 1990 por Paul Falstad. Zsh también tiene similitudes con el shell Korn. Linux y Mac OS usan Bash como su shell predeterminado.
- Bash es la abreviatura del shell Bourne-again. En 1971, se lanzó el sistema operativo UNIX junto con el shell Thompson. En 1979, Thompson Shell fue modificado y lanzado como Bourne Shell. Brian Fox lanzó Bash en 1989 para su proyecto que proporcionó mejoras de sus versiones anteriores. La versión Bash mejoró su uso como lenguaje de script. El Zsh predeterminado es diferente de Bash.
Comparación cabeza a cabeza entre Zsh y Bash (infografía)
A continuación se muestra la comparación de 36 principales entre Zsh vs Bash:
Diferencias clave entre Zsh vs Bash
Discutamos algunas de las principales diferencias clave entre Zsh y Bash:
- Zsh es más interactivo y personalizable que Bash.
- Zsh tiene soporte de punto flotante que Bash no posee.
- Las estructuras de datos de hash son compatibles con Zsh que no están presentes en Bash.
- Las características de invocación en Bash son mejores cuando se compara con Zsh.
- El aspecto rápido se puede controlar en Bash, mientras que Zsh es personalizable.
- Los archivos de configuración son .bashrc en shells interactivos sin inicio de sesión y .profile o .bash_profile en shells de inicio de sesión de Bash. En Zsh, los shells sin inicio de sesión son .zshrc y los shells de inicio de sesión son .zprofile.
- Las matrices Zsh se indexan de 1 a longitud, mientras que Bash se indexa de -1 a longitud.
- En Zsh, si los patrones comodín no coinciden con ningún archivo, arroja un error. Mientras que en Bash, se deja sin cambios.
- El lado derecho de una tubería se ejecuta como un shell principal en Zsh, mientras que en Bash, se ejecuta como un subshell.
- En Zsh, la función zmv se usa para renombrar en masa, mientras que en Bash tenemos que usar la función de expansión de parámetros.
- Bash tiene buenas capacidades de secuencias de comandos en una sola línea, mientras que en Zsh no pudimos encontrar lo mismo.
- La salida se almacena en un archivo temporal de forma predeterminada en Zsh, mientras que en Bash no lo está.
- Muchas funciones integradas en Bash hacen que los programas complejos sean fáciles, mientras que en Zsh las funciones integradas para programas complejos son menos.
- Zsh administra sus archivos de manera efectiva, mientras que Bash no es bueno para operar sus archivos.
Tabla comparativa de Zsh vs Bash
La siguiente tabla resume las comparaciones entre Zsh y Bash:
No Señor. | Zsh | Golpetazo |
1 | Los usuarios son menos en comparación con Bash | Los usuarios son más y, por lo tanto, el apoyo de la comunidad también |
2 | La finalización automática es más rápida. | La finalización automática no es más rápida que Zsh |
3 | Zsh tiene expansión de comodines en línea | Bash no tiene expansión comodín en línea |
4 4 | La finalización de la pestaña es como un menú desplegable en Zsh. | La finalización de tabulación es como una salida de comando en Bash. |
5 5 | Zsh tiene alias de comando de prefijo y sufijo. | Bash no tiene alias de comando de prefijo y sufijo. |
6 6 | Zsh sigue el estándar POSIX más de cerca. | Bash no sigue el estándar POSIX tanto como Zsh. |
7 7 | La funcionalidad de Zsh es más configurable. | La funcionalidad Bash no es muy configurable. |
8 | La pestaña se usa para navegar entre las opciones. | No existe tal opción en Bash. |
9 9 | Zsh tiene muchos temas y complementos | La opción bash para temas y complementos es menor. |
10 | Un cambio de nombre de directorio se puede hacer fácilmente en Zsh. | El nombre del directorio no se puede cambiar automáticamente en Bash. |
11 | Zsh arreglará la ortografía y la finalización de las palabras. | Bash no arreglará nada por sí mismo. |
12 | Mientras toma el valor de una variable, Zsh tiene muchas formas de aplicar la transformación. | Bash tiene muy pocas formas de aplicar la transformación a la variable. |
13 | Los calificadores globales en Zsh muestran archivos coincidentes basados en metadatos. | Bash no tiene clasificatorios Glob. |
14 | Los patrones comodín adicionales se habilitan automáticamente en Zsh. | En Bash, se habilitan patrones comodín adicionales con la ayuda de shopt -s extglob. |
15 | # no se trata como un comentario por defecto en Zsh. | En Bash, # se considera un comentario por defecto. |
dieciséis | Zsh ha configurado la configuración. | Bash tiene configuraciones de tienda. |
17 | Zsh completa los comandos y nombres de archivos ejecutando compinit. | Bash completa los nombres de comandos y archivos ejecutando bash_completion. |
18 años | Zsh es más preciso y si algo está mal, muestra un error. | Bash hace cosas por sí mismo que pueden no ser correctas sino sensatas. |
19 | El indicador de Zsh contiene porcentajes de escape. | La solicitud de Bash tiene escapes de barra invertida. |
20 | Usando Zsh, podemos crear indicaciones elegantes. | En Bash, no podemos crear avisos sofisticados. |
21 | Las teclas de enlace en Zsh se realizan mediante la tecla de enlace. incorporado. | Bash usa .inputrc y el enlace incorporado para enlazar claves. |
22 | Los ajustes de configuración del usuario se almacenan en .zshrc. | Los ajustes de configuración del usuario se almacenan en .bashrc. |
23 | Zsh tiene la comunidad Oh-my-Zsh para ayudar en la creación de scripts. | Bash no tiene una comunidad definida como tal, pero como es antigua, hay muchas comunidades en línea que admiten en la creación de secuencias de comandos. |
24 | Zsh puede mostrar una pantalla dividida similar a la pantalla dividida de vim. | No existe tal opción en Bash. |
25 | Los cálculos se pueden hacer en Zsh usando el comando zcalc. | La calculadora externa Expr y bc se usa en Bash para hacer cálculos. |
26 | En Zsh, el comando zparseopts se usa para analizar el script. | El comando incorporado de Getopts se usa en Bash para analizar secuencias de comandos. |
27 | Los alias expandidos se permiten en cualquier lugar de una línea si el alias se usa en el comando. | Bash no permite esta función en la línea. |
28 | Los scripts de entorno de Zsh son zlogin, zlogout, zprofile, zshenv, zshrc. | Bash no tiene muchos scripts de entorno. |
29 | Mientras se inicia, Shellopts no se ejecuta. | Shellopts se ejecuta automáticamente mientras se inicia el Bash. |
30 | Las secuencias de comandos no son tan buenas en comparación con Bash. | Bash tiene buenas capacidades de secuencias de comandos. |
31 | El historial se comparte en todas las instancias en Zsh | Compartir historias no es tan fácil en Bash. |
32 | Zsh no es similar a Emacs en absoluto. | Los atajos en Bash son muy similares a Emacs. |
33 | La personalización se realiza durante el proceso de instalación en Zsh. | La personalización se realiza comprobando los ajustes de configuración en Bash. |
34 | Los archivos de configuración no son fáciles de explorar. | Los archivos de configuración se hacen fáciles en Bash. |
35 | Zsh tiene muchas características avanzadas. | Las características no son avanzadas. |
36 | La finalización automática es una característica de Zsh. | Los complementos de terceros deben instalarse para la finalización automática. |
Conclusión
Las características de configuración interactivas tienen muchas diferencias al comparar Zsh y Bash. Zsh es conocido por su extensibilidad, buena personalización y funciones avanzadas. Como Zsh está hecho de Bash, casi el 90% de las secuencias de comandos es similar y es compatible con Bash. Tanto Zsh como Bash tienen muchas similitudes y son fácilmente portátiles. Muchos sistemas comenzaron a usar Zsh como su shell predeterminado.
Artículos recomendados
Esta es una guía de Zsh vs Bash. Aquí también discutimos las diferencias clave entre Zsh y Bash con la comparación directa (infografía) y la tabla de comparación. También puede echar un vistazo a los siguientes artículos para obtener más información:
- Óxido vs C ++
- Dirección física versus dirección lógica
- List vs Set - Comparaciones útiles
- Array vs ArrayList