Skip to content
IRC-CodingIRC-Coding
LinuxBashShell ScriptingTutorialAutomatizaciónCommand Line

Tutorial Bash Linux: Guía Rápida de Scripting

Aprende los fundamentos de Bash scripting en Linux en menos de 5 minutos. Guía práctica para principiantes.

S

schutzgeist

3 min read
Tutorial Bash Linux: Guía Rápida de Scripting

Introducción rápida en menos de 5 minutos

Si deseas aprender programación en Bash, te recomendamos el siguiente libro en Amazon: https://amzn.to/3WQnERX (este es un enlace de afiliado externo que te llevará a Amazon)

Tutorial de Programación Linux BASH en Español

Este es un tutorial rápido de programación en Bash para Linux. En pocos minutos serás capaz de escribir scripts y programas sencillos. Además, esta guía te ayudará a avanzar más rápidamente cuando trabajes con libros de programación.

Como es habitual, todo “de forma concisa”

1. Variables

Las variables almacenan datos que puedes usar en tu script.

server="irc.IRC-Mania.com"
port=6667

2. Echo

Usa echo para imprimir texto.

echo "Conectando a $server en el puerto $port..."

3. Ejecutar comandos

Utiliza backticks o $() para ejecutar comandos.

> hostname=$(hostname) > echo "Mi hostname es $hostname"

4. If-Else

Verifica condiciones con if.

if [ "$port" -eq 6667 ]; then echo "Puerto IRC estándar detectado." else echo "Puerto no estándar." fi

5. Bucles

Bucle for

Itera sobre una lista de servidores.

> for server in "irc.example.com" "irc.freenode.net"; do > echo "Conectando a $server..." > done

Bucle while

Repite hasta que se cumpla una condición.

connected=0 while [ $connected -eq 0 ]; do nc -z $server $port && connected=1 sleep 5 done echo "¡Conexión establecida!"

6. Funciones

Define bloques reutilizables.

> conectar_servidor() { > echo "Intentando conectar a $1..." > nc -z $1 $port && echo "¡Conexión a $1 exitosa!" > }

conectar_servidor “irc.irc-mania.com”

7. Case

Ramifica según las entradas.

> command="PRIVMSG" > > case $command in > "JOIN") echo "Un usuario se ha unido." ;; > "PART") echo "Un usuario ha abandonado el canal." ;; > "PRIVMSG") echo "Se ha recibido un mensaje." ;; > *) echo "Comando desconocido." ;; > esac

8. Arrays

Almacena múltiples valores en un array.

channels=("general" "help" "random")
echo "Me estoy uniendo a ${channels[0]}."

9. Leer y escribir archivos

Leer

Lee un archivo línea por línea.

> while IFS= read -r line; do > echo "Recibido: $line" > done < irc_messages.log

Escribir

Escribe en un archivo.

> echo "Mensaje enviado a $server" >> irc_log.txt

10. Entrada y Salida

Redirección de salida

Guarda la salida de un comando.

nc -z $server $port > /dev/null 2>&1

Pipes

Conecta comandos.

echo "Hello IRCWorld" | tr 'a-z' 'A-Z'

11. Gestión de procesos

Procesos en segundo plano

Ejecuta un comando en segundo plano.

> ping $server **&**

Terminar un proceso

Detén un proceso.

kill %1

12. Depuración

Usa set -x para depuración.

set -x
conectar_servidor "irc.example.com"
set +x

13. Argumentos de línea de comandos

Usa argumentos de entrada en tu script.

if [ "$1" = "start" ]; then echo "Iniciando el cliente IRC..." fi

14. Cron Jobs

Automatiza scripts con Cron.

0 0 * * * /path/to/irc_script.sh

Ahora conoces los pilares fundamentales de la programación en Bash para Linux. Pasemos a generar ejemplos prácticos y útiles para que puedas comenzar a ser productivo de inmediato. Como usuario de Linux e IRC, he adaptado los ejemplos en consecuencia.

Ejemplos prácticos de programación con IRC en Linux

1. Conectarse automáticamente y enviar mensajes a un canal IRC

Este script se conecta automáticamente a un servidor IRC, se une a un canal y envía un mensaje.

#!/bin/bash

server="irc.example.com"
port=6667
nickname="MiNick"
channel="#micanal"
message="¡Hola, este es un mensaje automático!"

exec 3<>/dev/tcp/$server/$port

echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3
sleep 2
echo "PRIVMSG $channel :$message" >&3

2. Monitorear un canal IRC y responder automáticamente

Este script monitorea los mensajes en un canal IRC y responde automáticamente a ciertas palabras clave.

#!/bin/bash

server="irc.example.com"
port=6667
nickname="BotNick"
channel="#micanal"

exec 3<>/dev/tcp/$server/$port

echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3

while IFS= read -r line <&3; do
    echo "$line"
    if [[ "$line" == *"hello"* ]]; then
        echo "PRIVMSG $channel :¡Hola! ¿Cómo puedo ayudarte?" >&3
    fi
done

3. Recopilar estadísticas de un canal IRC

Este script recopila información sobre la actividad en un canal IRC, como el número de mensajes por usuario, y la guarda en un archivo.

#!/bin/bash

server="irc.example.com"
port=6667
nickname="StatBot"
channel="#micanal"
statsfile="channel_stats.txt"

exec 3<>/dev/tcp/$server/$port

echo "NICK $nickname" >&3
echo "User $nickname 0 * :$nickname" >&3
sleep 5
echo "JOIN $channel" >&3

declare -A user_stats

while IFS= read -r line <&3; do
    if [[ "$line" =~ ^:([^!]+)! ]]; then
        user="${BASH_REMATCH[1]}"
        ((user_stats["$user"]++))
    fi
done

Si deseas aprender programación en Bash, te recomendamos el siguiente libro en Amazon:

https://amzn.to/3WQnERX (este es un enlace de afiliado externo que te llevará a Amazon)

Volver al blog
Share:

Entradas relacionadas