Logo de Linux Mint en duotono

Manual de Supervivencia Linux

Consejos y guías para tu supervivencia
con Linux Mint con MATE.

Comandos de Terminal de GNU/Linux
y Scripts multidistribución

Qué es un script

En Linux todos hemos topado tarde o temprano con un archivo terminado en .sh.
Pero ojo: un script no es «un ejecutable raro» ni un «programilla misterioso». Es simplemente un guion de instrucciones que la máquina interpreta en orden, como si tú estuvieras tecleándolas una tras otra en tu terminal.

La diferencia es que el script no se cansa, no se equivoca al reescribir y siempre repite la misma receta, paso a paso. Ahí está su magia: automatizar lo que de otra forma te haría perder minutos (o incluso horas).

Vamos a ver y entender un ejemplo de principiante: mi_primer_script.sh.

El shebang: la primera línea que manda

Si abres un script verás arriba, en la primera línea, algo así:

#!/bin/bash

Ese «shebang» es como decirle al sistema: lee todo lo que viene a continuación usando este idioma. Normalmente será bash, pero podrías cambiarlo a sh, python o cualquier otro intérprete. Es como elegir entre subtítulos en castellano o en inglés: el guion es el mismo, pero cómo lo entiendas depende del traductor.

Scripts en Linux Mint y en cualquier distribución GNU/Linux

Tu primer guion, explicado de verdad:

  • #!/bin/bash → invoca a Bash como traductor oficial.
  • mensaje=… → guardamos un texto en una variable. Como cuando apuntas una nota en un post-it.
  • clear → limpias la terminal. No es necesario, pero mola empezar con una pantalla limpia.
  • echo → imprime lo que guardaste en la variable. Aquí aparece la gracia del script: él recuerda por ti.
#!/bin/bash
mensaje="Mi primer Script."
clear
echo $mensaje

Ejemplo básico de un script

Hacerlo ejecutable

Aquí viene lo que siempre se olvida el primer día: para que funcione un script es necesario concederle permiso de ejecución.

$ chmod +x mi_primer_script.sh

Nota: si trabajas en tu carpeta de usuario no es necesario sudo

La utilidad real: no repetir instrucciones

Piensa en tareas como respaldar tus documentos. Puedes copiar carpeta a carpeta cada vez, o crear un script que lo haga solito e incluso se guarde con fecha.

Nota: para principiantes aconsejo que usen el editor de texto Xed (Linux Mint), para otras distribuciones usar el que tengáis por defecto. Si ya estáis familiarizados utilizad nano o vim.

#!/bin/bash
fecha=$(date +%F_%H%M)
tar -czf Copia_de_seguridad_$fecha.tar.gz ~/Documentos
echo "Copia de seguridad creada de Documentos: Copia_de_seguridad_$fecha.tar.gz"

Resultado: con un simple ./Copia_de_seguridad.sh ejecutarás la copia. Así obtienes un archivo comprimido con todo tu trabajo y nombre con marca temporal. Eso ya no es teoría, es tiempo real que ganas.

Consejos de la vieja escuela

  • Usa #!/usr/bin/env bash en vez de #!/bin/bash si quieres que tu script funcione en más distribuciones.
  • Coloca en la segunda línea set -euo pipefail y después en la tercera línea IFS=$'\n\t'
    • Con set -e, -u y -o pipefail evitarás errores silenciosos. En los casos que se produzcan el script se detendrá. Es una buena técnica para revisar y limpiar errores.
      • -e→ si cualquier comando devuelve error (exit≠0), el script se detiene. Evita seguir tras fallos.
      • -u→ error si usas una variable no definida. Ejemplo si defines mensaje="Buenos días"y luego lo llamas con echo "$Mensaje", Linux diferencia minúsculas y mayúsculas y generará un error. O en su defecto cometes errores tipográficos.
      • -o pipefail→ en una tubería (cmd1 | cmd2 | cmd3), el exit status del pipeline será el del primer comando que falle. Sin pipefail, Bash sólo mira el último (cmd3), y podría «ocultar» que cmd1 o cmd2 falló.
      • IFS=$'\n\t' → cambia el separador interno de campos para no partir por espacios (sólo por nueva línea y tab). Así, rutas con espacios no se trocean.
  • Muy importante, siempre pon comillas a tus variables: echo "$variable". Evitarás que se rompa todo por un espacio maldito. Éstos hay que tratarlos de una manera especial en Linux: se aplica \ antes del espacio de separación si no se usan comillas.
    • Ejemplo sin uso de comillas: echo Copia\ de\ seguridad\ creada...
    • Simplifica y evita despistes con echo "Copia de seguridad creada..."
XED
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'


comando1 | comando2  # si comando1 falla, el script aborta (con pipefail)
echo "$NO_DEFINIDA"  # con -u, esto aborta; te evita sorpresas
 

Si lo olvidas, bash te lo recordará deteniendo el script.

Conclusión

✔ Si llegaste hasta aquí, ya no ves un script como un archivo extraño, sino como un aliado. La próxima vez que pienses «uf, otra vez teclear esto», recuerda: un script.sh lo puede hacer por ti.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Manual de Supervivencia Linux

Logo de Tux transparente del Manual de Supervivencia Linux

Linux Mint – Mate

Bienvenido a este espacio donde aprender diferentes funciones, características y configuraciones del sistema operativo y su escritorio.

Últimas publicaciones

Últimos Comentarios

No hay comentarios que mostrar.

Filtrar por Categoría

Nube de etiquetas