¡Compártelo!

Qué es Bash (shell) y cómo usarlo en sistemas Linux

Independientemente de la tecnología o el lenguaje de programación que uses, hay herramientas que son comunes y que siempre es útil conocer porque, simplemente, nos hacen la vida más fácil. Una de ellas es Bash, la shell más extendida en entornos Linux. Pero antes de explicar qué es Bash y cómo funciona, debemos conocer qué es una shell.

¿Qué es una shell y qué papel tiene Bash?

Una Shell no es más que una aplicación o terminal que lee indicaciones (a las que llamaremos comandos) por parte de un usuario, las interpreta y ejecuta en el sistema operativo. Y Bash (también conocido como GNU Bash) es una shell para sistemas Unix/Linux ampliamente extendida. Bash es un acrónimo de Bourne Again Shell, un juego de palabras sobre «Bourne Shell» -la shell original de Unix- y también con “Born again”, ya que Bash fue desarrollado como una alternativa open source al shell original y fue parte del proyecto GNU, una iniciativa para crear un sistema operativo libre basado en Unix.

Cómo funciona Bash (shell) en sistemas Linux

Utilizar Bash puede ser tan sencillo o complejo como queramos. Podemos ejecutar comandos simples, que nos ayuden a administrar el sistema o escribir complejos scripts para automatizar tareas. Vamos a ver en detalle estos dos grandes bloques.

Ejecución de comandos Bash (shell)

A continuación una lista de los comandos más básicos que cualquier persona con un sistema operativo Linux/Unix debería conocer:

Navegación

Estos comandos nos permitirán movernos por el directorio de carpetas del sistema:

  • pwd: muestra la ruta del directorio actual.
  • cd: cambia de directorio, indicándole la ruta como argumento..

Directorios

Comandos para una gestión básica de carpetas:

  • ls: lista el contenido de un directorio.
  • mkdir: crea un nuevo directorio.
  • rmdir: elimina directorio vacío.
  • rm: elimina directorios o ficheros.

Ficheros

Gestión básica de archivos:

  • cp: copia un archivo de origen a destino.
  • mv: mueve un archivo entre directorios.
  • cat: muestra el contenido de un archivo.

Comandos útiles

Aunque básicos, estos comandos son muy valiosos:

  • man: muestra el manual de cualquier comando.
  • echo: imprime texto en el terminal.
  • grep: busca texto mediante patrones.
  • exit: cierra la sesión actual.

Introducción al scripting con Bash

Ya hemos visto algunos comandos básicos. ¿Y si queremos ejecutar varios de ellos? Por ejemplo, “quiero buscar en mi directorio actual los ficheros con extensión .old y moverlos a una carpeta llamada Backup que, si no existe, la cree”. Todo eso es posible mediante comandos ejecutados en un orden específico. Si los escribimos todos y los guardamos en un fichero de texto con extensión .sh, tendremos un script ejecutable por Bash.

Estos scripts se pueden ejecutar cuantas veces queramos y funcionan en cualquier terminal. Veamos algunas recomendaciones básicas para un buen scripting:

Consejos básicos para Bash scripting

  • Primera línea: debe especificar la ruta de la shell que vamos a usar (por ejemplo: #!/bin/bash).
  • Asignación de variables: no usar $ al asignar valores, solo al invocarlos.
  • Validación de datos de entrada: siempre que el script reciba inputs del usuario, hay que validar tipo y formato.
  • Eficiencia: usa comandos nativos y los más optimizados posibles para reducir consumo de CPU y memoria.

Trucos y buenas prácticas al usar Bash (shell)

Hemos visto comandos básicos y scripting. Aquí van algunos trucos avanzados para mejorar aún más tu experiencia con Bash:

  • Opciones de Bash: usa set -o errexit para salir del script si un comando falla o set -o xtrace para depurar línea por línea.
  • Declaración de variables seguras: usa local para variables dentro de funciones o readonly para valores inmutables.
  • ShellCheck: esta herramienta permite revisar tus scripts y evitar errores comunes. Puedes usarla online o integrarla en tu editor.

Por qué aprender Bash marca la diferencia en Linux

Aprender a usar Bash es fundamental para cualquier persona que trabaje con sistemas Linux o Unix. Conocer sus comandos, automatizar tareas mediante scripts y aplicar buenas prácticas puede mejorar significativamente tu eficiencia, reducir errores y ahorrar tiempo.

¿Quieres seguir aprendiendo sobre herramientas de terminal, automatización y flujos DevOps? Síguenos en nuestras Redes Sociales y Canal de YouTube y no te pierdas nada.

Artículos ​ relacionados