Podcast
Questions and Answers
¿Qué característica específica distingue a BASH en comparación con PowerShell?
¿Qué característica específica distingue a BASH en comparación con PowerShell?
Qué función cumple el símbolo de comillas inversas (`) en BASH?
Qué función cumple el símbolo de comillas inversas (`) en BASH?
¿Cuál de las siguientes descripciones se aplica a las comillas sencillas en BASH?
¿Cuál de las siguientes descripciones se aplica a las comillas sencillas en BASH?
¿Qué comando se utiliza para ver las variables de entorno en BASH?
¿Qué comando se utiliza para ver las variables de entorno en BASH?
Signup and view all the answers
¿Cómo se declaran variables en BASH?
¿Cómo se declaran variables en BASH?
Signup and view all the answers
¿Qué caracteriza a un Shebang en BASH?
¿Qué caracteriza a un Shebang en BASH?
Signup and view all the answers
¿Qué comando permite desplegar información en la terminal en BASH?
¿Qué comando permite desplegar información en la terminal en BASH?
Signup and view all the answers
¿Cuál de los siguientes operadores es un operador lógico en Bash?
¿Cuál de los siguientes operadores es un operador lógico en Bash?
Signup and view all the answers
¿Qué significa 'fi' en la estructura condicional de Bash?
¿Qué significa 'fi' en la estructura condicional de Bash?
Signup and view all the answers
En la estructura del ciclo 'until', ¿cuándo se ejecutan los comandos dentro del bloque?
En la estructura del ciclo 'until', ¿cuándo se ejecutan los comandos dentro del bloque?
Signup and view all the answers
¿Cuál es la sintaxis correcta para un ciclo 'for' en Bash?
¿Cuál es la sintaxis correcta para un ciclo 'for' en Bash?
Signup and view all the answers
¿Cómo se puede incluir múltiples condiciones en una evaluación lógica en Bash?
¿Cómo se puede incluir múltiples condiciones en una evaluación lógica en Bash?
Signup and view all the answers
La estructura del comando 'case' en Bash se utiliza para...
La estructura del comando 'case' en Bash se utiliza para...
Signup and view all the answers
¿Qué hace el operador '!' en Bash?
¿Qué hace el operador '!' en Bash?
Signup and view all the answers
¿Cuál es el propósito principal del script creado en Bash?
¿Cuál es el propósito principal del script creado en Bash?
Signup and view all the answers
¿Qué comandos se utilizan para obtener el uso de memoria en Bash?
¿Qué comandos se utilizan para obtener el uso de memoria en Bash?
Signup and view all the answers
¿Cuál es la función del comando 'bc' en el script?
¿Cuál es la función del comando 'bc' en el script?
Signup and view all the answers
¿Qué se debe hacer antes de ejecutar el script 'monitor.sh' para asegurar su funcionamiento?
¿Qué se debe hacer antes de ejecutar el script 'monitor.sh' para asegurar su funcionamiento?
Signup and view all the answers
En el script, ¿qué condición desencadena una alerta sobre el uso de CPU?
En el script, ¿qué condición desencadena una alerta sobre el uso de CPU?
Signup and view all the answers
¿Qué línea de código es responsable de iniciar el monitoreo en un ciclo continuo?
¿Qué línea de código es responsable de iniciar el monitoreo en un ciclo continuo?
Signup and view all the answers
¿Cuál es la función principal de netcat en el script de escaneo de puertos?
¿Cuál es la función principal de netcat en el script de escaneo de puertos?
Signup and view all the answers
¿Qué herramienta se debe verificar que se encuentre instalada para realizar el escaneo de puertos en el script?
¿Qué herramienta se debe verificar que se encuentre instalada para realizar el escaneo de puertos en el script?
Signup and view all the answers
¿Qué comando se utiliza para filtrar los puertos abiertos en los resultados de nmap?
¿Qué comando se utiliza para filtrar los puertos abiertos en los resultados de nmap?
Signup and view all the answers
¿Cuál es el propósito de la línea 'nmap -p $port_range $ip_range -oG - | grep "/open" > nmap_results.txt' en el script?
¿Cuál es el propósito de la línea 'nmap -p $port_range $ip_range -oG - | grep "/open" > nmap_results.txt' en el script?
Signup and view all the answers
En el script, ¿qué información se extrae al ejecutar el comando 'awk '{print $2}' en el contexto del bucle?
En el script, ¿qué información se extrae al ejecutar el comando 'awk '{print $2}' en el contexto del bucle?
Signup and view all the answers
¿Qué efecto tiene el uso de 'nc -zv $ip $port' dentro del script?
¿Qué efecto tiene el uso de 'nc -zv $ip $port' dentro del script?
Signup and view all the answers
¿Qué rol juega el comando 'grep -q "open"' en el contexto del script?
¿Qué rol juega el comando 'grep -q "open"' en el contexto del script?
Signup and view all the answers
¿Qué efecto tiene la redirección '>' en el comando 'grep "/open" > nmap_results.txt'?
¿Qué efecto tiene la redirección '>' en el comando 'grep "/open" > nmap_results.txt'?
Signup and view all the answers
¿Qué comando se utiliza para obtener el uso del disco en el script?
¿Qué comando se utiliza para obtener el uso del disco en el script?
Signup and view all the answers
Cuál de las siguientes afirmaciones describe correctamente la función que verifica el uso de la memoria?
Cuál de las siguientes afirmaciones describe correctamente la función que verifica el uso de la memoria?
Signup and view all the answers
¿Qué función del script se encarga de proporcionar estadísticas de rendimiento del sistema?
¿Qué función del script se encarga de proporcionar estadísticas de rendimiento del sistema?
Signup and view all the answers
En la verificación del uso de CPU, ¿cómo se calcula el porcentaje de uso del CPU?
En la verificación del uso de CPU, ¿cómo se calcula el porcentaje de uso del CPU?
Signup and view all the answers
Si el uso del disco supera el umbral definido, ¿qué mensaje se imprime en la consola?
Si el uso del disco supera el umbral definido, ¿qué mensaje se imprime en la consola?
Signup and view all the answers
Study Notes
Introducción a Bash Scripting en Linux
- Shell permite una comunicación efectiva entre el usuario y el sistema operativo.
- Linux es un sistema operativo derivado de UNIX con múltiples intérpretes de comandos.
Intérpretes de Comandos
- BASH: Versión extendida del Bourne shell de UNIX, ubicado en /bin/bash.
- Tcsh: Otro intérprete, ubicado en /bin/tcsh.
Sintaxis de Comandos en Bash
- Comando: Instrucción principal a ejecutar.
-
Parámetros: Argumentos adicionales que pueden seguir al comando.
- Parámetro1, Parámetro2, ...: Se pueden añadir múltiples parámetros.
Características Importantes de Bash
- Sensible a mayúsculas y minúsculas; se utilizan flechas arriba y abajo para navegar por el historial de comandos.
- Se utiliza el símbolo de tabulación (TAB) para autocompletar comandos.
- Comillas inversas (```): Reemplazan el contenido encerrado por su resultado.
- Comillas sencillas (' '): Indican que no se realizará ninguna expansión.
- Comillas dobles (" "): Aceptan la expansión de variables, excepto lo que esté entre comillas inversas.
Variables de Entorno en Bash
- Configuradas por el sistema y equivalentes a variables automáticas en otros intérpretes.
- Para ver las variables de entorno se usa el comando
$env
.
Parámetros y Comandos Básicos
- Los parámetros se inician con guiones (-) o dos guiones (--).
- Comandos básicos son similares a PowerShell (PS) y cmd, incluyen varios comandos útiles.
Shebang
- Instrucción que indica la ruta al intérprete de órdenes para scripts.
- Ejemplo común para BASH:
#!/bin/bash
. - También disponible para otros lenguajes como Python y Perl.
Declaración de Variables y Entrada/Salida en Bash
- Las variables se declaran directamente al usarse, sin necesidad de definir tipo de dato, e.g.,
STR="Hola mundo!"
. - Para entrada desde el teclado:
read -p "Entra un dato:" variable
. - Para mostrar información en terminal:
echo "Variable capturada: $variable"
.
Operadores en Bash
- Existen operadores aritméticos, de comparación y lógicos.
- Ejemplos de operadores:
- Aritméticos:
+
,-
,*
,/
,%
. - Comparación:
==
,!=
,<
,>
. - Lógicos:
&&
,||
,!
.
- Aritméticos:
Condicionales y Ciclos en Bash
-
Condicionales:
- Sintaxis básica:
if [condición]; then Instrucción1; elif [condición2]; then Instrucción2; else Instrucción3; fi
. - Uso de múltiples
elif
y opcionalelse
.
- Sintaxis básica:
-
Ciclo for:
- Sintaxis:
for VARIABLE in VALORES; do Comandos; done
. - Asigna a VARIABLE el valor de cada elemento en VALORES.
- Sintaxis:
-
Ciclo while:
- Sintaxis básica:
while [condición]; do Comandos; done
.
- Sintaxis básica:
-
Ciclo until:
- Se utiliza para ejecutar comandos repetidamente hasta que se cumple una condición.
- Sintaxis:
until [condición]; do Comandos; done
.
Referencias
- Para profundizar, consultar El Manual de BASH Scripting Básico para principiantes.
Introducción a Bash - Monitoreo de CPU y Memoria
- Objetivo: Crear un script en Bash que monitoree uso de CPU y memoria, generando alertas si se superan umbrales específicos.
- El script se llama
monitor.sh
.
Creación del Script
-
Shebang: Añadir
#!/bin/bash
al inicio para especificar que se ejecutará con Bash.
Definición de Umbrales
- Establecer variables para los umbrales de uso:
-
CPU_THRESHOLD=80
(umbral de uso de CPU). -
MEM_THRESHOLD=80
(umbral de uso de memoria).
-
Obtención de Uso
- Uso de comandos para medir el rendimiento:
-
CPU:
-
CPU_USAGE=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2 + $4}')
.
-
-
Memoria:
-
MEM_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
.
-
-
CPU:
Verificación de Umbrales
- Usar condicionales para comprobar si el uso supera umbrales:
-
Uso de CPU:
-
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then echo "Alerta: Uso de CPU alto - $CPU_USAGE%"
.
-
-
Uso de Memoria:
-
if (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then echo "Alerta: Uso de memoria alto - $MEM_USAGE%"
.
-
-
Uso de CPU:
Monitoreo Continuo
- Implementar un ciclo
while
para la supervisión continua:- Se repite la obtención y verificación cada 5 segundos:
- Al finalizar cada ciclo se incluye
sleep 5
.
- Al finalizar cada ciclo se incluye
- Se repite la obtención y verificación cada 5 segundos:
Ejecución del Script
- Guardar el archivo
monitor.sh
. - Usar
chmod +x monitor.sh
para otorgar permisos de ejecución. - Ejecutar con
./monitor.sh
.
Resumen del Código
-
Shebang (
#!/bin/bash
): Define el intérprete a utilizar. - Variables: Se utilizan para establecer límites en el uso de recursos del sistema.
-
Comandos: Utiliza herramientas como
top
,grep
,awk
yfree
para la recolección de datos del sistema.
Objetivo de la Actividad
- Desarrollar un script en Bash que use nmap y netcat para escanear puertos abiertos en una red.
Trabajo en Equipo
- Trabajo colaborativo en equipos de 2 a 3 personas.
Preparación del Entorno
- Instalación de nmap y netcat necesaria antes de comenzar.
- Comando para instalación de nmap y netcat no especificado, pero se asume que se debe investigar.
Servicio SSH
- Es necesario iniciar el servicio SSH antes de ejecutar el script para permitir la conexión remota.
Creación del Script
- Crear un archivo llamado
port_scan2.sh
usando un editor de texto. - Incluir el código relevante en el archivo (código no proporcionado).
Ejecutabilidad del Script
- Guardar el archivo creado.
- Hacer el script ejecutable utilizando un comando adecuado.
Probar el Script
- Ejecutar el script con la IP 127.0.0.1.
- Realizar pruebas en los puertos del 20 al 25.
Explicación del Código
- Realizar una explicación detallada del código desde la línea 11 en adelante.
- Enfocarse en líneas que tengan parámetros de entrada y utilicen pipes.
- Preparar un documento que contemple explicaciones de cada línea y funciones del script.
Entregables
- Entrega del documento con las explicaciones y la lista de nombres de todos los integrantes del equipo.
- No se aceptarán envíos por Teams.
Objetivo de la Actividad
- Desarrollar un script en Bash que use nmap y netcat para escanear puertos abiertos en una red.
Trabajo en Equipo
- Trabajo colaborativo en equipos de 2 a 3 personas.
Preparación del Entorno
- Instalación de nmap y netcat necesaria antes de comenzar.
- Comando para instalación de nmap y netcat no especificado, pero se asume que se debe investigar.
Servicio SSH
- Es necesario iniciar el servicio SSH antes de ejecutar el script para permitir la conexión remota.
Creación del Script
- Crear un archivo llamado
port_scan2.sh
usando un editor de texto. - Incluir el código relevante en el archivo (código no proporcionado).
Ejecutabilidad del Script
- Guardar el archivo creado.
- Hacer el script ejecutable utilizando un comando adecuado.
Probar el Script
- Ejecutar el script con la IP 127.0.0.1.
- Realizar pruebas en los puertos del 20 al 25.
Explicación del Código
- Realizar una explicación detallada del código desde la línea 11 en adelante.
- Enfocarse en líneas que tengan parámetros de entrada y utilicen pipes.
- Preparar un documento que contemple explicaciones de cada línea y funciones del script.
Entregables
- Entrega del documento con las explicaciones y la lista de nombres de todos los integrantes del equipo.
- No se aceptarán envíos por Teams.
Script de Escaneo de Puertos en Bash
- El script permite escanear direcciones IP o rangos de IP, así como rangos de puertos especificados por el usuario.
- Utiliza
read
para solicitar al usuario la dirección IP/rango e el rango de puertos que se desea escanear. -
nmap
se ejecuta para escanear los puertos en el rango especificado sobre la dirección IP/rango indicado. - Los resultados del escaneo se guardan en un archivo llamado
nmap_results.txt
en formato grepable (-oG
). -
grep
se utiliza para filtrar y extraer solo los puertos abiertos del resultado denmap
.
Verificación de Puertos Abiertos
- Se utiliza un bucle
while
para leer cada línea del archivonmap_results.txt
. -
awk
se usa para extraer la dirección IP de cada línea. -
grep -oP
permite extraer los puertos abiertos del resultado y se separan en una lista. - Para cada puerto abierto encontrado, se utiliza
netcat
(nc
) para verificar si realmente está abierto en la dirección IP especificada. - La opción
-zv
denc
se utiliza para realizar el escaneo sin enviar datos, ygrep
se utiliza para verificar la respuesta "open".
Requisitos y Utilidades
- Herramienta necesaria:
nmap
, se utiliza ampliamente para escaneo de redes. - Herramienta necesaria:
netcat (nc)
, útil para pruebas de conectividad entre hosts. - Ambos comandos son esenciales para realizar una auditoría de seguridad en redes.
Monitoreo de Recursos del Sistema
- Se establecen umbrales de alerta para la CPU, memoria y disco, fijados en un 80%.
- El script utiliza diversas herramientas de Linux para monitorear el uso de los recursos del sistema.
Verificación del Uso del CPU
- Se emplea el comando
top
para obtener el uso del CPU y se calcula el porcentaje de uso. - Se muestra un mensaje de alerta si el uso del CPU supera el umbral establecido.
Verificación del Uso de la Memoria
- Se utiliza el comando
free
para calcular el porcentaje de memoria utilizado. - Se genera una alerta si el uso de la memoria excede el umbral de 80%.
Verificación del Uso del Disco
- Se usa el comando
df
para obtener el porcentaje de uso del disco. - Se envía una alerta si el uso del disco sobrepasa el umbral especificado.
Verificación del Rendimiento del Sistema
- La función
check_vmstat
utilizavmstat
para monitorear el rendimiento del sistema, mostrando información del estado del sistema cada segundo durante 5 segundos. - La función
check_iostat
utilizaiostat
para verificar el rendimiento del disco, proporcionando detalles sobre las actividades de entrada/salida del disco durante el mismo período.
Ejecución de las Funciones de Verificación
- Las funciones de verificación se ejecutan secuencialmente, proporcionando un panorama completo del estado del sistema.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Este cuestionario ofrece una introducción al uso de Bash y la escritura de scripts en Linux. Aprenderás sobre la comunicación entre el núcleo y el usuario, así como los diferentes intérpretes de comandos disponibles en Linux. Ideal para principiantes que desean profundizar en el sistema operativo basado en UNIX.