Scripting en Linux (I): Introducción. Descubre el Poder de Automatizar Tareas

Muy buenas lector, soy Mariona, nueva colaboradora en ComputerNewAge. Este es un primer post de introducción al scripting en GNU/Linux, una área nueva que aún no se ha abordado en este blog, y que te dotará de un poder enorme a la hora de ejecutar tareas en el sistema de forma totalmente automatizada.

Ésta es la guía de iniciación, en la que introduciré los conceptos más básicos y te presentaré un ejemplo rápido para que veas la mecánica. En próximos posts profundizaré mucho más en la construcción de scripts, de forma que aprendas a crear los tuyos propios de acuerdo a tus necesidades. Vamos!

Anuncios

Tabla de Contenidos:

  1. Qué es el scripting
  2. Ventajas de utilizar scripts
  3. Bash scripting
  4. Python scripting
  5. Cuándo utilizar Bash
  6. Cuándo utilizar Python
  7. ¡Empieza a automatizar tareas con tus propios scripts!

Qué es el Scripting

Un script es un programa escrito para un entorno en tiempo de ejecución (run-time environment), con el objetivo de automatizar la ejecución de una o varias tareas.

El primer lenguaje de scripting se remonta a los años 60. En aquella época los llamaban «job control languajes» o lenguajes de control de tareas. Y es que los scripts eran simplemente una lista de comandos para ahorrar a las personas tener que introducirlos manualmente cada vez que querían realizar una misma tarea.

Cada script se presenta en forma de un documento de texto que contiene una lista de instrucciones que deben ser ejecutadas. La naturaleza de los scripts nos permite escribirlos y editarlos con un simple editor de texto, como puede ser Gedit mismo, en el caso de GNU/Linux.

En este sentido, los scripts son diferentes a una aplicación o programa, debido a que estos últimos suelen ser bastante más complejos. Los scripts son, como digo, más bien un conjunto de instrucciones que se dan a otros programas más avanzados, para que ejecuten ciertas tareas.

Ventajas de Utilizar Scripts

Anuncios

Los shell scripts son típicamente utilizados para la manipulación de archivos, ejecución de programas o acciones del sistema, impresión de texto, etc. El objetivo principal, como ya he comentado, es la automatización de tareas. A continuación te presento algunos ejemplos de aplicación práctica de los scripts:

  • Inicializar una tarea al «boot time» del sistema operativo, de manera que no tengas que hacerlo tu manualmente.
  • Abrir o cerrar múltiples aplicaciones de golpe.
  • Analizar patrones en archivos de texto, extraer información, etc.

Los scripts también forman parte integral de cualquier sistema operativo. GNU/Linux, por ejemplo, cuenta con multitud de scripts que se ejecutan en el inicio del sistema y que se encargan de hacer comprobaciones, habilitar servicios, etc.

Bash Scripting

Bash scripting, o Bash/Shell scripting es un conjunto de comandos en la shell, escritos para completar una determinada tarea. La shell es una interfaz de programación para acceder al sistema operativo. Bash, por su parte, es considerado como el lenguaje de comando más destacado de la shell de Unix, frente a otros como sh, csh, dash, etc.

Si eres relativamente nuevo en Linux y aun no estás muy dado al uso de la terminal, Bash, etc., te recomiendo leer esta guía de introducción del uso de línea de comandos. Dicho esto, veamos un primer ejemplo de un script rápido para ejecutar en Bash.

El primer paso, es abrir un fichero de texto en blanco. Para ello, puedes utilizar perfectamente la aplicación nativa que venga en tu distribución. Una vez abierto, escribe esto en la primera línea:

echo "Hola Mundo"

Hecho esto, guarda el archivo como «script-test.sh» y dejalo en una carpeta de la que te acuerdes luego, como puede ser Documentos.

El siguiente paso es ejecutar el script desde la terminal. Para ello, puedes abrir una ventana de terminal, y situarte en la carpeta donde has guardado el fichero, indicando su ruta absoluta o relativa. Si tienes dudas en esto, te recomiendo la lectura de este post. En el caso del ejemplo, pondríamos esto:

cd Documentos

Una vez estando en el directorio que contiene el fichero, ya puedes ejecutar el script. Para ello, escribe la siguiente sentencia:

bash script-test.sh

Hecho esto, verás que aparece, como output o salida, la línea de texto que has introducido en el fichero, justo después de «echo». Enhorabuena, ya has creado y ejecutado tu primer script!

Terminal Ejecución de Script

Como te imaginarás, este script no tiene mucho sentido ni utilidad como tal. Solo se trata de un primer ejemplo para que veas la mecánica. Más adelante aprenderás mucho más en detalle como construir scripts con una utilidad real.

Limitaciones de Bash

Hasta aquí todo muy bien, pero llegan las limitaciones. Y es que Bash es un lenguaje de comando, más que un lenguaje de programación como tal. A veces se abusa de Bash, tratándolo como si de un lenguaje de programación se tratase, cosa que lleva a problemas como los siguientes:

  • La sintaxis puede ser obscura. De acuerdo, si hace mucho que lees este blog, seguramente estés mas familiarizado. Aún así, la cosa se puede complicar realmente mucho más.
  • La única estructura de datos del lenguaje Bash es el string. Es verdad que existen formas de trabajar los strings, como convertirlos a números para realizar operaciones aritméticas o manipulaciones de fechas, pero las reglas suelen ser obscuras.
  • Desperdicio de recursos. Para escribir determinadas órdenes (por ejemplo, para crear aplicaciones cliente-servidor) el script se puede complicar mucho. En ese contexto, cuándo empezamos a tratar Bash como un lenguaje de programación, se desperdician muchos recursos del sistema.

Todas esas dificultades nos llevan a plantearnos alternativas a la hora de construir según que tipo de scripts. Es por eso que quiero mencionar una de las alternativas más poderosas que tenemos en ese sentido: Python.

Python Scripting

Python no es solo un lenguaje de scripting. A diferencia de Bash, es también un lenguaje de programación de propósito general.

Y es que Python es utilizado en multitud de entornos y contextos, como en el desarrollo web, el data science, el machine learning o la computación matemática. Su completísima oferta de librerias constituye una poderosa herramienta para realizar casi cualquier cosa.

Python tiene una capacidad de Unit Testing mucho más robusta que Bash, además de que cuenta con la propiedad añadida de la portabilidad. De este modo, si trabajas con Python podrás, en gran medida, utilizar los scripts en diferentes sistemas operativos como Windows, algo que en Bash estaría limitado a entornos Unix.

Cuándo Utilizar Bash

La existencia de Python como lenguaje de scripting no tiene porqué desmerecer Bash. Cada uno tiene sus pros y sus contras.

Bash, por ejemplo, resulta la mejor opción para tareas relacionadas con la administración del sistema operativo, ya sea hacer comprobaciones periódicas, mover, copiar o renombrar ficheros, etc. Algunos ejemplos de usos típicos de Bash son las equivalencias de archivos, comparación de timestamps, ejecución de comandos «on-exit», procesamiento de líneas de output, etc.

Ahora bien, si lo que queremos es analizar el contenido de archivos o realizar determinadas operaciones matemáticas, ahí la cosa se complica.

Cuando Usar Python

Una de las principales ventajas de Python frente a Bash son las estructuras de datos. De este modo, cualquier tarea que requiera el uso de vectores, matrices o diccionarios, está llamando a gritos el uso de Python.

Otra de las áreas en las que Python se impone es en el user-interface. Python es un excelente lenguaje para construir servidores locales o aplicaciones cliente servidor, por ejemplo.

¡Empieza a Automatizar Tareas con tus Propios Scripts!

Viendo las ventajas que ofrece el uso de scripts, ha llegado el momento de empezar a adentrarnos en este mundo. Te animo a que sigas los próximos artículos de esta serie/categoría, en donde iré explicando las pautas que debes seguir a la hora de construir tus propios scripts, y podrás ver ejemplos reales mucho más complejos.

  1. Linux scripting. Descubre el enorme poder de automatizar tareas
  2. Linux scripting con Bash. Introducción a Bash
  3. Linux scripting con Bash. Sintaxis del lenguaje
  4. Linux scripting con Bash. Como crear y ejecutar tu primer script
  5. Linux scripting con Bash. Programar ejecución en el arranque

En la próxima guía ya me centraré en la sintaxis del lenguaje, para que aprendas a utilizar las sentencias y/o estructuras más importantes que necesitarás conocer, de cara a poder crear tus propios scripts. Hasta la próxima!


Este ha sido un artículo de Mariona, nueva colaboradora en ComputerNewAge. Puedes conocer más sobre ella en su perfil de Twitter:

Twitter Mariona
Categorías LinuxEtiquetas ,

6 comentarios en “Scripting en Linux (I): Introducción. Descubre el Poder de Automatizar Tareas

  1. Al que igual que Python, el Perl es una estupenda opción, siendo igualmente un lenguaje de programación. Un saludo!

    Me gusta

  2. Muchas gracias !!
    Estare siguiendo tus publicaciones

    Me gusta

    1. Muchas gracias a ti por el comment, khourt!

      Me gusta

  3. muchas gracias!

    Me gusta

  4. Estupendo artículo, saludos.

    Me gusta

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

search previous next tag category expand menu location phone mail time cart zoom edit close