Recientemente, Apple anunció que a partir de la próxima versión de macOS, Catalina, adoptarán zsh como su shell por defecto en sustitución de bash. Como estudiante de ciencia de datos en ciernes, habiendo aprendido toda mi línea de comandos en bash, me pregunté cómo me afectaría esto. ¿Lo que había aprendido en bash se había vuelto inútil? Echemos un vistazo a los dos y averigüémoslo.
El «Bourne-again shell» o bash para abreviar fue creado en 1989 por Brian Fox. Es un shell de Unix y un lenguaje de comandos escrito como reemplazo del shell Bourne. Se ha distribuido ampliamente como el shell de inicio de sesión por defecto para la mayoría de las distribuciones de Linux y el macOS de Apple. Bash introdujo mejoras con respecto al shell Bourne, como su capacidad para ser utilizado como lenguaje de scripting. Los usuarios podían escribir sus propios scripts de shell para automatizar tareas.
«Z shell» o zsh para abreviar, fue creado en 1990 por Paul Falstad. También es un lenguaje de comandos y shell de Unix basado en Bourne shell con un gran número de mejoras, incluyendo algunas características de bash. Zsh también tiene la capacidad de ser utilizado como un lenguaje de scripting con la capacidad de utilizar scripts de shell. Actualmente tiene un gran seguimiento y apoyo por parte de la comunidad.
Bash vs. zsh:
En su mayor parte bash y zsh son casi idénticos lo cual es un alivio. La navegación es la misma entre los dos. Los comandos que aprendiste para bash también funcionarán en zsh aunque pueden funcionar de manera diferente en la salida. Zsh parece ser mucho más personalizable que bash. Ahora repasaré algunas características y cómo difieren en cada una.
Autocompletar
Una función útil de ambos shells son las funciones de autocompletado de pestañas. En ambos shells puedes escribir el comando seguido de pulsar el tabulador para mostrar las opciones disponibles después del comando. El autocompletado de Zsh es más rico en características, dándote una lista de opciones que pueden ser navegadas y seleccionadas por las teclas de flecha en lugar de tener que luchar con las mayúsculas y minúsculas o con una larga lista de carpetas con espacios. Zsh incluso tiene la opción de completar el tabulador para Git!
Corrección automática
Si escribes rápido y suelto, en zsh si cometes una errata mientras escribes un comando, por ejemplo, la corrección ortográfica está incorporada, detectará automáticamente la errata, y te preguntará si quieres corregirla.
Soporte de plugins
Zsh tiene una comunidad online llamada Oh My Zsh que es una de las opciones más antiguas y populares para manejar zsh. Ofrece más de 250 plugins y 140 temas diferentes suministrados por la comunidad. Esto permite a los usuarios trabajar en un entorno configurado específicamente para su flujo de trabajo. A continuación se muestra una vista previa del plug in de git.
Bash tiene un gran conjunto de funciones de programación como construcciones de bucle y condicionales, expansiones de tilde y llaves, y el uso de alias. Bash es también un shell más antiguo y establecido, lo que significa que también tiene toneladas de recursos en línea para encontrar lo que necesitas hacer. Muchas de las características de zsh se pueden replicar en bash a través de varios métodos.
Take Zsh for a Spin!
¿Quieres probar zsh antes del lanzamiento de macOS catalina? Si estás en macOS lo más probable es que ya tengas zsh en tu ordenador. Usted puede comprobar mediante la ejecución del comando: que zsh