¡Escribir un Script Bash de instalación en GNU/Linux Ubuntu!
Introducción
Si eres fiel usuario de Linux y estás continuamente probando nuevas distros o bien formateas tu PC cada X tiempo, estarás harto de volver instalar tus aplicaciones o temas una y otra vez, es un proceso tedioso en el cual se pierde bastante tiempo. Podemos automatizar estos pasos gracias a los scripts utilizando Bash.
Creación y ejecución de un Script
Para crear un script puedes abrir una terminal y escribir el siguiente comando:
touch script.sh && chmod +x script.sh
Básicamente creamos el script con touch
y seguidamente damos permisos de ejecución utilizando chmod
, puedes utilizar
la orden cd
para ubicarte en el directorio donde desees almacenar tu script. Es recomendable añadir la extensión .sh
a tu archivo, por último no olvides dar los permisos de ejecución. Ya puedes modificar tu script y añadir órdenes.
Para ejecutar un script existen varias formas, recomiendo estas dos que son las más sencillas:
./script.sh
bash script.sh
Ejemplo - (A)fter (i)nstall Linux - AiLinux
Aquí puedes ver un script creado por mí que tengo almacenado en un repositorio de mi cuenta de GitHub (enlace a mi perfil a final de página):
#! /bin/bash
# Función que realiza las tareas pertinentes.
function ailinux(){
# Variables.
let proc=9
s_null="/dev/null"
current_user=$(whoami)
# Texto de introducción.
echo "================================================================================"
echo -e " Bienvenido \e[1;34m"$current_user"\e[0m - Script Bash de instalación de recursos básicos tras la "
echo " instalación de Sistemas Operativos GNU/Linux basados en Debian (Ubuntu - Mint) "
echo "================================================================================"
# Indicamos al usuario que comenzamos las tareas.
echo
echo "[Realizando tareas, espere un momento por favor (No cierre la terminal)...]"
echo
echo "Procesos restantes: "$proc
# Tareas.
#
add-apt-repository -y ppa:tualatrix/ppa &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt-get update &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt-get upgrade -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt install ubuntu-restricted-extras -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt install rar unace p7zip-full p7zip-rar sharutils mpack arj -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt install synaptic -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt install aptitude -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt install ubuntu-tweak -y &> $s_null #
let "proc -= 1"
echo "Procesos restantes: "$proc
#
apt-get autoremove -y &> $s_null #
# Indicamos al usuario que hemos finalizado las tareas.
echo
echo "[Tareas finalizadas con éxito]"
echo
# Liberamos Variables.
proc=
s_null=
current_user=
}
# Limpiamos terminal de comandos ejecutados anteriormente.
clear
# Comprobamos que el fichero Bash ha sido ejecutado como SuperUsuario - root.
# En caso FALSE informamos al usuario de que ejecute de nuevo como root.
# En caso TRUE se llama a la función AiLinux.
if [ "$(id -u)" != "0" ]; then
echo
echo "============================================================================"
echo "¡Este Script debe ejecutarse como SuperUsuario!" 1>&2
echo "============================================================================"
echo
exit 1
else
ailinux
exit 1
fi
Suelo utilizar este script en ordenadores que han sido formateados. Realiza la actualización de paquetes, instalación de Ubuntu Tweak, plugins (como por ejemplo Flash), codecs de audio e incluso compresores de archivos como rar o zip. La parte final del script es una sentencia condicional para obligar al usuario a ejecutar el fichero como SuperUsuario.
Conclusión
Como ves las posibilidades son infinitas y puedes crear un script adecuado a tus necesidades, tengo intención de ampliar el mío para que instale otras herramientas o programas que también uso con asiduidad como por ejemplo Atom, GIMP o PlayOnLinux.
¡Te animo a probar y crear los tuyos!
Comentarios