Aprende GNU/Linux 7

Introducción a los scripts en Linux

En el articulo Introducción a la linea de comandos de Linux hablamos sobre la shell y la linea de comandos, aprendimos a como manejarnos y a ejecutar ordenes sobre esta. En esta ocasión vamos a tratar de explicar como funcionan los shell scripts en linux, una herramienta que nos va a permitir automatizar nuestras tareas en la shell.

¿ Que es un Script ?

En la linea de comandos vamos introduciendo las ordenes que queremos ejecutar por teclado, además de esto, también es posible automatizar esta tarea creando un script. Un script es un archivo que contiene un conjunto de comandos que son ejecutados secuencialmente, desde el primero hasta el ultimo.

Como crear un Shell Script

Crear un shell script es tan sencillo como crear un nuevo archivo y ponerle una extensión .sh. Podemos hacerlo mediante la interfaz gráfica o en la linea de comandos con el comando touch.

 touch prueba1.sh

De esta forma creamos un nuevo archivo llamado prueba1.sh en el directorio en el que nos encontramos actualmente.

Información sobre el comando Touch
Touch es un programa de sistemas Unix utilizado para cambiar la fecha y hora de última modificación de un archivo. También puede utilizarse para crear un archivo vacío. Su sintaxis en línea de comandos es:

$ touch [options] <file_name>

Si el archivo existe, se modifica su hora de acceso y modificación, que se ponen a la fecha y hora actuales del sistema, tal y como sucediera si el archivo hubiera cambiado. Si el archivo no existe, se crea un nuevo archivo vacío. Si no se le indica un nombre de archivo, se toma el directorio actual.

VIA  WIKIPEDIA – http://es.wikipedia.org/wiki/Touch_%28Unix%29

Abrimos este archivo con un editor de texto gráfico ( gedit ) o uno de terminal ( Vim ) para modificar su contenido. En este caso vamos a modificarlo con Gedit.

 gedit prueba1.sh

Primera linea del Script

Ahora que ya tenemos creado y abierto el archivo tenemos que indicar al sistema que el archivo va ser un script. Todos los scripts tienen una primera linea, la linea en cuestión es #! /bin/bash

Podemos separar esta linea en dos partes, la primera es #!. A esta secuencia de dos caracteres se le denomina como sha bang. El sha bang indica al sistema que lo que viene a continuación son instrucciones de comando, para que este las procese como tal. La segunda parte /bin/bash indica el shell que va a utilizar el script para ejecutar los comandos.

Programación de Scripts

En este articulo no pretendemos abarcar conceptos complejos de la programación de scripts, esto lo aremos en futuros artículos, en esta ocasión nos vamos a conformar con una introducción y puesta en marcha.

Comentarios

Lo primero y mas importante que tenemos que saber es como añadir comentarios a nuestros scripts. Para el que sepa programar conoce la utilidad y la importancia de los comentarios y para el que no, estos se añaden para explicar el funcionamiento del programa, no añaden ninguna  funcionalidad y cuando el script se ejecuta el sistema se salta estas lineas, pero para una buena programación son totalmente necesarios.

Los comentarios se añaden con el simbolo # . Después de la almohadilla añadimos el texto que nos interese. Normalmente estos comentarios se añaden antes de una instrucción para explicar la funcionalidad de esta pero podemos utilizarlos como queramos, cuantos mas, mejor.

Añadiendo comandos

En un script podemos utilizar todos los comandos que vimos en el articulo Introducción a la linea de comandos de Linux. Cualquier comando que podamos utilizar en la linea de comandos lo podemos introducir en nuestro Script. Ademas de estos comandos podemos utilizar muchas otras herramientas como operadores aritméticos, comparadores, estructuras condicionales… de las que hablaremos en futuros artículos.

En este caso vamos a realizar un sencillo ejemplo con comandos básicos:

#! /bin/bash
# Script de ovtoaster.com

# Nos colocamos en el directorio de nuestro usuario
cd ~

# Imprimimos por pantalla el Kernel que usamos

uname -r

# Imprimimos por pantalla la fecha actual

date

# Creamos una carpeta llamada Documentos

mkdir DocumentosDePrueba

# Nos movemos a la carpeta Documentos

cd DocumentosDePrueba

# Creamos un txt llamado tips

touch tips.txt
# ... Podemos seguir escribiendo todo los comandos que nos plazca, el script hará que se ejecuten todos secuencialmente.

Guardamos el archivo y el script ya esta listo para funcionar… o casi 🙂

El aspecto de nuestro script en Gedit
Script en Gedit

Ejecutando el script

Para poder ejecutar nuestro script le tenemos que dar permisos de ejecución. Es algo muy sencillo, nos colocamos en la terminal en la posición de nuestro script y utilizamos el comando chmod.

Para dar permisos al usuario actual nos vale con :

 sudo chmod 775 prueba1.sh

y con la siguiente sentencia damos permisos a todos los usuarios :

 sudo chmod 777 prueba1.sh

Una vez los permisos están concedidos ejecutamos el script con:

 ./prueba1.sh
Con esto ya tenemos nuestro script funcionando y listo para ser ejecutado cuando queramos, en próximos artículos profundizaremos mas en el tema, aquí teneis los artículos que hemos publicado sobre el shell scripting hasta el momento :

 

Sobre el autor / 

AsierPH

Entusiasta de las tecnologías libres y fundador de OvToaster.com | “Las obras de conocimiento deben ser libres, no hay excusas para que no sea así“

Articulos relacionados

7 comentarios

  1. Miguel Ángel 27 abril, 2016 at 7:03 pm -  Responder

    Wow!! muy bueno eres mejor que el mejor de los libros de Linux sigue así

    • AsierPH 29 abril, 2016 at 11:47 am -  Responder

      Hola Miguel Ángel, muchas gracias por el comentario :), pero no es para tanto xD
      Saludos!

    • AsierPH 4 agosto, 2016 at 9:46 am -  Responder

      No es para tanto jajaja

  2. Agustin 22 marzo, 2016 at 4:47 pm -  Responder

    Es muy bueno el articulo de introducción Shell Scripting. Excelente !!

    • AsierPH 26 abril, 2016 at 11:33 am -  Responder

      Siento tardar tanto en responder Agustin, ¡muchas gracias por el comentario! se agradece mucho el apoyo 🙂

  3. Andrea Brenis 10 septiembre, 2015 at 4:53 pm -  Responder

    Felicitaciones por tu pagina es de mucha ayuda …sigue adelante

    Una consulta, como hago para que los comandos ejecutados en el script shell se guarden en un txt?

    • AsierPH 10 septiembre, 2015 at 7:02 pm -  Responder

      Buenos días Andrea. gracias por tu comentario 🙂
      Sobre tu consulta, escribir una entrada sobre la entrada y salida estándar que corresponde a tu duda.
      En cualquier caso si te encuentras en la ubicación del script, seria:
      ./nombreScript.sh > nombre.txt
      Un saludo!

Deja tu comentario

Tu correo no sera publicado. Los campos requeridos están marcados *