Introducción a Bash y Scripting en Linux
33 Questions
0 Views

Introducción a Bash y Scripting en Linux

Created by
@PlentifulMonkey

Questions and Answers

¿Qué característica específica distingue a BASH en comparación con PowerShell?

  • BASH es insensible a mayúsculas y minúsculas
  • BASH es compatible con múltiples sistemas operativos
  • BASH no tiene historial de comandos
  • BASH es sensible a mayúsculas y minúsculas (correct)
  • Qué función cumple el símbolo de comillas inversas (`) en BASH?

  • Ejecutar comandos de forma asíncrona
  • Indicar inicio y fin de un comando
  • Reemplazar el texto encerrado con su resultado (correct)
  • Dividir comandos largos en varias líneas
  • ¿Cuál de las siguientes descripciones se aplica a las comillas sencillas en BASH?

  • Son equivalentes a las comillas dobles en términos de expansión.
  • Indican que el texto dentro no será procesado por el sistema. (correct)
  • Permiten la expansión de variables y comandos.
  • Se utilizan solamente para cadenas de texto largas.
  • ¿Qué comando se utiliza para ver las variables de entorno en BASH?

    <p>env</p> Signup and view all the answers

    ¿Cómo se declaran variables en BASH?

    <p>Directamente cuando se van a usar.</p> Signup and view all the answers

    ¿Qué caracteriza a un Shebang en BASH?

    <p>Indica la ruta hacia el interprete de órdenes que debe usarse.</p> Signup and view all the answers

    ¿Qué comando permite desplegar información en la terminal en BASH?

    <p>echo</p> Signup and view all the answers

    ¿Cuál de los siguientes operadores es un operador lógico en Bash?

    <p>-o</p> Signup and view all the answers

    ¿Qué significa 'fi' en la estructura condicional de Bash?

    <p>Cierre de un condicional</p> Signup and view all the answers

    En la estructura del ciclo 'until', ¿cuándo se ejecutan los comandos dentro del bloque?

    <p>Hasta que la condición sea falsa</p> Signup and view all the answers

    ¿Cuál es la sintaxis correcta para un ciclo 'for' en Bash?

    <p>for variable [in lista]; do comandos; done</p> Signup and view all the answers

    ¿Cómo se puede incluir múltiples condiciones en una evaluación lógica en Bash?

    <p>Usando -a y -o en secuencia</p> Signup and view all the answers

    La estructura del comando 'case' en Bash se utiliza para...

    <p>Evaluar múltiples condiciones en una variable</p> Signup and view all the answers

    ¿Qué hace el operador '!' en Bash?

    <p>Negar un valor booleano</p> Signup and view all the answers

    ¿Cuál es el propósito principal del script creado en Bash?

    <p>Monitorear el uso de CPU y memoria del sistema.</p> Signup and view all the answers

    ¿Qué comandos se utilizan para obtener el uso de memoria en Bash?

    <p>free | grep Mem | awk '{print $3/$2 * 100.0}'</p> Signup and view all the answers

    ¿Cuál es la función del comando 'bc' en el script?

    <p>Realizar cálculos de precisión arbitraria.</p> Signup and view all the answers

    ¿Qué se debe hacer antes de ejecutar el script 'monitor.sh' para asegurar su funcionamiento?

    <p>Asignarle permisos de ejecución usando 'chmod'.</p> Signup and view all the answers

    En el script, ¿qué condición desencadena una alerta sobre el uso de CPU?

    <p>Cuando $CPU_USAGE es mayor que $CPU_THRESHOLD.</p> Signup and view all the answers

    ¿Qué línea de código es responsable de iniciar el monitoreo en un ciclo continuo?

    <p>while true; do</p> Signup and view all the answers

    ¿Cuál es la función principal de netcat en el script de escaneo de puertos?

    <p>Escuchar conexiones en un puerto específico</p> Signup and view all the answers

    ¿Qué herramienta se debe verificar que se encuentre instalada para realizar el escaneo de puertos en el script?

    <p>nmap</p> Signup and view all the answers

    ¿Qué comando se utiliza para filtrar los puertos abiertos en los resultados de nmap?

    <p>grep '/open'</p> 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?

    <p>Filtrar y guardar solo los puertos abiertos en nmap_results.txt.</p> 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?

    <p>La dirección IP asociada con el puerto abierto.</p> Signup and view all the answers

    ¿Qué efecto tiene el uso de 'nc -zv $ip $port' dentro del script?

    <p>Verifica si el puerto está abierto y muestra la información detallada.</p> Signup and view all the answers

    ¿Qué rol juega el comando 'grep -q "open"' en el contexto del script?

    <p>Confirma que el puerto está abierto y evita imprimir el resultado en pantalla.</p> Signup and view all the answers

    ¿Qué efecto tiene la redirección '>' en el comando 'grep "/open" > nmap_results.txt'?

    <p>Escribe los resultados en un nuevo archivo, reemplazando su contenido.</p> Signup and view all the answers

    ¿Qué comando se utiliza para obtener el uso del disco en el script?

    <p>df</p> Signup and view all the answers

    Cuál de las siguientes afirmaciones describe correctamente la función que verifica el uso de la memoria?

    <p>Compara el uso de memoria con un umbral definido.</p> Signup and view all the answers

    ¿Qué función del script se encarga de proporcionar estadísticas de rendimiento del sistema?

    <p>check_vmstat</p> Signup and view all the answers

    En la verificación del uso de CPU, ¿cómo se calcula el porcentaje de uso del CPU?

    <p>Restando el porcentaje de uso de CPU idle del 100%.</p> Signup and view all the answers

    Si el uso del disco supera el umbral definido, ¿qué mensaje se imprime en la consola?

    <p>ALERTA: Uso del disco por encima del 80%!</p> 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: &&, ||, !.

    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 opcional else.
    • Ciclo for:

      • Sintaxis: for VARIABLE in VALORES; do Comandos; done.
      • Asigna a VARIABLE el valor de cada elemento en VALORES.
    • Ciclo while:

      • Sintaxis básica: while [condición]; do Comandos; done.
    • 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}').

    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%".

    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.

    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 y free 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 de nmap.

    Verificación de Puertos Abiertos

    • Se utiliza un bucle while para leer cada línea del archivo nmap_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 de nc se utiliza para realizar el escaneo sin enviar datos, y grep 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 utiliza vmstat para monitorear el rendimiento del sistema, mostrando información del estado del sistema cada segundo durante 5 segundos.
    • La función check_iostat utiliza iostat 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.

    Quiz Team

    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.

    More Quizzes Like This

    Bash Scripting
    12 questions

    Bash Scripting

    ZippyUvarovite avatar
    ZippyUvarovite
    Localization Pop Quiz 1
    5 questions

    Localization Pop Quiz 1

    GuiltlessAshcanSchool avatar
    GuiltlessAshcanSchool
    Use Quizgecko on...
    Browser
    Browser