Introducción a Bash Scripting

Contenido

¿Qué es Bash Scripting?

Bash Scripting es la práctica de escribir secuencias de comandos (scripts) en el lenguaje de programación Bash. Bash es un intérprete de línea de comandos que se ejecuta en sistemas operativos basados en Unix, como Linux y macOS.

Los scripts de Bash son archivos de texto que contienen comandos de shell y otros elementos de programación, como variables, estructuras de control de flujo y funciones. Estos scripts pueden ser ejecutados en una terminal o desde un archivo ejecutable, lo que permite la automatización de tareas y la creación de programas personalizados.

Bash es una herramienta poderosa para la automatización de tareas y la administración de sistemas. Los scripts de Bash pueden ser utilizados para realizar una amplia variedad de tareas, como la gestión de archivos y directorios, la automatización de tareas de mantenimiento, la creación de programas personalizados, la manipulación de datos, y mucho más.

Aprender Bash Scripting es una habilidad valiosa para cualquier persona que trabaje con sistemas operativos basados en Unix, y puede ser una forma eficiente de realizar tareas de administración del sistema y automatización de tareas.

Historia de Bash

Bash (Bourne-Again SHell) fue desarrollado por Brian Fox en 1987 como una alternativa de código abierto al shell original de Unix, el Bourne shell (sh), desarrollado por Stephen Bourne en 1977. Bash fue desarrollado inicialmente para el proyecto GNU, una iniciativa para desarrollar un sistema operativo completamente libre basado en Unix.

Bash se convirtió en el shell predeterminado en muchas distribuciones de Linux debido a su capacidad para ejecutar la mayoría de los comandos de Bourne shell, así como de shell C y Korn (ksh). También incluía muchas características nuevas, como historial de comandos, finalización de nombres de archivo y directorio, y la capacidad de ejecutar scripts de shell.

Desde su lanzamiento inicial, Bash ha evolucionado significativamente a través de múltiples versiones, cada una con nuevas características y mejoras en el rendimiento y la seguridad. En la actualidad, Bash es uno de los shells de línea de comandos más populares en sistemas operativos basados en Unix, y se utiliza ampliamente en la automatización de tareas y la administración de sistemas.

 

Entornos de Bash

Bash es un shell de línea de comandos que se ejecuta en sistemas operativos basados en Unix, como Linux y macOS. Como tal, se puede acceder a Bash desde varios entornos y aplicaciones, desde terminales y IDEs hasta servidores remotos y scripts de automatización. Esto lo hace una herramienta versátil para la automatización de tareas y la administración de sistemas.

  • Terminal

La forma más común de interactuar con Bash es a través de la terminal del sistema operativo. En la mayoría de los sistemas operativos basados en Unix, se puede abrir una terminal desde el menú de aplicaciones o mediante una combinación de teclas. Una vez abierta la terminal, el usuario puede ingresar comandos de Bash y ejecutar scripts de shell.

  • Entornos de desarrollo integrados (IDE)

Muchos IDEs de programación incluyen una terminal integrada que permite a los desarrolladores interactuar con Bash y ejecutar scripts de shell directamente desde el IDE. Algunos ejemplos de IDEs que incluyen una terminal integrada son Visual Studio Code, Atom y Sublime Text.

  • Servidores remotos

Bash también se puede ejecutar en servidores remotos a través de una conexión SSH. Una vez conectado a través de SSH, el usuario puede interactuar con Bash y ejecutar scripts de shell en el servidor remoto.

  • Scripts de automatización

Bash se puede utilizar para escribir scripts de automatización que se ejecutan en segundo plano. Estos scripts se pueden programar para ejecutarse en horarios específicos o en respuesta a ciertos eventos. Por ejemplo, un script de Bash puede monitorear el uso de la CPU y enviar una alerta si la carga del sistema es demasiado alta.

Bash se puede ejecutar en una variedad de entornos y aplicaciones, desde terminales y IDEs hasta servidores remotos y scripts de automatización. Esto lo hace una herramienta versátil para la automatización de tareas y la administración de sistemas.

Lectura recomendada

Link de Compra en Amazon: 
🛒 https://amzn.to/4iJpXR1

Contenido del libro:

Domina el arte de las secuencias de comandos bash ofensivas. ¡Esta guía es totalmente práctica y cubre cómo encadenar comandos, automatizar tareas, crear ataques y mucho más!

Link de Compra en Amazon: 
🛒 https://amzn.to/49RHDpK

Contenido del libro:

Al final de este libro podrá crear scripts de shell con facilidad.  Enseña cómo realizar tareas tediosas y repetitivas y convertirlas en programas que ahorran tiempo y simplifican su vida en sistemas Linux, Unix o MAC.

 

Qué es un Script ?

Un script es un conjunto de instrucciones o comandos escritos en un lenguaje de programación que se utilizan para automatizar tareas repetitivas o para realizar una secuencia de acciones en un sistema informático.

En general, un script puede ser tan simple como una sola línea de código que realiza una tarea específica, o tan complejo como una serie de programas que interactúan entre sí para llevar a cabo una tarea más compleja. Los scripts son muy comunes en el ámbito de la programación y se utilizan en una variedad de contextos, como la administración del sistema, la automatización de tareas, la creación de páginas web dinámicas, la gestión de bases de datos, entre otros.

Los scripts pueden ser escritos en una variedad de lenguajes de programación, como Bash, Python, Perl, JavaScript, entre otros. La elección del lenguaje de programación depende del tipo de tarea que se esté realizando y de las herramientas disponibles en el sistema donde se ejecutará el script, en nuestro caso, al trabajar con sistemas Linux, Bash es uno de los interpretes de comandos más implementados.

Pasos para crear un Script:

  1. Crear un archivo .sh
  2. Crear el contenido del script
  3. Dar permisos de ejecución al archivo.sh

Cómo crear un archivo con extensión .sh:

Para crear un archivo con extensión .sh mediante la terminal de Linux, sigue los siguientes pasos:

  • Abre la terminal y navega hasta el directorio donde quieres crear el archivo.
  • Utiliza el comando touch para crear un archivo vacío con el nombre que desees, seguido de la extensión .sh. Por ejemplo, para crear un archivo llamado mi_script.sh, utiliza el siguiente comando:
				
					touch mi_script.sh

				
			

Otra forma de crear el archivo con extensión .sh es con cualquier editor de texto como, por ejemplo, nano, vim o visual estudio code.

Para crear un archivo con el editor nano en Kali Linux, escribe el siguiente comando para abrir el editor de texto nano:

				
					nano mi_script.sh

				
			
  • A continuación, escriba su código de shell script en el archivo y guárdelo presionando Ctrl + O.

  • Cuando se te pida un nombre de archivo, simplemente presiona Enter para confirmar el nombre del archivo que ya has escrito.

  • Luego, presiona Ctrl + X para salir de nano.

Partes básicas de un Script:

Un script básico consta de tres partes principales:

  • La línea de interpretador ( #!/bin/bash ): Especificar el intérprete que se utilizará para ejecutar el script. En Bash, la línea de interpretador comienza con el carácter «#!» seguido de la ruta del intérprete. Por ejemplo, «#!/bin/bash» indica que se utilizará Bash para ejecutar el script.
  • Las variables y los argumentos: Se utilizan para almacenar datos y parámetros que se utilizarán en el script. En Bash, las variables se definen utilizando el signo de dólar «$» seguido del nombre de la variable. 
  • Los comandos y las instrucciones: Se utilizan para realizar acciones específicas en el sistema. En Bash, los comandos y las instrucciones se escriben como líneas de texto en el script. 
  • Utiliza un editor de texto en la terminal como nano, vim o code para agregar el código que deseas ejecutar en el archivo .sh. Por ejemplo, si deseas imprimir «Hola mundo!» en la terminal, agrega el siguiente código al archivo:
				
					#!/bin/bash
echo "Hola mundo!"

				
			
  • Guarda el archivo y cierra el editor de texto.

Una vez que hayas creado el archivo .sh y agregado el código que deseas ejecutar, puedes darle permisos de ejecución utilizando el comando chmod.

 

Permisos de Ejecución:

En Linux, el sistema operativo utiliza permisos para controlar el acceso a los archivos y directorios. Cuando un archivo es creado, no tiene permisos de ejecución por defecto. Esto significa que, aunque el usuario tenga el archivo en su sistema, no podrá ejecutarlo a menos que se le conceda explícitamente el permiso de ejecución.

Los archivos con extensión «.sh» son archivos de script de shell que contienen comandos que se pueden ejecutar en una terminal o consola de Linux. Para ejecutar estos archivos, se debe conceder el permiso de ejecución. Esto se puede hacer utilizando el comando «chmod» en la línea de comandos de la siguiente manera:

				
					chmod +x archivo.sh

				
			

Con esto, el archivo «archivo.sh» tendrá permisos de ejecución y podrá ser ejecutado utilizando el comando:

				
					./archivo.sh

				
			

Nota: Si no se conceden los permisos de ejecución, al intentar ejecutar el archivo, el sistema operativo mostrará un mensaje de error que indica que el archivo no tiene permisos suficientes para ser ejecutado.