Articulo de referencia

Carcasa Z

{{cite web|url=https://zsh.sourceforge.io/Doc/Release/Introduction.html#Author|title=The Z Shell Manual|type=Version 5.8.1|publisher=Sourceforge.io|date=July 21, 2012|access-dat...

El intérprete de comandos Z ( Zsh ) es un intérprete de comandos y un intérprete de línea de comandos para scripts de shell . Zsh mantiene en gran medida la sintaxis y el comportamiento del intérprete de comandos Bourne , pero en su configuración predeterminada se desvía de forma significativa de la especificación estándar POSIX del shlenguaje (como la eliminación de la división implícita de IFS y la expansión de comodines en las expansiones de parámetros sin comillas) y añade muchas más características.

Zsh fue creado por Paul Falstad en 1990 mientras era estudiante en la Universidad de Princeton . Combina características de ksh y tcsh (y rc en menor medida), ofreciendo funcionalidades como autocompletado programable de la línea de comandos , expansión de comodines de archivos , manejo mejorado de variables/matrices y mensajes personalizables .

Zsh está disponible para la mayoría de los sistemas operativos POSIX/Unix, así como para Microsoft Windows, como parte de Cygwin o la colección UnxUtils , y ha sido adoptado como el intérprete de comandos interactivo predeterminado para macOS , Deepin , TrueNAS y Kali Linux . El sitio web de la comunidad de usuarios "Oh My Zsh" ofrece una plataforma para complementos y temas de terceros, con una amplia y activa base de colaboradores.

Historia

Paul Falstad escribió la primera versión de Zsh en 1990 [ 5 ] mientras era estudiante en la Universidad de Princeton . [ 6 ] El nombre Zsh deriva del nombre de Zhong Shao, un asistente de enseñanza en la Universidad de Princeton. Falstad consideró que el nombre de usuario de Shao , "zsh", era un buen nombre para un intérprete de comandos. [ 7 ] [ 8 ]

Zsh se concibió inicialmente como un subconjunto de csh para Amiga , pero se expandió mucho más allá. Para cuando se lanzó la versión 1.0 en 1990, el objetivo era ser una combinación entre ksh y tcsh : un potente "lenguaje de comandos y programación" bien diseñado y lógico (como ksh), pero también creado para humanos (como tcsh), con todas las características útiles como la corrección ortográfica, la monitorización de inicio y cierre de sesión y la compatibilidad con termcap que "probablemente eran demasiado extrañas para convertirlas en un producto de AT&T". [ 9 ]

Las versiones de Zsh para Microsoft Windows han estado disponibles a través de Cygwin al menos desde alrededor de 1997 [ 10 ] , y Zsh se suministra como un paquete oficial de Cygwin [ 11 ] desde 2002. [ 12 ] [ 13 ] También está disponible como parte de la colección UnxUtils de versiones nativas para Win32 de utilidades comunes de tipo GNU Unix (aunque Zsh, a diferencia de Bash , no forma parte del propio proyecto GNU). [ 14 ]

En 2019, macOS Catalina adoptó Zsh como intérprete de comandos predeterminado para el inicio de sesión, reemplazando la versión de Bash con licencia GPLv2 , [ 15 ] y cuando Bash se ejecuta de forma interactiva en Catalina, se muestra una advertencia por defecto. [ 16 ]

El intérprete de comandos predeterminado de TrueNAS (anteriormente FreeNAS) cambió de csh a Zsh en FreeNAS 11.2, lanzado a finales de 2018. [ 17 ]

En 2020, Kali Linux adoptó Zsh como shell predeterminado desde su lanzamiento 2020.4. [ 18 ]

Características

Utilidad de configuración de la shell Z para nuevos usuarios
Zsh con el tema Agnoster ejecutándose en el emulador de terminal Konsole.

Las características incluyen: [ 19 ]

  • Autocompletado programable de línea de comandos que puede ayudar al usuario a escribir tanto opciones como argumentos para los comandos más utilizados, con soporte inmediato para varios cientos de comandos.
  • Compartir el historial de comandos entre todos los shells en ejecución.
  • La función de búsqueda de archivos extendida permite especificar archivos sin necesidad de ejecutar un programa externo como find.
  • Mejora en el manejo de variables / matrices ( numeración no basada en cero ).
  • Edición de comandos de varias líneas en un único búfer
  • Corrección ortográfica y autocompletado de nombres de comandos (y opcionalmente argumentos, presumiblemente nombres de archivos).
  • Varios modos de compatibilidad, por ejemplo Zsh puede simular ser un shell Bourne cuando se ejecuta como/bin/sh
  • Indicaciones personalizables , incluyendo la posibilidad de colocar la información de la indicación en el lado derecho de la pantalla y que se oculte automáticamente al escribir un comando largo.
  • Módulos cargables que proporcionan, entre otras cosas: control total de sockets TCP y de dominio Unix , un cliente FTP y funciones matemáticas extendidas.
  • El comando integrado where. Funciona como el whichcomando pero muestra todas las ubicaciones del comando de destino en los directorios especificados en $PATHlugar de solo la que se utilizará.
  • Directorios con nombre. Esto permite al usuario configurar accesos directos como ~mydir, que luego se comportan de la misma manera ~y ~userhacen.
  • Widgets. Tanto los widgets creados como los implementados mediante funciones ordinarias pueden asignarse a teclas de acceso rápido.
  • Carga automática de funciones. Una optimización del rendimiento para funciones que pueden precargarse y ejecutarse bajo demanda. [ 20 ] La intención de cargar funciones como archivos separados es también admitir características de funciones en diferentes versiones de Zsh.

Comunidad

Logotipo de Oh My Zsh

Un sitio web de la comunidad de usuarios conocido como "Oh My Zsh" recopila complementos y temas de terceros para el intérprete de comandos Z. A fecha de 2024, su repositorio de GitHub cuenta con más de 2300 colaboradores, más de 300 complementos y más de 140 temas. También incluye una herramienta de actualización automática que facilita mantener actualizados los complementos y temas instalados. [ 21 ]

Más allá de los marcos integrados, el repositorio comunitario independiente zsh-users en GitHub alberga varias extensiones independientes de uso generalizado. Estas incluyen zsh-completions para definiciones avanzadas de autocompletado de comandos con la tecla Tab, [ 22 ] zsh-syntax-highlighting para resaltado de línea de comandos en tiempo real, [ 23 ] y zsh-autosuggestions para recomendaciones de comandos basadas en el historial. [ 24 ] La misma organización también desarrolló Antigen, uno de los primeros gestores de complementos populares para Zsh. [ 25 ] Además, la comunidad expande activamente el ecosistema de la shell Z con gestores de configuración alternativos, como el marco de alto rendimiento Zim (zimfw), que se centra en la velocidad de ejecución, [ 26 ] y el sistema de configuración modular Veil (veil.zsh), que optimiza la estructura de configuración interna sin depender de gestores de complementos externos. [ 27 ]

Véase también

Referencias

  1. 1 2 "The Z Shell Manual" (Versión 5.8.1). Sourceforge.io. 21 de julio de 2012. Archivado del original el 20 de febrero de 2018. Recuperado el 29 de marzo de 2022 .
  2. "zsh 5.9.2" .
  3. "zsh / Código / [ 281031 ] /LICENCIA" . Paul Falstad. Archivado del original el 2 de marzo de 2021. Recuperado el 7 de febrero de 2015 .
  4. «Variante moderna de licencia MIT» .
  5. "zsh - un intérprete de comandos similar a ksh/tcsh (parte 1 de 8)" . alt.sources. 14 de diciembre de 1990. Consultado el 18 de septiembre de 2012 .
  6. "Preguntas frecuentes sobre Z-Shell" . Sourceforge.net. 15 de febrero de 2010. Archivado del original el 2 de marzo de 2021. Consultado el 18 de septiembre de 2012 .
  7. "Página de los amantes de Z-Shell (ZSH)" . Guckes.net. c. 2004. Archivado del original el 17 de mayo de 2017. Recuperado el 2 de octubre de 2012 .
  8. "Archivo de la lista de correo de Zsh" . Zsh.org. 8 de agosto de 2005. Archivado del original el 2 de marzo de 2021. Consultado el 2 de octubre de 2012 .
  9. "Anuncio de zsh 1.0" . GitHub . 15 de abril de 2021.
  10. "Archivos de la lista de correo de Cygwin" . Consultado el 12 de marzo de 2026 .
  11. "Resumen del paquete Cygwin para zsh" . Consultado el 12 de marzo de 2026 .
  12. Castro, Peter. "Archivo de la lista de correo de Cygwin Apps" . Consultado el 12 de marzo de 2026 .
  13. Castro, Peter. "Archivo de la lista de correo de Cygwin" .
  14. "Adaptaciones nativas para Win32 de algunas utilidades GNU" . Archivado del original el 9 de febrero de 2006. Consultado el 25 de julio de 2020 .
  15. Warren, Tom (4 de junio de 2019). "Apple reemplaza bash con zsh como intérprete de comandos predeterminado en macOS Catalina" . The Verge . Archivado del original el 10 de junio de 2019. Consultado el 13 de junio de 2019 .
  16. "Usa zsh como intérprete de comandos predeterminado en tu Mac - Soporte técnico de Apple" . Archivado del original el 2 de diciembre de 2019. Consultado el 1 de julio de 2019 .
  17. "Documentación de FreeNAS 11.2 - Shell" . Consultado el 12 de marzo de 2026 .
  18. "Lanzamiento de Kali Linux 2020.4 (ZSH, Bash, CME, MOTD, AWS, Docs, Win-KeX y Vagrant) | Blog de Kali Linux" . Kali Linux . Consultado el 3 de marzo de 2021 .
  19. "Preguntas frecuentes sobre Z-Shell" . zsh.sourceforge.net . Archivado del original el 2 de marzo de 2021. Consultado el 4 de marzo de 2020 .
  20. Herramientas potentes de Unix (3.ª ed.). Sebastopol (California): O'Reilly. 2003. ISBN  978-0-596-00330-2.
  21. Oh My Zsh en GitHub
  22. zsh-completions en GitHub
  23. zsh-syntax-highlighting en GitHub
  24. ^ zsh-autosuggestions en GitHub
  25. Antígeno en GitHub
  26. Zim en GitHub
  27. Veil.zsh en GitHub