Scripting en GNU/Linux. Introducción

Scripting en Linux. Descubre el Enorme 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!

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

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 el sistema operativo GNU/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. Aquí tienes el listado completo de todos los posts de esta serie.


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

 

Anuncios

Publicado por

Oriol

Soy un chico de Barcelona. Estoy aquí para compartir mis Hobbies e intentar aportar mi granito de arena a todos aquellos usuarios interesados en el mundo de la informática, internet y las tecnologías de la información en general.

3 comentarios en “Scripting en Linux. Descubre el Enorme Poder de Automatizar Tareas”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.