El shell es el intérprete de comandos en un sistema operativo como Unix o GNU/Linux, es un programa que ejecuta otros programas. Proporciona a un usuario del ordenador una interfaz al sistema Unix/GNU Linux para que el usuario pueda ejecutar diferentes comandos o utilidades/herramientas con algunos datos de entrada.
Cuando el shell ha terminado de ejecutar un programa, envía una salida al usuario en la pantalla, que es el dispositivo de salida estándar. Por esta razón, se le conoce como el “intérprete de comandos”.
El shell es mucho más que un simple intérprete de comandos, también es un lenguaje de programación en sí mismo con construcciones de lenguaje de programación completas como ejecución condicional, bucles, variables, funciones y muchas más.
Es por eso que el shell de Unix/GNU Linux es más potente en comparación con el shell de Windows.
En este artículo, echaremos un vistazo a algunas de las shells de código abierto más utilizadas en Unix/GNU Linux.
1. Shell Bash
El Bash Shell, o simplemente “Bash“, significa “Bourne Again SHell“. Es un mejoramiento de la shell original Bourne Shell (sh) y fue introducido en 1989 por Brian Fox.
A lo largo de los años, Bash se ha convertido en uno de los intérpretes de comandos más populares y ampliamente utilizados en muchas distribuciones de Linux y macOS (hasta Catalina, después de lo cual fue reemplazado por zsh).
Bash proporciona a los usuarios la capacidad de ejecutar comandos, navegar por el sistema de archivos y ejecutar scripts. Los usuarios pueden aprovechar características como historial de comandos, autocompletar con tabulación y capacidades de scripting para automatizar tareas y agilizar flujos de trabajo.
El Bash Shell ha desempeñado un papel fundamental en la evolución de la informática de código abierto, ofreciendo una interfaz consistente para que los usuarios interactúen con sus sistemas.

2. Shell Tcsh/Csh
El Tcsh (pronunciado “tee-shell“) y Csh (pronunciado “see-shell“) son shells de línea de comandos basadas en Unix que llevan décadas existiendo. Csh, o la shell C, fue desarrollada por Bill Joy a fines de la década de 1970 en la Universidad de California, Berkeley.
Introdujo varias características y sintaxis de scripting que fueron inspiradas por el lenguaje de programación C, lo que lo hizo popular entre los programadores familiarizados con C.
Tcsh es una versión mejorada de la original Csh, que significa “Tenex C Shell”, con “Tenex” siendo una referencia al sistema operativo TENEX.
Tcsh incorpora todas las características de Csh junto con mejoras adicionales, como la edición de la línea de comandos, el control de trabajos y la finalización de comandos.
Ambas shells han sido influyentes en el mundo Unix, con muchos usuarios apreciando su sintaxis de scripting única y características. Sin embargo, con el tiempo, otras shells como bash han ganado más popularidad debido a sus características extensas y adopción generalizada.
No obstante, Tcsh y Csh siguen siendo una parte integral de la historia de las shells de Unix.

3. Shell Ksh
El KornShell, comúnmente conocido como ksh, es una shell Unix que fue desarrollada por David G. Korn en AT&T Bell Laboratories a principios de la década de 1980.
Combina características de la shell C (csh) y la shell Bourne (sh), con el objetivo de proporcionar lo mejor de ambos mundos. A lo largo de los años, ksh ha sido elogiada por sus capacidades de scripting avanzadas, convirtiéndola en una favorita entre muchos administradores de sistemas y usuarios de alto nivel.
Una de las características sobresalientes de ksh es su matriz asociativa, una función que no era común en los shells de su época. También introdujo la construcción select, que facilita la generación de menús en los scripts.
Otro beneficio significativo es su capacidad de edición de la línea de comandos e historial, que luego fue adoptada por otros shells como bash.

4. Shell Zsh
El shell Zsh, a menudo simplemente referido como “Zsh”, es un poderoso shell Unix que ha ganado una popularidad notable entre los programadores y administradores de sistemas.
Nacido como una extensión del shell Bourne, Zsh incorpora características de otros shells como Bash, ksh y tcsh, ofreciendo un conjunto rico de características y un uso interactivo mejorado.
Una de las características destacadas de Zsh es su sólida capacidad de autocompletar. A diferencia de otros shells, la autocompleción de Zsh es consciente del contexto, sugiere comandos relevantes, rutas de archivo e incluso ramas de Git, lo que hace que la experiencia del usuario sea más suave e intuitiva.
Además, Zsh es altamente personalizable utilizando el Oh My Zsh marco, los usuarios pueden aplicar fácilmente temas y complementos, mejorando tanto los aspectos estéticos como funcionales de su entorno de terminal.

5. Pescado
Fish Shell es una moderna y amigable con el usuario shell de línea de comandos que busca proporcionar una interfaz interactiva e intuitiva para los usuarios.
A diferencia de los shells tradicionales como Bash o Zsh, Fish ofrece sugerencias inteligentes de forma predeterminada, lo que facilita tanto a los principiantes como a los usuarios experimentados para navegar y ejecutar comandos.
Uno de los aspectos destacados de Fish es sus sugerencias automáticas, que brindan retroalimentación en tiempo real en función de su historial de comandos, lo que permite una ejecución de comandos más rápida.
Fish también cuenta con una interfaz vibrante y colorida, con resaltado de sintaxis que facilita la lectura y comprensión de los comandos. Su configuración basada en la web permite a los usuarios personalizar su experiencia de shell sin adentrarse en archivos de configuración complejos.
Además, Fish tiene una extensa y creciente colección de complementos y temas contribuidos por la comunidad, mejorando su funcionalidad y apariencia.

Resumen
Estas no son las únicas cáscaras disponibles en Unix/GNU Linux, pero son las más comúnmente utilizadas, aparte de las que vienen preinstaladas con varias distribuciones de Linux.
I hope you find this article useful. For any additional information, please don’t hesitate to post a comment.
Source:
https://www.tecmint.com/different-types-of-linux-shells/