Bash suena como un nombre extraño para una interfaz de línea de comandos que recibe a los usuarios que inician sesión en cualquier distribución de Linux. ¿Qué es exactamente Bash? ¿Para qué lo puede usar? Averigüemos.
Aunque Bash suele estar asociado con Linux, también puedes úsalo en Windows. macOS ya incluye Bash, aunque ha cambiado el shell predeterminado a Zsh, una versión avanzada de Bash con algunas características adicionales.
¿Qué es una concha?
El término shell Bash se utiliza mucho, pero ¿qué es un shell de todos modos? ¿Por qué es necesario? ¿Y por qué Bash parece ser el único shell que existe?
Los sistemas operativos modernos con sus interfaces gráficas de usuario intuitivas han hecho que usar una computadora parezca fácil. Pero en los primeros días de las computadoras, decirle a un sistema qué hacer no era tan sencillo.
Los programadores tenían que conocer los detalles de bajo nivel del sistema que estaban codificando e instruir manualmente a cada pieza de hardware. Los sistemas operativos fueron diseñados para cerrar esta brecha, pero ¿cómo le darías instrucciones al propio sistema operativo?
Ingrese al Shell. La capa más externa del sistema operativo fue diseñada para ser un entorno interactivo que expusiera todas las funciones de la computadora en una interfaz simple. Este shell era lo más profundo que tenía que profundizar un usuario de la computadora, ya que contenía todos los comandos necesarios para operar el sistema.
Bourne otra vez: cómo surgió Bash
Un error común es pensar que Bash fue creado por Linus Torvalds para el sistema operativo Linux. En realidad, Bash simplemente fue portado a Linux y ya se utilizaba en su predecesor, Unix.
En muchos sentidos, Unix es donde comenzó todo para los sistemas operativos modernos. Eliminó gran parte de la complicada complejidad que plagaba las primeras implementaciones del sistema operativo, presentando las funciones de una computadora en una interfaz basada en texto comparativamente simple.
Por supuesto, el propio Unix tomó prestadas la mayoría de sus ideas de Multics, incluido el concepto de shell. Pero fue Unix el que realmente popularizó la técnica, con el Thompson Shell implementado en su primera versión.
Sin embargo, su funcionalidad era bastante limitada y muchos programadores terminaron modificando el shell para hacerlo más amigable con las secuencias de comandos. Bourne Shell fue el reemplazo oficial del shell Unix, agregando soporte para scripts de shell..
El Bourne Again Shell se lanzó mucho más tarde, ofreciendo una mejora adicional en sus capacidades de secuencias de comandos y convirtiéndolo en un shell de licencia GNU gratuito y de código abierto que podría ser utilizado por cualquier sistema operativo. Y Linux lo adoptó rápidamente, convirtiéndose en el shell predeterminado para sus diversas distribuciones.
Pero ¿qué puede hacer Bash?
Bash es básicamente un entorno de scripting completo con acceso completo al sistema Linux. Desde administrar archivos hasta ejecutar aplicaciones, puede realizar todas las tareas informáticas con comandos Bash.
Para la mayoría de los usuarios de Linux, esto sólo se traduce en comandos de shell manuales. Después de todo, el objetivo principal de Bash es servir como interfaz para el sistema operativo.
Y hay bastantes de estos comandos integrados. Puede administrar la propiedad de los archivos con chown, configurar los ajustes de red con ifconfig, localizar directorios con encontrar ; la lista continúa.
Pero Bash no existiría si los comandos de Linux fueran lo único que interesara a los usuarios. No, el verdadero poder del shell de Linux radica en las secuencias de comandos.
La importancia de las secuencias de comandos
La idea de escribir comandos es simple. En lugar de ingresar manualmente todos los comandos que desea que el sistema ejecute uno por uno, guarde los comandos en un archivo de texto que se puede ejecutar a pedido.
Esto convierte la interfaz shell en una especie de lenguaje de programación, lo que permite a los usuarios automatizar cualquier acción en un script reutilizable. Obviamente, va más allá, ya que cualquier lenguaje de programación necesita cosas como variables y funciones además de la capacidad de guardar código.
Y Bash tiene todas esas características. Esta es la razón por la cual el shell (y, hasta cierto punto, Linux en general) es tan popular para administrar servidores y sistemas comerciales.
Un usuario doméstico puede hacerlo haciendo clic en una serie de botones, pero un administrador del sistema debe poder realizar cualquier acción en una gran cantidad de computadoras de forma remota. Los scripts Bash son los que hacen posible este tipo de gestión automatizada del sistema.
Por ejemplo, considere nuestra guía sobre cómo cambiar el nombre de archivos y carpetas en Linux. La guía ilustra ambos métodos: GUI y script. Como puede ver, el método de secuencias de comandos es mucho más escalable cuando hay una gran cantidad de archivos involucrados.
Comenzando con Bash.
Lo bueno de Bash es que no se limita únicamente a Linux. Ahora puedes instalar Linux en Windows a través del Subsistema de Windows para Linux (WSL), que viene con Bash de forma predeterminada.
Eso significa que puedes empezar a experimentar con Bash sin tener que cambiar completamente a Linux. Incluso si es un usuario ocasional que no tiene intención de trabajar con servidores Linux, las interesantes capacidades de un shell Bash pueden resultarle útiles.
No es que Bash sea su única opción para automatizar tareas informáticas. Potencia Shell es una interfaz similar que funciona con Windows, aparte de lo que puedes administrar con el símbolo del sistema, por supuesto.