Si bien lo usamos generalmente para operaciones administrativas o de gestión de archivos, la consola de Linux extiende su funcionalidad mucho más allá de ese propósito, permitiéndonos programar scripts acorde a nuestras necesidades.
Básicamente decimos que es un archivo que contiene código escrito en determinado lenguaje de programación que el sistema usa para determinada tarea. No es necesario que tenga una entrada externa ni interfaz gráfica, pero sí que provoque una salida de datos procesados.
Para empezar debemos contar con un editor de texto y ganas de programar. Los archivos que guardamos con extensión .sh podrán ser ejecutados (o interpretados) por la consola, siempre y cuando la primera línea sea la siguiente:
#!/bin/bash
Esto le dice al sistema que deberá usar la consola para ejecutar el archivo. Además, el carácter # permite escribir comentarios.
Vamos a probar varios ejemplos
Creamos un archivo denominadp descargas.sh
#!/bin/bash #creamos un alias llamado descargas con la dirección del directorio Descargas alias descargas=’/home/usuario/Descargas’
Guárdalo como descargas.sh
Para lanzar el script’ Bash, dále permisos de ejecución. Para ello escribe enlaterminal de comandos:
chmod u+x descargas.shRecuerda ejecutar este comando para cada script que crees
Lanza el ‘script’ ejecutando en la terminal
./descargas.shSi funciono deberas quedar posicionado en el directorio Descargas
Utilizar variables y parametros en el script
#!/bin/bash # Utilizando de variables # echo "Tu primer argumento es" $1 echo "Tu segundo argumento es" $2
La forma de ejecutar el script sera por ejemplo
./miScript.sh hola 4
El resultado debera ser
Tu primer argumento es hola
Tu segundo argumento es 4
Como hacer que durante la ejecucion se pueda ingresar variables y parametros
#!/bin/bash echo “Ingresá tu nombre y presioná ENTER” #Leemos la variable nombre read nombre echo “Tu nombre es $nombre”
Un ejemplo mas útil de un script que nos dira que procesos ejecuta un determinado usuario que se ingresa
#!/bin/bash RES=s #respuesta al bucle continuar si while [ $RES = s ] do echo "Introducir nombre de usuario:" read USU #nombre de usuario ps aux|grep $USU echo "¿Desea continuar?" read RES done
Si queremos impedir que cualquier usuario pueda ejecutar el script al principio podemos poner el siguiente codigo para que solo pueda ser ejecutado por el usuario root
#!/bin/bash if [[ $EUID -ne 0 ]]; then echo "Este script debe ser ejecutado por el usuario root" 1>&2 exit 1 fiSi cualquier otro usuario intenta ejecutar el script, este no funcionara y la ventana de terminal se cerrara.
Tambien podemos permitir a algunos usuarios ejecutalo para ellos al principio pondremos el siguiente codigo
#!/bin/bash AUTHORIZED_USER="usuariopermitido" if [ $USER != $AUTHORIZED_USER ]; then echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2 exit 1 fi
Crearemos un menu bash para dar distintas opciones ya sea a un usuario o para facilitar la interaccion
#!/bin/bash clear while : do echo " Escoja una opcion " echo "1. Usuario conectados?" echo "2. Consumo de recursos" echo "3. Servicios funcionando?" echo "4. Salir" echo -n "Seleccione una opcion [1 - 4]" read opcion case $opcion in 1) echo "Estan conectados:"; who;; 2) echo "Ejecutando htop"; htop;; 3) lsof -n -i -P | grep '*;; 4) echo "Fin"; exit 1;; *) echo "$opc es una opcion invalida?"; echo "Presiona una tecla para continuar..."; read foo;; done
a ver si me animo y subo yo algún otro tuto.