Zsh
# Zsh

Z shell (o simplemente zsh) es un potente intérprete de comandos para sistemas operativos de tipo Unix, como por ejemplo los BSD o GNU/Linux. La primera versión de zsh fue escrita por Paul Falstad en 1990, cuando era estudiante en la Universidad de Princeton.

Zsh se diseñó para poder usarse interactivamente. Se le han incorporado muchas de las características principales de otras shells de Unix como bash, ksh, o tcsh y además posee características propias originales.

macOS Catalina, lanzada en octubre de 2019, adoptó a Zsh como la shell predeterminada, remplazando a Bash.

## Origen

El nombre zsh procede del profesor de Yale Zhong Shao, por entonces profesor asistente en la Universidad de Princeton. Falstad pensó que su nombre de inicio de sesión, "zsh", era un buen nombre para una shell.

## Características

Las características incluyen:

* Completar la línea de comandos programable que puede ayudar al usuario a escribir tanto las opciones como los argumentos de la mayoría de los comandos utilizados, con soporte inmediato para varios cientos de comandos
* Compartir el historial entre todos los shells en funcionamiento
* El globbing de archivos extendido permite la especificación de archivos sin necesidad de ejecutar un programa externo como find
* Mejora del manejo de variables/arreglos
* Edición de comandos multilínea en una sola memoria intermedia
* Corrección ortográfica y relleno automático de los nombres de los comandos (y opcionalmente de los argumentos, que se asumen como nombres de archivo)
* Varios modos de compatibilidad, por ejemplo Zsh puede fingir ser una Bourne Shell cuando se ejecuta como /bin/sh
* Los avisos temáticos, incluyendo la capacidad de poner la información del aviso en el lado derecho de la pantalla y hacer que se oculte automáticamente cuando se teclea un comando largo
* Módulos cargables, que proporcionan entre otras cosas: controles completos TCP y sockets de dominio Unix, un cliente FTP y funciones matemáticas ampliadas.
* El comando where incorporado. Funciona como el comando which pero muestra todas las ubicaciones en los directorios especificados en $PATH en lugar de sólo el que se utilizará.
* Directorios nombrados. Esto permite al usuario establecer atajos como ~mydir, que luego se comportan de la manera ~ y ~user do.
