¿Qué es el Bash Shell y por qué es tan importante para Linux?

El proyectil Bash tiene más de 30 años y sigue siendo fuerte. ¿Qué hace, de dónde vino y por qué sigue siendo el shell más común en los sistemas Linux?

¿Qué es un Shell?

Cuando abres una ventana de terminal y escribes comandos, algo tiene que tomar lo que has escrito, averiguar lo que pretendías y ejecutar las tareas que solicitaste. El software que hace esto es el shell. Un shell es un intérprete de comandos. Escanea lo que ha escrito y selecciona los comandos, nombres de directorio, nombres de archivo y nombres de programas para que pueda descubrir lo que está tratando de lograr.

La gente a menudo usa las frases “ventanas de terminal”, “línea de comandos” y “shell” indistintamente, pero son tres cosas distintas. Una ventana de terminal es una representación de software de un terminal de teletipo físico. Le da una conexión a la computadora. Para hacer algo útil, debe poder escribir instrucciones en una línea de comandos. La línea de comandos es proporcionada por el shell, y la ventana de terminal le permite acceder al shell.

Los shells también le permiten parcelar una colección de comandos en un archivo de texto llamado script. Todos los comandos del script se ejecutan cada vez que ejecuta el script. Los scripts ofrecen eficiencia, repetibilidad y conveniencia.

El primer shell de Unix fue el Concha Thompsonllamado sh. Fue escrito por Ken Thompson, que es posiblemente el miembro más clave de los padres fundadores originales de Unix en Laboratorios Bell. El shell Thompson se utilizó como el shell predeterminado de Unix hasta e incluyendo Unix Versión 6. Fue reemplazado por el Concha de Bourne en la versión 7 de Unix en 1979.

La concha de Bourne

La concha de Bourne, escrita por Esteban Bourne, fue un reemplazo mejorado para el proyectil Thompson. Incluso se comenzó a usar el mismo comando que el proyectil Thompson, sh, para mantener la compatibilidad con versiones anteriores de los scripts existentes. La compatibilidad con versiones anteriores era importante, pero se incluyeron nuevas características que proporcionaron mucha funcionalidad que todavía usamos hoy en día.

El shell de Bourne era un shell interactivo y un lenguaje de scripting. Admitía la ejecución de tareas en primer plano y en segundo plano y el control elemental de trabajos. Se agregaron tuberías y redirecciones, junto con mejoras en los bucles de manejo.

El shell ahora contenía algunos comandos incorporados, lo que significa que no necesitaba pasar todo a utilidades externas, lo que lo hacía más eficiente. El shell de Bourne incluso admitía “aquí documentos”, una forma elegante de automatizar el envío de datos en comandos.

El proyectil Bourne elevó el listón y se convirtió en el nuevo estándar.

El nacimiento de Bash

En 1984, cuando el Proyecto GNU anunció su intención de hacer un clon gratuito de Unix, escrito desde cero y con un licencias nuevas y permisivas—el equipo necesitaba un caparazón. Cuando un voluntario que había estado trabajando en un shell para el proyecto GNU repetidamente no pudo entregar nada en absoluto, Brian Fox se le encomendó la tarea de escribir un clon de la concha de Bourne.

Fue apodado el Bourne Again Shell, o Bash. Esto fue en parte en homenaje a Stephen Bourne y en parte un juego de palabras por el bien de ello. Después de su lanzamiento en 1989, Chet Ramey contribuyó con algunas correcciones de errores a Bash. Eventualmente se convirtió en co-mantenedor del shell Bash. Hoy en día, sigue siendo el mantenedor del proyecto Bash.

Linus Torvalds, el creador del kernel de Linux, ha dicho que los dos primeros programas que ejecutó en su nuevo kernel en 1991 fueron Bash y gcc, Compilador de GNU. El emparejamiento de las utilidades gnu con el kernel de Linux fue mutuamente beneficioso. El sistema operativo GNU necesitaba un núcleo, y el kernel Linux necesitaba todo lo demás que compone un clon de Unix.

Debido a que Bash es el shell estándar de GNU, se convirtió en el shell estándar en todas las distribuciones de GNU/Linux. Linux floreció hasta el punto de que ahora sustenta una cantidad asombrosa del mundo moderno. El shell Bash también surfeó esa ola de éxito.

Bash incorpora y mejora el conjunto de características de la concha Bourne, pero también se inspiró en otras conchas, como la Concha C (csh) y el KornShell (ksh). Por ejemplo, la expansión de la tilde “~” al valor mantenido en el €HOME la variable de entorno proviene del shell C y el fc command que invoca el editor predeterminado en los comandos del historial de comandos proviene de KornShell.

Bash introdujo archivos de configuración como los archivos “.bashrc” y “.bash_profile”. La edición de línea de comandos en Bash superó con creces las capacidades de los shells anteriores. La manipulación de comandos ejecutados previamente en el historial de comandos fue una versión mejorada de la función “bang history” de los shells C. La expansión brace era una característica que faltaba en el shell de Bourne que se implementó en Bash como un superconjunto de la funcionalidad que se encuentra en el shell de C. Las matrices se mejoraron eliminando sus límites de tamaño. La expansión de parámetros en el símbolo del sistema permite a los usuarios personalizar su símbolo del sistema Bash.

Te puede ser útil:  Cómo combinar documentos de Word

El shell Bash tiene como objetivo cumplir con el POSIX P1003.2/ISO 9945.2 Shell y utilidades estándar.

Por qué Bash sigue siendo importante

Bash no podría haber durado tanto tiempo, más de 30 años, como el shell predeterminado de Linux si no estuviera a la altura del trabajo. Debido a su larga vida útil y su enorme base de usuarios, Bash es maduro y muy estable. Hay muchos proyectiles alternativos disponibles, desde veteranos como el proyectil C y el KornShell hasta proyectiles más nuevos como el proyectil Z (zsh) y el Shell interactivo amigable (fish). Tanto la concha Z como la concha Fish tienen algunas características que Bash no tiene tan bien como posiblemente mejores formas de lograr algunas de las mismas cosas que Bash hace. Entonces, ¿por qué Bash sigue siendo la cáscara dominante?

De todas las máquinas Linux que se me ha pedido que administre, no recuerdo una sola que no tuviera Bash como shell. Máquinas Unix, sí, pero cajas Linux, no. Es Bash cada vez. Esa familiaridad le permite ponerse a trabajar rápidamente y ser efectivo de inmediato. Ya conoces Bash, así que no hay curva de aprendizaje. No te quedas paralizado por pequeñas diferencias en la sintaxis que te hacen dar vueltas en círculos tratando de averiguar por qué algo no funciona. Tiempo dedicado a averiguar en qué debería estar el conjuro éste Shell es tiempo muerto, por lo que es en interés del negocio del cliente utilizar un shell bien conocido y ampliamente utilizado.

El uso de un shell que es, o está tratando de ser, compatible con POSIX es importante para muchas distribuciones de Linux, pero lo que importa más es la compatibilidad con versiones anteriores. Hacer cambios que podrían romper los scripts existentes es obviamente poco atractivo. Atractivo o no, a veces, solo hay que morder la bala. El 3 de septiembre de 1967, Suecia pasó de conducir por la izquierda a conducir por la derecha. A las 4:50 a.m., todo el tráfico tuvo que detenerse, lentamente se dirigió al otro lado de la carretera y detenerse una vez más. A las 5:00 a.m., el tráfico podía continuar, con todos conduciendo ahora a la derecha.

¿Alguna vez bash será reemplazado?

Lo que podría parecer inconcebible ahora puede suceder más tarde. A menos que queramos aferrarnos a la creencia de que todos usaremos Bash hasta el día del juicio final, la verdad es que algún día, Bash será reemplazado como el shell predeterminado de Linux, ya sea que siga siendo el shell estándar de GNU o no. O tal vez sea Bash, pero mejorado mucho más allá del shell que usamos hoy. Pero lo que sea que tome el lugar del Bash de hoy tendrá que ser completamente (o muy cerca) compatible con versiones anteriores o valer la pena la agitación, sean cuales sean los beneficios.

Esto no está exento de precedentes. Desde la versión 10.15 de macOS, Apple ha eliminado Bash y ha adoptado el shell Z como el shell predeterminado. Apple tiene problemas con la GNU General Public License (GPL) v.3. Desafortunadamente, esa es la licencia que usa Bash. La última versión de Bash lanzada bajo GPL v.2 fue la versión 3.2 de 2007. La versión actual es la 5.1. Apple estaba casi una década y media por detrás. La única forma en que Apple podía incluir un shell actualizado sin pasar a GPL v.3 era pasar a un shell completamente diferente. Para Apple, eso valió la pena la agitación. (Sin embargo, ¡aún puede volver a Bash en macOS si lo prefiere!)

Hay un mundo de diferencia entre la estación de trabajo de un usuario avanzado y un servidor Linux de línea de negocio que debe administrar de forma remota a través de una conexión SSH. De casi 1,5 millones de servidores alojados en Amazon EC2, más del 93% está ejecutando Linux. Casi el 75% de los servidores web están ejecutando Linux. Organizaciones como Red Hat, Amazon y Google usan Linux internamente.

Es difícil imaginar qué beneficios podría ofrecer una nueva cáscara que justificaría ese tipo de agitación global. Es por eso que Bash está cimentado en su lugar.

¡Incluso Microsoft ahora ofrece una forma de ejecutar un shell Bash basado en Linux en Windows 10!

¿Qué tan útil te resultó el artículo?

¡Haz click en una estrella para valorar!

Valoración media / 5. Votos totales:

¡No hay votos hasta ahora! Sé el primero en valorar este artículo.

Utilizamos cookies para personalizar el contenido y los anuncios, para ofrecer funciones de redes sociales y para analizar nuestro tráfico. También compartimos información sobre su uso de nuestro sitio con nuestros socios de redes sociales, publicidad y análisis. View more
Cookies settings
Aceptar
Política de privacidad y cookies
Privacy & Cookies policy
Cookie name Active
El presente Política de Privacidad establece los términos en que Alternativa.click usa y protege la información que es proporcionada por sus usuarios al momento de utilizar su sitio web. Esta compañía está comprometida con la seguridad de los datos de sus usuarios. Cuando le pedimos llenar los campos de información personal con la cual usted pueda ser identificado, lo hacemos asegurando que sólo se empleará de acuerdo con los términos de este documento. Sin embargo esta Política de Privacidad puede cambiar con el tiempo o ser actualizada por lo que le recomendamos y enfatizamos revisar continuamente esta página para asegurarse que está de acuerdo con dichos cambios.

Información que es recogida

Nuestro sitio web podrá recoger información personal por ejemplo: Nombre,  información de contacto como  su dirección de correo electrónica e información demográfica. Así mismo cuando sea necesario podrá ser requerida información específica para procesar algún pedido o realizar una entrega o facturación.

Uso de la información recogida

Nuestro sitio web emplea la información con el fin de proporcionar el mejor servicio posible, particularmente para mantener un registro de usuarios, de pedidos en caso que aplique, y mejorar nuestros productos y servicios.  Es posible que sean enviados correos electrónicos periódicamente a través de nuestro sitio con ofertas especiales, nuevos productos y otra información publicitaria que consideremos relevante para usted o que pueda brindarle algún beneficio, estos correos electrónicos serán enviados a la dirección que usted proporcione y podrán ser cancelados en cualquier momento. Alternativa.click está altamente comprometido para cumplir con el compromiso de mantener su información segura. Usamos los sistemas más avanzados y los actualizamos constantemente para asegurarnos que no exista ningún acceso no autorizado.

Cookies

Una cookie se refiere a un fichero que es enviado con la finalidad de solicitar permiso para almacenarse en su ordenador, al aceptar dicho fichero se crea y la cookie sirve entonces para tener información respecto al tráfico web, y también facilita las futuras visitas a una web recurrente. Otra función que tienen las cookies es que con ellas las web pueden reconocerte individualmente y por tanto brindarte el mejor servicio personalizado de su web. Nuestro sitio web emplea las cookies para poder identificar las páginas que son visitadas y su frecuencia. Esta información es empleada únicamente para análisis estadístico y después la información se elimina de forma permanente. Usted puede eliminar las cookies en cualquier momento desde su ordenador. Sin embargo las cookies ayudan a proporcionar un mejor servicio de los sitios web, estás no dan acceso a información de su ordenador ni de usted, a menos de que usted así lo quiera y la proporcione directamente. Usted puede aceptar o negar el uso de cookies, sin embargo la mayoría de navegadores aceptan cookies automáticamente pues sirve para tener un mejor servicio web. También usted puede cambiar la configuración de su ordenador para declinar las cookies. Si se declinan es posible que no pueda utilizar algunos de nuestros servicios.

Enlaces a Terceros

Este sitio web pudiera contener en laces a otros sitios que pudieran ser de su interés. Una vez que usted de clic en estos enlaces y abandone nuestra página, ya no tenemos control sobre al sitio al que es redirigido y por lo tanto no somos responsables de los términos o privacidad ni de la protección de sus datos en esos otros sitios terceros. Dichos sitios están sujetos a sus propias políticas de privacidad por lo cual es recomendable que los consulte para confirmar que usted está de acuerdo con estas. Control de su información personal En cualquier momento usted puede restringir la recopilación o el uso de la información personal que es proporcionada a nuestro sitio web.  Cada vez que se le solicite rellenar un formulario, como el de alta de usuario, puede marcar o desmarcar la opción de recibir información por correo electrónico.  En caso de que haya marcado la opción de recibir nuestro boletín o publicidad usted puede cancelarla en cualquier momento. Esta compañía no venderá, cederá ni distribuirá la información personal que es recopilada sin su consentimiento, salvo que sea requerido por un juez con un orden judicial. Alternativa.click Se reserva el derecho de cambiar los términos de la presente Política de Privacidad en cualquier momento.
Save settings
Cookies settings