Autor: ciberkaos

  • Laboratorio móvil de ciberseguridad 2: Diseño físico de la maleta: montaje modular con LEGO Technic

    Laboratorio móvil de ciberseguridad 2: Diseño físico de la maleta: montaje modular con LEGO Technic

    🎧 Resumen en audio del tema
    Escucha este audio para repasar las ideas y los objetivos principales de este proyecto antes de continuar o al finalizar la lectura.

    En la primera parte del proyecto presenté la idea general: construir un laboratorio móvil dentro de una maleta, pensado para usarlo en clases, demostraciones y prácticas relacionadas con ASIR, redes, sistemas y ciberseguridad.

    La idea no es construir un simple maletín con aparatos dentro, sino una pequeña plataforma técnica, transportable y reutilizable, que pueda servir para diferentes escenarios:

    • prácticas de redes;
    • laboratorios de ciberseguridad;
    • pruebas con Raspberry Pi;
    • despliegue de servicios;
    • análisis de tráfico;
    • monitorización;
    • almacenamiento;
    • automatización;
    • simulación de infraestructuras pequeñas.

    Una vez planteada la idea general, llega una de las partes más importantes y, al mismo tiempo, una de las más complicadas para mí: cómo sujetar todos los elementos dentro de la maleta de forma ordenada, segura y modificable.

    Podría utilizar madera, metacrilato, impresión 3D, piezas metálicas o soportes hechos a medida, pero en mi caso hay un condicionante importante: no tengo grandes conocimientos de carpintería, trabajo con plásticos o fabricación de piezas. Tampoco quiero que el proyecto se bloquee porque necesite herramientas especiales o un acabado perfecto desde el principio.

    Por eso he decidido usar una solución más sencilla, modular y muy flexible: LEGO Technic.


    La idea principal

    La idea es forrar el fondo de la maleta, y posiblemente también la tapa, con planchas base compatibles con LEGO. Sobre esas planchas iré construyendo estructuras con piezas LEGO Technic para sujetar los componentes, ordenar los cables y crear diferentes niveles o “pisos”.

    De esta forma, en lugar de tener que cortar, taladrar y fabricar piezas a medida desde el primer día, podré ir probando distribuciones y modificarlas fácilmente.

    La estructura inicial podría dividirse en dos zonas:

    TAPA DE LA MALETA

    ├── Pantalla
    ├── Router o punto de acceso
    ├── Switch
    ├── Panel de conexiones
    └── Guiado de cables


    FONDO DE LA MALETA

    ├── Fuente de alimentación
    ├── Caja de fusibles
    ├── Conversores DC-DC
    ├── Raspberry Pi
    ├── SSD / HDD
    ├── Hub USB
    └── Canalización de cables

    No busco que el primer diseño sea definitivo. De hecho, lo más probable es que vaya cambiando. Y precisamente esa es una de las razones por las que LEGO Technic puede funcionar muy bien en este proyecto.

    Prototipo generado con IA

    ¿Por qué usar LEGO Technic?

    A primera vista puede parecer una solución poco profesional, incluso algo improvisada. Sin embargo, para este tipo de proyecto tiene bastante sentido.

    LEGO Technic permite crear estructuras resistentes, desmontables y ajustables. Sus vigas perforadas, conectores, ejes y pines permiten montar soportes, marcos, guías y separadores sin tener que fabricar piezas desde cero.

    Además, este proyecto tiene una parte claramente educativa. Usar LEGO Technic permite que el montaje sea más visual y fácil de entender. Los alumnos podrán ver claramente cómo están organizados los elementos, cómo se separan las zonas y cómo se puede rediseñar una estructura cuando algo no funciona como esperábamos.

    No se trata de usar LEGO como un juguete, sino como una herramienta de prototipado.


    Ventajas de esta solución

    Usar LEGO Technic puede aportar varias ventajas importantes:

    VentajaExplicación
    ModularidadPermite cambiar la distribución sin rehacer todo el montaje
    AccesibilidadNo requiere herramientas complejas
    ReutilizaciónLas piezas se pueden desmontar y volver a usar
    RapidezSe pueden probar ideas de forma muy ágil
    Diseño por nivelesPermite crear pisos y soportes elevados
    OrganizaciónFacilita guiar cables y separar zonas
    VisualAyuda a explicar el diseño a los alumnos
    DidácticoMuestra el proceso de prototipado y mejora continua

    Una de las grandes ventajas es que no necesito acertar con el diseño a la primera. Puedo montar una primera versión, comprobar si cabe todo, ver si los cables llegan bien, probar la ventilación y después modificar lo necesario.


    Límites de esta solución

    También hay que ser realista. LEGO Technic no sirve para todo.

    No debe utilizarse como soporte principal de elementos peligrosos, pesados o que puedan calentarse mucho. Tampoco debe usarse como protección eléctrica para la zona de 230 V.

    Esto es importante:

    LEGO Technic puede servir para ordenar, separar, elevar y sujetar elementos ligeros, pero no debe ser la base de la seguridad eléctrica del proyecto.

    Por tanto, usaré LEGO principalmente para:

    • crear soportes;
    • elevar placas;
    • guiar cables;
    • hacer marcos;
    • crear pisos;
    • organizar zonas;
    • facilitar el desmontaje;
    • mejorar la presentación visual.

    Pero evitaré depender solo de LEGO para:

    • sujetar la fuente de alimentación si pesa bastante;
    • proteger conexiones de 230 V;
    • fijar elementos que soporten tirones;
    • sujetar discos duros mecánicos sin apoyo adicional;
    • colocar piezas junto a zonas con mucho calor;
    • soportar elementos que puedan moverse durante el transporte.

    Para estos casos, usaré refuerzos adicionales: tornillos, bridas, velcro industrial, separadores, soportes metálicos o piezas específicas.

    Prototipo Generado con IA


    Diseño general de la maleta

    La maleta que voy a utilizar es más parecida a una maleta rígida de aluminio o herramientas que a una maleta tipo militar o Pelican. Esto condiciona bastante el diseño.

    Este tipo de maleta suele tener:

    • fondo relativamente plano;
    • tapa con cierta profundidad;
    • paredes interiores no demasiado gruesas;
    • bisagras metálicas;
    • cierres frontales;
    • asa de transporte;
    • interior acolchado o revestido.

    La idea será aprovechar tanto el fondo como la tapa.

    Prototipo generado con IA

    Fondo de la maleta

    En el fondo colocaré los elementos que necesitan mayor estabilidad o que pesan más:

    • fuente de alimentación;
    • caja de fusibles;
    • distribución de 12 V;
    • conversores de voltaje;
    • Raspberry Pi;
    • discos SSD o HDD;
    • hub USB;
    • cableado principal.

    El fondo será la zona principal de trabajo técnico. Aquí estará la mayor parte de la electrónica y la distribución de alimentación.

    Una posible distribución inicial sería:

    FONDO DE LA MALETA

    ┌──────────────────────────────────────────────┐
    │ Fuente 12 V Caja de fusibles │
    │ │
    │ Conversores DC Raspberry Pi │
    │ │
    │ SSD / HDD Hub USB │
    │ │
    │ Zona libre para futuras ampliaciones │
    └──────────────────────────────────────────────┘

    Tapa de la maleta

    En la tapa quiero colocar elementos más visibles o de acceso rápido:

    • pantalla;
    • router o punto de acceso;
    • switch;
    • posiblemente algún panel de conectores;
    • guías para cables Ethernet;
    • indicadores visuales;
    • etiquetas o esquema del sistema.

    La tapa puede quedar muy bien para la parte más demostrativa del proyecto. Al abrir la maleta, lo primero que se verá será la pantalla, el router, el switch y las conexiones principales.

    Un posible diseño sería:

    TAPA DE LA MALETA

    ┌──────────────────────────────────────────────┐
    │ Pantalla integrada │
    │ │
    │ Router / AP Switch │
    │ │
    │ Panel de conectores / latiguillos │
    └──────────────────────────────────────────────┘

    Separar zonas: una decisión importante

    Aunque use LEGO Technic para organizar el montaje, no todo debe mezclarse en el mismo espacio. Una de las primeras decisiones será dividir la maleta en varias zonas funcionales.

    Zona 1: alimentación de 230 V AC

    Esta es la zona más delicada.

    Aquí estarán:

    • entrada IEC de corriente;
    • interruptor general;
    • fusible de entrada;
    • enchufe interno para portátil, si finalmente lo incluyo;
    • entrada de la fuente de alimentación de 12 V.

    Esta zona debe ir protegida, aislada y separada del resto.

    No debe haber bornes expuestos ni cables sueltos de 230 V. Si incluyo un enchufe interno, debe ser un módulo fijo, correctamente sujeto y protegido.

    Esta zona no debería depender de LEGO como protección principal.

    ZONA 230 V AC

    Entrada IEC

    ├── Enchufe interno para portátil

    └── Fuente AC/DC 12 V

    Zona 2: distribución de 12 V DC

    Desde la fuente de alimentación saldrá una línea de 12 V DC que irá a una caja de fusibles.

    Aquí se repartirán las salidas hacia:

    • router;
    • switch;
    • ventiladores;
    • conversor 12 V a 5 V para Raspberry;
    • pantalla, si usa 12 V;
    • otros módulos.
    Fuente 12 V

    └── Caja de fusibles

    ├── Router
    ├── Switch
    ├── Conversor Raspberry
    ├── Ventiladores
    └── Extras

    Esta parte ya es de baja tensión, pero aun así debe estar bien ordenada y protegida.


    Zona 3: computación y almacenamiento

    Aquí estarán los elementos que ejecutarán servicios o almacenarán datos:

    • Raspberry Pi;
    • SSD;
    • disco duro;
    • hub USB;
    • posibles adaptadores;
    • tarjeta microSD accesible;
    • cables USB;
    • cable HDMI si se usa pantalla.

    Esta zona debe estar ventilada y permitir acceso a puertos.


    Zona 4: red

    La zona de red incluirá:

    • router;
    • switch;
    • latiguillos Ethernet;
    • posibles puertos externos RJ45;
    • conexión con la Raspberry;
    • conexión con el portátil.

    La idea es que la red sea clara y fácil de explicar.

    Por ejemplo:

    Router / AP

    └── Switch

    ├── Raspberry Pi
    ├── Puerto externo 1
    ├── Puerto externo 2
    └── Portátil del profesor

    Montaje con planchas LEGO

    El primer paso físico será colocar planchas base en la maleta.

    Estas planchas funcionarán como una superficie modular sobre la que podré fijar estructuras.

    Opciones de fijación

    Para fijar las planchas a la maleta puedo usar varias opciones:

    SistemaVentajaInconveniente
    Cinta de doble cara fuerteFácil y rápidaPuede despegarse con calor
    Velcro industrialDesmontableAñade grosor
    Tornillos pequeñosMuy firmeHay que taladrar
    Adhesivo de montajeFuerteDifícil de retirar
    BridasReversible si hay puntos de pasoDepende de la maleta

    Mi idea inicial sería usar velcro industrial o una fijación que permita retirar las planchas si el diseño cambia.

    No quiero hacer un pegado definitivo demasiado pronto. El proyecto todavía está en fase de diseño y seguramente habrá modificaciones.


    Fondo con planchas LEGO

    En el fondo colocaría una o varias planchas ajustadas al tamaño de la maleta.

    Sobre ellas se podrán montar:

    • soportes para Raspberry;
    • bases para SSD;
    • guías de cableado;
    • zonas elevadas;
    • topes laterales;
    • estructuras de separación.

    Ejemplo:

    Base de la maleta

    ├── Velcro industrial

    ├── Plancha LEGO

    ├── Estructura Technic

    └── Dispositivos

    Tapa con planchas LEGO

    La tapa es más delicada porque todo lo que se coloque ahí estará en vertical cuando la maleta esté abierta.

    Para la tapa, usaría LEGO Technic solo con elementos ligeros o bien reforzados.

    Podrían ir ahí:

    • pantalla ligera;
    • router pequeño;
    • switch pequeño;
    • guías de cables;
    • soportes visuales;
    • etiquetas.

    Si algún elemento pesa mucho, no confiaría solo en LEGO. Usaría tornillos, bridas o velcro industrial adicional.


    Soportes para componentes

    Cada componente necesita una solución distinta. No es lo mismo sujetar una Raspberry que un router o un disco duro.


    Soporte para Raspberry Pi

    La Raspberry Pi no debería ir directamente apoyada sobre la base.

    La colocaría elevada con separadores para que:

    • no toque superficies;
    • circule aire por debajo;
    • los puertos queden accesibles;
    • se pueda desmontar;
    • no haya riesgo de cortocircuito.

    La estructura podría ser:

    Raspberry Pi

    ├── Tornillos M2.5
    ├── Separadores de nylon
    ├── Plataforma LEGO Technic
    └── Base LEGO

    Lo ideal sería usar los agujeros de montaje de la Raspberry con tornillos M2.5 y separadores de nylon.

    LEGO puede servir como plataforma, pero la placa debería ir fijada con tornillos adecuados, no simplemente encajada a presión.


    Soporte para router

    El router puede colocarse de varias formas.

    Opción 1: marco lateral

    Crear un marco Technic que impida que se desplace.

    ┌────────────────────────────┐
    │ Marco LEGO Technic │
    │ ┌──────────────────────┐ │
    │ │ Router │ │
    │ └──────────────────────┘ │
    └────────────────────────────┘

    Esta opción permite que el router quede sujeto sin tapar toda su carcasa.

    Opción 2: velcro + topes LEGO

    Pegar velcro industrial en la base y en el router, y usar piezas LEGO como topes laterales.

    Topes LEGO + Velcro industrial

    └── Router

    Me gusta esta opción porque es desmontable y relativamente fuerte.

    Opción 3: bridas

    Si el router tiene una forma adecuada, se puede sujetar con bridas sobre una estructura Technic.

    No es lo más estético, pero es muy eficaz.


    Soporte para switch

    El switch suele tener una forma rectangular, así que puede encajar muy bien en un marco Technic.

    Hay que tener cuidado con tres cosas:

    • no bloquear los puertos Ethernet;
    • no tapar ventilación;
    • dejar accesible el conector de alimentación.

    Un soporte posible:

    ┌───────────────────────────────┐
    │ Tope lateral │
    │ ┌───────────────────────────┐ │
    │ │ Switch │ │
    │ └───────────────────────────┘ │
    │ Tope lateral │
    └───────────────────────────────┘

    Si el switch va en la tapa, reforzaría la sujeción con velcro o bridas.


    Soporte para SSD

    Un SSD pesa poco y no genera demasiado calor, por lo que puede fijarse bastante bien.

    Opciones:

    • velcro industrial;
    • marco LEGO;
    • bridas suaves;
    • soporte elevado.

    Si uso un SSD externo por USB, me interesa que pueda retirarse fácilmente. En ese caso usaría velcro o un marco desmontable.


    Soporte para disco duro mecánico

    Si uso un HDD mecánico, tendría más cuidado.

    Un disco mecánico es más sensible a golpes y vibraciones. Además pesa más que un SSD.

    Para un HDD usaría:

    • base acolchada;
    • sujeción con velcro fuerte;
    • topes laterales;
    • posición estable en el fondo, no en la tapa;
    • evitar que quede colgando;
    • evitar golpes durante el transporte.

    Sinceramente, para este proyecto me parece más adecuado usar SSD que HDD mecánico.


    Soporte para pantalla

    La pantalla probablemente será uno de los elementos más visibles.

    Si va en la tapa, hay que tener en cuenta:

    • peso;
    • grosor;
    • alimentación;
    • cable HDMI o USB;
    • ángulo de visión;
    • protección al cerrar la maleta;
    • posibilidad de golpes.

    La pantalla debería ir en un soporte más robusto que el resto. LEGO puede ayudar a posicionarla, pero seguramente convenga reforzarla con velcro industrial, tornillos o una pieza rígida adicional.

    Una posible solución:

    Tapa de la maleta

    ├── Plancha base
    ├── Marco Technic
    ├── Velcro industrial
    └── Pantalla

    También hay que dejar espacio para que al cerrar la maleta la pantalla no choque con los elementos del fondo.


    Diseño por niveles

    Prototipo generado con IA

    Una de las mejores ventajas de LEGO Technic es que permite crear estructuras por niveles.

    Esto puede ayudar mucho en una maleta donde el espacio es limitado.

    Nivel inferior

    En el nivel inferior podría ir:

    • cableado principal;
    • conversores DC-DC;
    • distribución de 12 V;
    • ventiladores pequeños;
    • canalización.

    Nivel intermedio

    En el nivel intermedio:

    • Raspberry Pi;
    • SSD;
    • hub USB;
    • módulos auxiliares.

    Nivel superior

    En el nivel superior:

    • router;
    • switch;
    • pantalla;
    • conectores accesibles.

    Un ejemplo:

    NIVEL 3: Pantalla / Router / Switch
    ───────────────────────────────────
    NIVEL 2: Raspberry / SSD / Hub
    ───────────────────────────────────
    NIVEL 1: Fuente / Fusibles / Conversores
    ───────────────────────────────────
    BASE LEGO

    Este diseño permite esconder algunos cables por debajo y dejar visibles los elementos que interesa enseñar.

    Pero hay que tener cuidado: demasiados niveles pueden complicar el mantenimiento.

    La regla debería ser:

    Todo componente importante debe poder desmontarse sin tener que desmontar media maleta.


    Organización de cables

    El cableado será una de las partes más importantes del proyecto.

    Una maleta de laboratorio puede quedar muy atractiva por fuera, pero si por dentro los cables están desordenados, será difícil de mantener y de explicar.

    LEGO Technic puede ayudar mucho a crear guías, canales y separadores.


    Tipos de cableado

    Dentro de la maleta habrá varios tipos de cables:

    Tipo de cableUso
    230 V ACEntrada de corriente y enchufe interno
    12 V DCRouter, switch, ventiladores, conversores
    5 V DCRaspberry y algunos módulos
    EthernetRed entre router, switch y Raspberry
    USBSSD, hub, periféricos
    HDMIPantalla
    SensoresSeñales de baja corriente

    Estos cables no deberían ir mezclados sin criterio.


    Separación recomendada

    Una buena organización podría ser:

    Lateral izquierdo:
    - Alimentación DC

    Zona central:
    - Raspberry / SSD / hub

    Lateral derecho:
    - Ethernet

    Zona aislada:
    - 230 V AC

    O también:

    Parte inferior:
    - Alimentación

    Parte superior:
    - Red

    Centro:
    - Computación

    Lo importante no es la distribución exacta, sino que sea coherente y documentada.


    Colores recomendados

    Usar colores ayuda mucho.

    CableColor recomendado
    12 V positivoRojo
    12 V negativoNegro
    5 V positivoRojo
    5 V negativoNegro
    EthernetAzul
    USBNegro
    HDMINegro
    Señales/sensoresAmarillo, verde o blanco
    230 V ACCable homologado, claramente separado

    No siempre se podrá elegir el color de todos los cables, pero sí podemos etiquetarlos.


    Guías de cable con LEGO

    Con LEGO Technic puedo crear:

    • puentes;
    • canales;
    • peines de cables;
    • pasos elevados;
    • separadores;
    • puntos para bridas;
    • curvas suaves para no forzar cables.

    Ejemplo sencillo:

    Cable Ethernet
    ═══════════════
    │ │ │
    ▼ ▼ ▼
    Guías LEGO Technic

    Otra idea es crear pequeños “puentes” para que los cables pasen por debajo de un nivel superior sin quedar aplastados.

    Nivel superior
    ──────────────
    Cable pasa por debajo
    ════════════════════════
    Base LEGO

    Sujeción durante el transporte

    No basta con que los componentes queden bien cuando la maleta está abierta sobre una mesa. También deben aguantar el transporte.

    Durante el transporte pueden aparecer:

    • vibraciones;
    • golpes;
    • movimientos laterales;
    • cables que tiran;
    • conectores que se aflojan;
    • piezas que se sueltan.

    Por eso, cada elemento debería superar una prueba básica:

    Si muevo suavemente la maleta cerrada, nada importante debería desplazarse.

    Para eso usaré una combinación de:

    • topes LEGO;
    • bridas;
    • velcro industrial;
    • tornillos;
    • separadores;
    • espumas protectoras si hace falta.

    Cuidado con la tapa

    Los elementos montados en la tapa tienen más riesgo de moverse o caer.

    Por tanto, en la tapa usaré preferentemente:

    • piezas ligeras;
    • elementos bien fijados;
    • cableado con holgura;
    • soportes reforzados;
    • nada que pueda caer sobre la Raspberry o la fuente.

    Si coloco la pantalla en la tapa, tendrá que ir especialmente bien sujeta.


    Ventilación

    La ventilación será otro punto clave.

    Dentro de la maleta habrá elementos que generan calor:

    • fuente de alimentación;
    • Raspberry Pi;
    • router;
    • switch;
    • conversores DC-DC;
    • discos;
    • pantalla.

    Una maleta cerrada no es una caja ideal para electrónica. Por eso habrá que prever circulación de aire.


    Posible diseño de ventilación

    Una opción sencilla:

    Entrada de aire frío  ─────►  interior  ─────►  salida de aire caliente
    rejilla ventilador

    Colocaría al menos:

    • una rejilla de entrada;
    • una rejilla de salida;
    • un ventilador de 12 V;
    • filtro antipolvo si es posible.

    El ventilador puede alimentarse desde la línea de 12 V con su propio fusible.


    LEGO y calor

    LEGO es plástico. No debe estar pegado a elementos que se calienten mucho.

    Hay que evitar colocar piezas LEGO justo encima o pegadas a:

    • disipadores;
    • fuente de alimentación;
    • zonas de ventilación;
    • reguladores de voltaje;
    • routers calientes;
    • pantalla si se calienta por detrás.

    La regla es simple:

    LEGO puede organizar la estructura, pero el calor necesita espacio.


    Seguridad eléctrica

    Esta parte no se puede tomar a la ligera.

    Aunque la mayoría del montaje funcione a 12 V o 5 V, habrá una entrada de 230 V AC. Además, si incluyo un enchufe interno para conectar un portátil, habrá una derivación de red dentro de la maleta.


    Normas básicas que seguiré

    1. La zona de 230 V irá separada del resto.
    2. No habrá bornes de 230 V expuestos.
    3. La entrada de corriente tendrá fusible e interruptor.
    4. El enchufe interno irá fijo, no suelto.
    5. La fuente de alimentación irá bien anclada.
    6. Se usará cable adecuado para 230 V.
    7. La tierra se conectará correctamente cuando corresponda.
    8. La parte DC tendrá fusibles por línea.
    9. Antes de conectar equipos, se medirá voltaje y polaridad.
    10. No se usarán cables Dupont o de Arduino para alimentación de potencia.

    Lo que no haré

    No quiero que el proyecto acabe en una chapuza peligrosa. Por tanto, evitaré:

    • regletas sueltas dentro de la maleta;
    • empalmes sin protección;
    • 230 V pasando junto a cables de señal;
    • fuentes sin ventilación;
    • cables finos para alimentar Raspberry;
    • dispositivos sin fusible;
    • conectores sin etiquetar;
    • piezas móviles que puedan tocar bornes;
    • cerrar la maleta con elementos presionando cables.

    Cable adecuado

    El cable típico de Arduino sirve para señales y sensores, pero no para alimentar la maleta.

    Para este montaje usaré cables de sección adecuada.

    TramoCable recomendado
    230 V ACCable homologado 3 x 1,5 mm²
    Fuente 12 V a caja de fusibles1,5 mm² o 2,5 mm²
    Caja de fusibles a router0,75 mm²
    Caja de fusibles a switch0,75 mm²
    Caja de fusibles a conversor Raspberry0,75 mm² o 1 mm²
    Ventiladores0,5 mm² o 0,75 mm²
    SensoresCable fino tipo Arduino, solo para señal

    La Raspberry es especialmente sensible a las caídas de tensión. Por eso el tramo de 5 V debe ser corto y de buena calidad.


    Alimentación prevista

    El diseño de alimentación inicial será algo parecido a esto:

    Entrada 230 V AC

    ├── Enchufe interno para portátil

    └── Fuente 230 V AC → 12 V DC

    └── Caja de fusibles 12 V

    ├── Router 12 V / 1 A
    ├── Switch 12 V / 1 A
    ├── Conversor 12 V → 5 V → Raspberry
    ├── Ventiladores 12 V
    └── Extras

    Cada línea tendrá su propio fusible.

    Valores orientativos:

    LíneaFusible orientativo
    Router 12 V / 1 A2 A
    Switch 12 V / 1 A2 A
    Conversor Raspberry3 A
    Ventiladores1 A
    LED / voltímetro1 A

    Estos valores podrán ajustarse en función de los consumos reales.


    Documentación del proceso

    Una parte fundamental del proyecto será documentar todo el proceso.

    No quiero limitarme a enseñar la maleta terminada. Quiero enseñar cómo se ha ido construyendo, qué decisiones se han tomado, qué errores han aparecido y qué cambios han sido necesarios.

    Esta segunda fase se presta mucho a documentación visual.


    Fotografías que quiero hacer

    Durante esta fase documentaré:

    1. la maleta vacía;
    2. las planchas LEGO antes de colocarlas;
    3. primera prueba de distribución;
    4. colocación provisional de router, switch y Raspberry;
    5. soporte de la Raspberry;
    6. soporte del switch;
    7. soporte del router;
    8. zona de alimentación;
    9. caja de fusibles;
    10. guías de cableado;
    11. prueba de cierre de la maleta;
    12. primera versión completa sin alimentar;
    13. modificaciones después de detectar problemas.

    Qué explicar en cada foto

    Cada foto debería ir acompañada de una explicación breve:

    • qué se está probando;
    • por qué se ha colocado ahí;
    • qué problema resuelve;
    • qué inconvenientes tiene;
    • qué habría que mejorar;
    • si es una solución provisional o definitiva.

    Esto es muy importante porque convierte el proyecto en una experiencia de aprendizaje, no solo en una galería de fotos.


    Propuesta de fases para esta segunda parte

    Para no convertir el montaje en un caos, dividiré esta fase en varias iteraciones.


    Iteración 1: distribución sin fijar nada

    Primero colocaré todos los componentes dentro de la maleta sin fijarlos.

    Objetivo:

    • comprobar si caben;
    • ver si la tapa cierra;
    • observar accesos a puertos;
    • detectar zonas conflictivas;
    • decidir qué va en el fondo y qué va en la tapa.

    Preguntas que quiero responder:

    ¿Cabe todo?
    ¿La maleta cierra?
    ¿Hay espacio para cables?
    ¿Se puede acceder a los puertos?
    ¿Dónde irá la ventilación?
    ¿Dónde irá la zona de 230 V?

    Iteración 2: colocación de planchas LEGO

    Después colocaré las planchas base.

    Primero intentaré hacerlo de forma reversible, probablemente con velcro industrial o un sistema que pueda modificar.

    Objetivo:

    • crear una superficie modular;
    • comprobar si las piezas encajan bien;
    • decidir si hace falta recortar o ajustar;
    • ver si el grosor añadido afecta al cierre.

    Iteración 3: soportes provisionales

    Construiré soportes iniciales para:

    • Raspberry Pi;
    • router;
    • switch;
    • SSD;
    • caja de fusibles;
    • conversores.

    En esta fase no me preocuparé demasiado por el acabado final. Lo importante será validar el diseño.


    Iteración 4: rutas de cableado

    Antes de conectar nada definitivamente, diseñaré los caminos de los cables.

    Separaré:

    • alimentación;
    • red;
    • USB;
    • HDMI;
    • sensores;
    • 230 V.

    Objetivo:

    • evitar cruces innecesarios;
    • dejar holgura;
    • no forzar conectores;
    • permitir desmontaje;
    • mejorar la limpieza visual.

    Iteración 5: prueba de cierre

    Con todos los elementos colocados, cerraré la maleta sin alimentar nada.

    Esta prueba es fundamental.

    Hay que comprobar:

    • si la pantalla choca con algo;
    • si los cables se aplastan;
    • si la Raspberry queda presionada;
    • si el router o switch tocan la tapa;
    • si algún conector queda forzado;
    • si los soportes aguantan.

    Iteración 6: cableado de baja tensión

    Después empezaré con la parte de 12 V y 5 V.

    Primero sin conectar los dispositivos finales. Mediré con multímetro:

    • salida de la fuente;
    • polaridad;
    • salida de cada fusible;
    • salida del conversor 12 V a 5 V.

    Solo después conectaré router, switch y Raspberry.


    Iteración 7: pruebas de funcionamiento

    Una vez alimentados los equipos, comprobaré:

    • arranque de la Raspberry;
    • funcionamiento del router;
    • funcionamiento del switch;
    • conexión de red;
    • acceso desde portátil;
    • temperatura después de un rato;
    • estabilidad de alimentación;
    • posibles reinicios o fallos.

    Iteración 8: acabado y etiquetado

    Cuando todo funcione, llegará el momento de ordenar y etiquetar.

    Añadiré:

    • etiquetas en cables;
    • etiquetas en fusibles;
    • etiquetas en conectores;
    • indicaciones de voltaje;
    • esquema interno;
    • versión del montaje.

    Me gustaría que al abrir la maleta se pueda entender qué es cada cosa.


    Materiales previstos para esta fase

    Una lista inicial de materiales podría ser:

    MaterialUso
    Planchas base LEGO o compatiblesForrar fondo y tapa
    Vigas LEGO TechnicEstructuras y soportes
    Pines TechnicUniones desmontables
    Ejes TechnicRefuerzo
    Escuadras TechnicSoportes en ángulo
    Bricks básicosTopes y separadores
    Velcro industrialSujeción desmontable
    Bridas pequeñasSujeción de cables
    Bridas reutilizablesPruebas y prototipado
    Separadores de nylonElevar Raspberry y placas
    Tornillos M2.5 / M3Fijar placas
    Etiquetas adhesivasIdentificación
    Canaleta pequeñaGuiado opcional de cables
    Cinta de doble cara fuerteFijación auxiliar
    Gomas o espuma finaProtección antivibración

    Herramientas necesarias

    No quiero que esta fase dependa de herramientas complejas.

    Probablemente usaré:

    HerramientaUso
    Destornilladores pequeñosTornillos y soportes
    Alicates de corteCortar bridas
    MultímetroMedir voltajes
    CúterAjustes ligeros
    Regla o metroMedir distribución
    RotuladorMarcas provisionales
    CrimpadoraTerminales eléctricos
    PelacablesPreparar cableado
    Taladro pequeñoSolo si finalmente fijo algo con tornillos

    La idea es mantener el montaje dentro de algo asumible y replicable.


    Riesgos y problemas esperados

    Es importante anticipar problemas.

    1. Que las piezas se suelten

    LEGO encaja bien, pero si la maleta se mueve mucho, algunas piezas podrían soltarse.

    Solución:

    • reforzar estructuras;
    • usar bridas;
    • usar velcro;
    • no depender de una sola unión;
    • probar transporte antes de darlo por válido.

    2. Que la tapa no cierre

    Al añadir niveles, cables y soportes, puede que la maleta deje de cerrar correctamente.

    Solución:

    • hacer pruebas frecuentes de cierre;
    • no esperar al final;
    • dejar margen de altura;
    • evitar cables cruzando por zonas de presión.

    3. Que se acumule calor

    Una estructura compacta puede dificultar la ventilación.

    Solución:

    • dejar huecos;
    • no encerrar la fuente;
    • añadir ventiladores;
    • medir temperatura;
    • no cubrir rejillas de router/switch.

    4. Que el cableado quede bonito pero poco mantenible

    A veces se ordenan tanto los cables que luego no se puede desmontar nada.

    Solución:

    • dejar holgura;
    • usar bridas reutilizables en la fase inicial;
    • etiquetar;
    • no ocultar completamente los cables críticos;
    • poder sacar la Raspberry sin desmontar toda la maleta.

    5. Que LEGO no sea suficiente para elementos pesados

    Algunos componentes pueden necesitar sujeción más fuerte.

    Solución:

    • usar LEGO como guía o posicionamiento;
    • reforzar con tornillos, velcro industrial o bridas;
    • colocar elementos pesados en el fondo, no en la tapa.

    Posibles ampliaciones futuras

    El uso de LEGO Technic deja abierta la puerta a muchas ampliaciones:

    • añadir otra Raspberry;
    • incluir un pequeño panel de sensores;
    • montar una pantalla diferente;
    • añadir un ventilador adicional;
    • colocar puertos RJ45 externos;
    • integrar un medidor de consumo;
    • añadir luces de estado;
    • preparar soportes para pendrives o tarjetas microSD;
    • crear una zona para Arduino;
    • montar un pequeño panel de control.

    El diseño no queda cerrado desde el principio, que es precisamente lo que busco.


    Primer diseño conceptual

    Una primera versión del interior podría ser:

    TAPA
    ┌──────────────────────────────────────────────┐
    │ Pantalla │
    │ │
    │ Router/AP Switch │
    │ │
    │ Guía de cables Ethernet │
    └──────────────────────────────────────────────┘


    FONDO
    ┌──────────────────────────────────────────────┐
    │ Fuente 12 V Caja fusibles │
    │ │
    │ Conversores Raspberry Pi │
    │ │
    │ SSD / Hub USB Canalización de cables │
    └──────────────────────────────────────────────┘

    Otra opción sería dejar la tapa solo para pantalla y cableado ligero:

    TAPA
    ┌──────────────────────────────────────────────┐
    │ Pantalla │
    │ Panel visual / esquema │
    │ Guías de cables │
    └──────────────────────────────────────────────┘


    FONDO
    ┌──────────────────────────────────────────────┐
    │ Router Switch │
    │ Raspberry SSD │
    │ Fuente Fusibles │
    │ Conversores Ventilador │
    └──────────────────────────────────────────────┘

    Todavía no tengo decidido el diseño final. La elección dependerá del tamaño real de la maleta, la altura disponible y cómo cierren los elementos.


    Decisiones importantes de esta fase

    Antes de avanzar, tengo que decidir varias cosas:

    1. ¿Qué elementos irán en la tapa?
    2. ¿Qué elementos irán en el fondo?
    3. ¿Dónde irá la zona de 230 V?
    4. ¿Dónde irá la fuente de alimentación?
    5. ¿Cómo entrará y saldrá el aire?
    6. ¿Dónde irán los puertos de red accesibles?
    7. ¿La pantalla será fija o desmontable?
    8. ¿Usaré SSD o HDD?
    9. ¿Cuántos niveles tendrá la estructura?
    10. ¿Qué partes serán definitivas y cuáles provisionales?

    Estas decisiones no tienen que resolverse todas de golpe. El proyecto irá avanzando por pruebas.


    Conclusión

    En esta segunda fase del proyecto he decidido centrarme en el diseño físico del laboratorio móvil.

    La solución elegida será utilizar LEGO Technic y planchas base para crear una estructura modular dentro de la maleta. Esto me permitirá ir montando soportes, niveles y guías de cableado sin necesidad de fabricar piezas a medida desde el principio.

    No es una solución industrial ni pretende serlo. Es una solución práctica, flexible y educativa. Me permitirá avanzar sin bloquearme por no tener conocimientos de carpintería o mecanizado, y además facilitará que el proceso sea visual y fácil de explicar.

    Eso sí, habrá límites claros: la parte de 230 V tendrá que estar correctamente protegida, los elementos pesados necesitarán sujeción adicional y el cableado de alimentación deberá hacerse con materiales adecuados.

    El objetivo de esta fase no es dejar la maleta terminada, sino construir la primera versión del chasis interno: una base modular sobre la que seguir creciendo.

    A partir de aquí, el siguiente paso será comenzar las pruebas reales de distribución: colocar las planchas, presentar los componentes, comprobar alturas, pensar rutas de cableado y empezar a construir los primeros soportes.

    El laboratorio móvil empieza a tomar forma.

  • Laboratorio móvil de ciberseguridad 3: Prototipo v1

    Laboratorio móvil de ciberseguridad 3: Prototipo v1

    Montaje de una maleta-laboratorio con router, mini PC, pantalla y alimentación integrada

    En este artículo voy a documentar el proceso de montaje de una maleta técnica pensada para funcionar como laboratorio portátil de redes, servidores y pruebas con pequeños dispositivos.

    La idea era crear una especie de maleta-laboratorio, donde poder integrar varios elementos de red y computación en un único espacio transportable:

    • Un router Xiaomi AX3600 desmontado.
    • Un mini PC o placa de servidor.
    • Una pantalla integrada en la tapa.
    • Una fuente de alimentación interna.
    • Un sistema de distribución eléctrica.
    • Ventilación forzada mediante ventiladores.
    • Espacio modular para futuras ampliaciones.
    • Superficie interior preparada con placas tipo LEGO para fijar componentes.

    El objetivo no era simplemente meter dispositivos dentro de una caja, sino crear una estructura ordenada, ampliable y relativamente fácil de modificar.


    1. La idea inicial

    El proyecto parte de una maleta rígida de aluminio con el tamaño suficiente para alojar varios dispositivos. Este tipo de maleta resulta interesante porque ofrece rigidez estructural, tapa abatible, espacio interno aprovechable y facilidad para transportar todo el conjunto.

    La intención era convertirla en una pequeña estación de trabajo portátil, útil para prácticas de redes, ciberseguridad, servidores, monitorización o simulación de infraestructura.

    No se trata de un producto comercial terminado, sino de un proyecto artesanal, experimental y flexible, pensado para poder ir evolucionando con el tiempo.


    2. Desmontaje del router Xiaomi AX3600

    Uno de los primeros pasos fue desmontar el router Xiaomi AX3600 para poder integrarlo dentro de la maleta.

    El router, en su formato original, ocupa bastante espacio debido a la carcasa y a la disposición de las antenas. Para aprovechar mejor el interior de la maleta, se retiró la carcasa y se dejó accesible la placa principal.

    Durante el desmontaje se separaron los elementos principales del router:

    • La placa principal.
    • El disipador.
    • Los conectores internos de antena.
    • Las antenas externas.
    • La chapa metálica de soporte.
    • Los cables coaxiales internos.

    Este paso permite reducir el volumen del dispositivo y facilita su integración dentro de una estructura personalizada.

    Importante:
    Este tipo de modificación anula cualquier garantía del dispositivo y debe hacerse con mucho cuidado. Hay que evitar tirar de los cables de antena, doblar conectores o provocar cortocircuitos sobre la placa.


    3. Separación de carcasa, antenas y placa principal

    Una vez abierto el router, se separaron la carcasa superior, la carcasa inferior, las antenas, la placa principal y el soporte metálico.

    La placa del router se mantuvo junto a su disipador y parte de la estructura metálica, ya que esto ayuda a conservar rigidez y facilita su posterior fijación dentro de la maleta.

    Las antenas originales también se conservaron. En lugar de mantenerlas unidas a la carcasa del router, se recolocaron en otra zona de la maleta para aprovechar mejor el espacio disponible.

    Este paso es delicado porque los cables de antena son finos y frágiles. No conviene doblarlos en exceso ni forzar los conectores pequeños que van unidos a la placa.


    4. Preparación de la base interior de la maleta

    Para poder fijar componentes dentro de la maleta, se preparó una base modular usando placas tipo LEGO.

    Este sistema permite colocar, mover y reorganizar piezas sin tener que taladrar constantemente la maleta. Es una solución muy práctica para un proyecto que puede cambiar con el tiempo.

    La base interior se dividió en varias zonas funcionales:

    • Zona de alimentación.
    • Zona de router o electrónica de red.
    • Zona para mini PC o placa principal.
    • Zona de ventilación.
    • Zona para distribución de cables.
    • Zona libre para ampliaciones.

    El uso de una superficie modular permite probar distintas distribuciones antes de fijar los elementos de forma definitiva. También facilita futuras modificaciones, como añadir una Raspberry Pi, un switch, sensores, más conectores o nuevos módulos.


    5. Corte de huecos para ventilación

    Uno de los puntos más importantes del proyecto fue la refrigeración. Al meter electrónica dentro de una maleta cerrada, el calor puede acumularse rápidamente.

    Por este motivo se prepararon varios huecos para ventiladores. La intención era crear circulación de aire dentro del conjunto y evitar que la temperatura aumentase demasiado durante el uso.

    El sistema de ventilación se planteó con tres ideas principales:

    • Permitir la entrada de aire fresco.
    • Facilitar la salida de aire caliente.
    • Mover el aire interno para evitar zonas de calor acumulado.

    En este tipo de montaje conviene decidir bien el sentido del flujo de aire. No basta con poner ventiladores sin más. Si todos meten aire, puede faltar salida. Si todos sacan aire, puede faltar entrada. Lo recomendable es combinar entrada y salida para crear un flujo continuo.


    6. Instalación de la pantalla en la tapa

    Otro elemento importante del proyecto fue la instalación de una pantalla en la tapa de la maleta.

    La pantalla permite usar la maleta sin depender siempre de un monitor externo. Puede servir para mostrar la consola del sistema, una interfaz gráfica, información de estado, dashboards de monitorización o herramientas de administración.

    Integrar la pantalla en la tapa convierte esa parte de la maleta en una especie de panel de control. Además, deja libre la base para la fuente de alimentación, el mini PC, el cableado y otros dispositivos.

    La pantalla se fijó en una zona visible y accesible, dejando espacio alrededor para conectores, botones, indicadores u otros elementos que puedan añadirse más adelante.


    7. Colocación de conectores y acceso exterior

    Además de la pantalla, se prepararon zonas de acceso para conectores y controles.

    La idea de sacar conectores al panel es muy útil porque evita tener que manipular directamente las placas internas cada vez que se quiere conectar algo.

    En un montaje de este tipo conviene dejar accesibles elementos como:

    • Entrada de alimentación.
    • Interruptor general.
    • Puertos Ethernet.
    • Puertos USB.
    • HDMI, si se necesita.
    • Conexión de pantalla.
    • Botones de encendido.
    • Indicadores luminosos.
    • Salidas de 5 V o 12 V, si se quieren usar.

    Diseñar bien los accesos desde el principio evita tener que abrir la maleta constantemente para conectar o desconectar dispositivos.


    8. Instalación del conector IEC con interruptor

    Para alimentar la maleta se instaló un conector IEC con interruptor. Este tipo de conector es habitual en ordenadores, fuentes de alimentación y equipos electrónicos.

    El conector permite tener una entrada de corriente más limpia y segura que un cable suelto. Además, al incluir interruptor, se puede encender y apagar toda la maleta desde un único punto.

    Este elemento se pensó como entrada principal de alimentación del proyecto.

    Aviso de seguridad:
    La parte de 230 V debe estar muy bien aislada, protegida y fijada. No debe quedar ningún terminal expuesto. Es recomendable usar funda termorretráctil, conectores faston aislados, clemas adecuadas, fusible y toma de tierra si la fuente y la estructura lo requieren.

    En esta fase es importante separar claramente la zona de alta tensión de la zona de baja tensión. La entrada de 230 V debe quedar protegida y no mezclarse con cables de datos o electrónica de bajo voltaje.


    9. Fuente de alimentación y distribución eléctrica

    La fuente de alimentación se instaló en la base de la maleta, separada del resto de componentes principales.

    Su función es convertir la entrada de corriente alterna en salidas de corriente continua, que después se pueden distribuir a los distintos elementos del montaje.

    Desde la fuente se llevó la alimentación a una bornera o bloque de distribución. Esto permite repartir energía de forma más ordenada a distintos dispositivos:

    • Router.
    • Ventiladores.
    • Convertidores DC-DC.
    • Mini PC o placa.
    • Pantalla.
    • Otros módulos internos.

    El uso de una bornera de distribución evita empalmes improvisados y facilita el mantenimiento. Cada línea puede salir desde un punto concreto, con positivo y negativo claramente identificados.

    Lo ideal es que cada salida importante tenga su propia protección, especialmente si se van a alimentar varios dispositivos desde la misma fuente.


    10. Organización del cableado

    Uno de los retos principales fue la organización del cableado.

    A medida que se añaden elementos, aparecen cables de alimentación, cables USB, HDMI, Ethernet, antenas, ventiladores y conexiones internas. Si no se planifica bien, el interior puede volverse difícil de mantener.

    Para mejorar la organización del cableado conviene seguir varias reglas:

    • Separar alimentación y datos.
    • Usar bridas pequeñas.
    • Etiquetar cables importantes.
    • Mantener colores coherentes.
    • Usar rojo para positivo.
    • Usar negro para negativo.
    • Evitar que los cables pasen por encima de disipadores.
    • Evitar que los cables puedan tocar ventiladores.
    • Dejar holgura suficiente para abrir y cerrar la tapa.
    • No tensar cables de antena ni conectores delicados.

    Un cableado bien organizado no solo mejora la estética, también facilita detectar fallos, sustituir piezas y ampliar el proyecto.


    11. Recolocación de las antenas del router

    Una de las partes más importantes del montaje fue la recolocación de las antenas del router Xiaomi AX3600.

    En lugar de mantener el router completo con su carcasa original, las antenas se distribuyeron por la tapa de la maleta. De esta manera se aprovecha mejor el espacio y se libera la base para otros componentes.

    Las antenas se colocaron en una posición que permite conservar su función original y mantener una buena separación entre ellas. Esto es importante en un router con varias antenas, ya que su distribución influye en la cobertura y en el rendimiento inalámbrico.

    Durante esta parte del montaje hay que cuidar especialmente los cables coaxiales. Son muy finos y no deben doblarse en ángulos bruscos. También hay que evitar que queden tirantes al abrir o cerrar la maleta.


    12. Montaje de la placa del router en la maleta

    La placa del router se integró dentro de la maleta junto con su disipador y parte de su soporte metálico.

    La idea fue aprovechar el router como elemento principal de red, pero sin conservar la carcasa original. De esta forma se gana espacio y se puede colocar el hardware en una posición más adecuada para el conjunto.

    La placa debe quedar bien sujeta y aislada. No debe tocar directamente superficies metálicas sin protección, porque podría producirse un cortocircuito.

    Para fijar este tipo de placas conviene usar:

    • Separadores.
    • Tornillos adecuados.
    • Soportes plásticos.
    • Arandelas de nylon.
    • Bases no conductoras.
    • Piezas modulares.
    • Cinta aislante en zonas críticas.

    También es importante que el disipador tenga espacio suficiente alrededor para evacuar calor.


    13. Instalación del mini PC o placa principal

    En la base de la maleta se instaló un mini PC o placa compacta que puede funcionar como servidor principal del proyecto.

    Este equipo puede utilizarse para diferentes funciones, dependiendo del sistema operativo y de los servicios instalados:

    • Servidor Linux.
    • Proxmox.
    • Docker.
    • Portainer.
    • Servidor web.
    • Base de datos.
    • Monitorización.
    • Laboratorio de redes.
    • Nodo de ciberseguridad.
    • Panel de administración.

    Este tipo de placa resulta muy adecuada para una maleta-laboratorio porque ocupa poco espacio, consume relativamente poco y ofrece muchas posibilidades.

    En un contexto educativo, puede funcionar como servidor central para prácticas de clase, despliegue de servicios, pruebas de red o administración remota.


    14. Posibles usos de la maleta-laboratorio

    Una vez montada, la maleta puede tener muchos usos en clase o en un entorno de pruebas.

    Laboratorio de redes

    La maleta puede funcionar como pequeño centro de red portátil. Permite trabajar conceptos como:

    • Configuración IP.
    • DHCP.
    • DNS.
    • NAT.
    • Redes WiFi.
    • Segmentación de red.
    • Pruebas de conectividad.
    • Administración de router.
    • Acceso remoto.

    Si en el futuro se añade un switch gestionable, también podría usarse para trabajar VLAN y escenarios de red más avanzados.

    Laboratorio de ciberseguridad

    También puede utilizarse como base para prácticas de ciberseguridad:

    • Monitorización de tráfico.
    • IDS con Suricata.
    • Wazuh.
    • Captura de paquetes.
    • Análisis con Wireshark.
    • Laboratorios con máquinas vulnerables.
    • Pruebas de firewall.
    • Segmentación de entornos.

    La ventaja de tenerlo todo dentro de una maleta es que el entorno puede transportarse y desplegarse rápidamente.

    Servidor portátil

    El mini PC permite convertir la maleta en un pequeño servidor portátil.

    Algunos servicios interesantes que podrían instalarse son:

    • Docker.
    • Portainer.
    • Nginx.
    • Apache.
    • MariaDB.
    • Grafana.
    • Prometheus.
    • Open WebUI.
    • Servicios internos para clase.

    Esto permite llevar un entorno completo preparado sin depender de infraestructura externa.

    Proyecto educativo

    La propia construcción de la maleta ya es un proyecto educativo interesante.

    Permite trabajar contenidos de:

    • Electricidad básica.
    • Electrónica.
    • Hardware.
    • Redes.
    • Refrigeración.
    • Seguridad.
    • Organización interna.
    • Documentación técnica.
    • Resolución de problemas.

    Es un proyecto muy completo porque obliga a pensar tanto en la parte técnica como en la parte física del montaje.


    15. Problemas y aprendizajes durante el montaje

    Este tipo de proyecto no queda perfecto a la primera. Es normal tener que probar, desmontar, recolocar y corregir.

    Algunos aprendizajes importantes del proceso fueron:

    • Antes de fijar nada definitivamente, conviene presentar todos los componentes.
    • El espacio interior se acaba antes de lo que parece.
    • El cableado ocupa mucho más de lo previsto.
    • La ventilación debe pensarse desde el principio.
    • Los conectores deben quedar accesibles.
    • Las piezas modulares ayudan mucho.
    • La alimentación debe planificarse con cuidado.
    • Conviene dejar margen para futuras ampliaciones.
    • La tapa también puede aprovecharse como zona de montaje.
    • La estética importa, pero la seguridad importa más.

    Uno de los mayores aciertos fue usar placas tipo LEGO como superficie modular. Esta solución permite modificar el diseño sin rehacer completamente la estructura.

  • 2. Sistemas Operativos de Red y Protocolos TCP/IP

    2. Sistemas Operativos de Red y Protocolos TCP/IP

    🎧 Resumen en audio del tema
    Escucha este breve audio para repasar las ideas principales de los fundamentos de redes informáticas antes de continuar o al finalizar la lectura.


    Cuando hablamos de redes informáticas, muchas veces pensamos solo en cables, routers, switches o conexión a Internet. Sin embargo, una red no funciona de verdad solo por estar físicamente conectada. Para que varios equipos puedan compartir recursos, trabajar de forma organizada y mantener la seguridad, hace falta una capa de software que controle todo ese entorno.

    Ahí es donde entran en juego los Sistemas Operativos de Red (SOR) y la familia de protocolos TCP/IP.

    Un sistema operativo de red permite administrar usuarios, equipos, permisos, recursos compartidos y servicios. Por su parte, TCP/IP proporciona el lenguaje común que utilizan los dispositivos para comunicarse, tanto dentro de una red local como a través de Internet.

    En este tema vamos a estudiar los fundamentos de ambos conceptos, viendo cómo se gestionan usuarios y accesos en entornos profesionales, cómo funcionan las redes en sistemas Microsoft y por qué TCP/IP es la base de prácticamente todas las comunicaciones actuales.


    1. El Sistema Operativo de Red (SOR)

    Un Sistema Operativo de Red es un sistema diseñado para permitir la comunicación, administración y uso compartido de recursos entre varios equipos conectados en red.

    Su misión principal es coordinar el acceso a los recursos y garantizar que los usuarios puedan trabajar de manera simultánea, ordenada y segura.

    ¿Por qué es necesario un SOR?

    Imagina una red con 20 ordenadores en un aula, oficina o empresa. Si cada equipo gestionara sus propios usuarios, sus propias contraseñas, sus propias carpetas compartidas y sus propios permisos de forma independiente, el resultado sería un auténtico caos:

    • los usuarios tendrían múltiples cuentas distintas,
    • sería difícil controlar quién accede a qué,
    • la administración sería lenta y repetitiva,
    • la seguridad sería mucho más débil.

    Un sistema operativo de red evita ese desorden, centralizando o coordinando la gestión del entorno.


    2. Tipos de sistemas operativos

    Podemos distinguir dos grandes grupos:

    2.1. Sistemas operativos de escritorio

    Son los diseñados para el uso cotidiano de un único usuario sobre un equipo concreto.

    Ejemplos:

    • Windows 10
    • Windows 11
    • Ubuntu Desktop
    • Linux Mint
    • Fedora Workstation

    Están orientados a tareas como navegación web, ofimática, reproducción multimedia o programación local.

    2.2. Sistemas operativos de servidor

    Están preparados para funcionar de manera estable durante largos periodos de tiempo, gestionando servicios, usuarios, permisos y recursos compartidos.

    Ejemplos:

    • Windows Server
    • Ubuntu Server
    • Debian Server
    • Red Hat Enterprise Linux
    • AlmaLinux

    Estos sistemas suelen utilizarse para ofrecer servicios como:

    • autenticación de usuarios,
    • almacenamiento de archivos,
    • servidores web,
    • bases de datos,
    • impresión en red,
    • copias de seguridad,
    • control de dominios.

    3. Arquitectura cliente-servidor

    En una red profesional, lo habitual es trabajar con una arquitectura cliente-servidor.

    ¿Qué significa esto?

    • Cliente: equipo o programa que solicita un recurso o servicio.
    • Servidor: equipo o programa que ofrece ese recurso o servicio.

    Por ejemplo:

    • un navegador web es cliente cuando solicita una página,
    • un servidor web entrega esa página,
    • un ordenador de aula puede actuar como cliente,
    • un servidor central puede almacenar usuarios y carpetas compartidas.

    Ventajas de este modelo

    • centraliza la administración,
    • facilita el control de usuarios y permisos,
    • mejora la seguridad,
    • permite escalar mejor la red,
    • simplifica el mantenimiento.

    Ejemplo real

    En un instituto, los alumnos pueden iniciar sesión en distintos ordenadores usando la misma cuenta de red. Eso es posible porque existe un servidor que centraliza la autenticación, los permisos y, en muchos casos, sus carpetas personales.


    4. Gestión de usuarios, derechos y accesos

    Una red profesional no puede funcionar correctamente si no está bien definida la gestión de identidades y permisos.

    No basta con que un usuario “entre” al sistema. También hay que controlar qué puede hacer, dónde puede hacerlo y hasta qué punto.


    5. Usuario vs. persona

    Es importante no confundir ambos conceptos.

    Persona

    Es el individuo real: un alumno, un profesor, un técnico, un empleado.

    Usuario

    Es la identidad digital con la que esa persona accede al sistema.

    Una misma persona puede tener:

    • una cuenta corporativa,
    • una cuenta de administrador,
    • una cuenta de pruebas,
    • o incluso no tener ninguna cuenta en un sistema concreto.

    Idea clave

    Las cuentas de usuario no deben compartirse.
    Cada acción realizada en un sistema debe poder asociarse a una identidad concreta. Esto permite:

    • mantener la trazabilidad,
    • exigir responsabilidad,
    • investigar incidencias,
    • reforzar la seguridad.

    6. Usuarios locales y usuarios de red

    Usuarios locales

    Son cuentas que existen únicamente en un equipo concreto.

    Ejemplo: un usuario creado en un PC con Windows o en una máquina Linux local.

    Características:

    • solo sirven en ese equipo,
    • no se comparten automáticamente con otros dispositivos,
    • son útiles en entornos pequeños o aislados.

    Usuarios de red

    Son cuentas almacenadas y gestionadas desde un servidor central.

    Características:

    • permiten iniciar sesión desde distintos equipos de la red,
    • centralizan la autenticación,
    • facilitan la administración,
    • son la base de los entornos profesionales.

    Comparativa rápida

    Tipo de usuarioDónde se almacenaDónde puede usarseAdministración
    LocalEn un único equipoSolo en ese equipoIndividual
    De redEn un servidor centralEn varios equipos de la redCentralizada

    7. Grupos de usuarios

    En redes medianas o grandes, asignar permisos usuario por usuario es una mala idea. Es lento, propenso a errores y difícil de mantener.

    Por eso se usan los grupos.

    ¿Qué es un grupo?

    Es una agrupación lógica de usuarios con características o necesidades similares.

    Ejemplos:

    • Alumnos
    • Profesores
    • Administración
    • Soporte
    • Dirección

    Ventajas de usar grupos

    • simplifican la gestión,
    • permiten aplicar permisos de forma masiva,
    • facilitan altas y bajas,
    • reducen errores administrativos.

    Ejemplo

    En lugar de dar permiso manual a 30 alumnos sobre una carpeta, se crea el grupo Alumnos y se asigna el permiso una sola vez a ese grupo.

    Cuando llega un nuevo alumno, basta con añadirlo al grupo.


    8. Derechos y permisos

    Aunque a veces se usan como sinónimos, no son exactamente lo mismo.

    Derechos

    Son capacidades del usuario sobre el sistema.

    Ejemplos:

    • iniciar sesión,
    • apagar el equipo,
    • administrar el sistema,
    • instalar software,
    • acceder por escritorio remoto.

    Permisos

    Son autorizaciones sobre un recurso concreto.

    Ejemplos:

    • leer un archivo,
    • modificar una carpeta,
    • ejecutar un programa,
    • borrar un documento,
    • controlar totalmente un recurso.

    Permisos más habituales

    PermisoQué permite
    LecturaVer el contenido
    EscrituraCrear o modificar
    EjecuciónEjecutar archivos o programas
    ModificaciónCambiar y borrar contenido
    Control totalGestión completa del recurso

    Herencia de permisos

    Muchos sistemas permiten que una carpeta herede permisos de su carpeta superior. Esto facilita la administración, pero también puede provocar errores si no se revisa bien.

    Ejemplo:

    • Carpeta principal: Documentos_Profesorado
    • Subcarpeta: Exámenes

    Si la subcarpeta hereda permisos, podría estar accesible para más usuarios de los deseados si la carpeta principal estaba mal configurada.


    9. Autenticación y autorización

    Son dos conceptos básicos y diferentes.

    Autenticación

    Responde a la pregunta: ¿Quién eres?

    Se verifica la identidad del usuario mediante:

    • nombre de usuario y contraseña,
    • PIN,
    • huella dactilar,
    • tarjeta inteligente,
    • doble factor de autenticación.

    Autorización

    Responde a la pregunta: ¿Qué puedes hacer?

    Una vez que el usuario ya ha demostrado quién es, el sistema decide:

    • a qué carpetas puede entrar,
    • qué programas puede usar,
    • si puede imprimir,
    • si puede instalar software,
    • si puede administrar el equipo.

    Ejemplo sencillo

    Un alumno inicia sesión correctamente en la red del centro:

    • La autenticación ha sido correcta.
    • Pero si intenta entrar en la carpeta de profesores y el sistema se lo impide, ahí entra en juego la autorización.

    10. Principio de mínimo privilegio

    Uno de los principios más importantes en administración y seguridad es el principio de mínimo privilegio.

    ¿Qué significa?

    Cada usuario debe tener únicamente los permisos imprescindibles para realizar su trabajo. Ni más, ni menos.

    ¿Por qué es tan importante?

    Porque reduce:

    • errores accidentales,
    • borrados no intencionados,
    • accesos indebidos,
    • impacto de un malware,
    • abuso de privilegios.

    Ejemplo

    Un alumno no necesita privilegios de administrador en los equipos del aula.
    Un profesor tampoco debería tener acceso total al servidor si no es necesario.
    Un técnico puede tener más permisos, pero solo en los sistemas que debe gestionar.

    Dar permisos de más parece cómodo al principio, pero suele acabar generando problemas.


    11. Redes en sistemas Microsoft

    Los entornos Microsoft han sido históricamente muy usados en empresas, centros educativos y administraciones públicas.

    Windows utiliza TCP/IP de forma nativa para comunicarse en red y ofrece mecanismos específicos para compartir recursos, autenticar usuarios y administrar equipos.


    12. Protocolos clave en entornos Microsoft

    12.1. SMB (Server Message Block)

    Es el protocolo utilizado para compartir:

    • archivos,
    • carpetas,
    • impresoras,
    • recursos de red.

    Cuando en Windows accedes a una carpeta compartida como:

    \\SERVIDOR\DOCUMENTOS

    normalmente estás usando SMB.

    12.2. Kerberos

    Es un protocolo de autenticación muy utilizado en dominios Windows.

    Su objetivo es verificar la identidad de los usuarios de forma segura, evitando enviar la contraseña constantemente por la red.

    Kerberos funciona mediante tickets y es una pieza esencial en Active Directory.

    12.3. DNS

    Es el sistema que traduce nombres a direcciones IP.

    Ejemplo:

    • Nombre: servidor-aula.local
    • IP: 192.168.1.20

    Hoy es fundamental en redes Microsoft, ya que muchos servicios de dominio dependen de una resolución de nombres correcta.

    12.4. NetBIOS

    Fue muy importante en redes Windows antiguas para identificar equipos y compartir recursos por nombre.

    Actualmente su uso es mucho menor, y en redes modernas ha sido desplazado en gran medida por DNS y otros mecanismos más actuales.


    13. Grupo de trabajo y dominio

    En Windows existen dos formas clásicas de organizar una red: grupo de trabajo y dominio.

    13.1. Grupo de trabajo

    Es un modelo simple en el que no existe un servidor central de autenticación.

    Cada equipo:

    • mantiene sus propias cuentas locales,
    • comparte sus propios recursos,
    • administra sus propios permisos.

    Ventajas

    • sencillo de montar,
    • útil en redes pequeñas,
    • no requiere servidor central.

    Inconvenientes

    • poca seguridad,
    • mala escalabilidad,
    • administración repetitiva,
    • poca trazabilidad.

    13.2. Dominio

    Es el modelo profesional. En él existe un servidor central, normalmente con Windows Server y Active Directory, que gestiona:

    • usuarios,
    • grupos,
    • políticas,
    • equipos,
    • permisos,
    • recursos compartidos.

    Ventajas

    • administración centralizada,
    • mejor seguridad,
    • más control,
    • mayor escalabilidad,
    • aplicación uniforme de políticas.

    Inconvenientes

    • mayor complejidad,
    • requiere servidor y configuración específica.

    Comparativa

    CaracterísticaGrupo de trabajoDominio
    Gestión de usuariosLocal en cada equipoCentralizada
    SeguridadLimitadaAlta
    EscalabilidadBajaAlta
    AdministraciónDesordenada en redes grandesMucho más eficiente
    Uso recomendadoRedes pequeñasEmpresas, centros educativos, organizaciones

    14. La familia de protocolos TCP/IP

    Si el sistema operativo de red organiza el entorno, TCP/IP hace posible la comunicación.

    La familia TCP/IP es el conjunto de protocolos que permite que los datos viajen entre dispositivos, tanto en redes locales como en Internet.

    Es el estándar real y práctico utilizado hoy en día.

    TCP/IP frente al modelo OSI

    Aunque muchas veces se estudia el modelo OSI de 7 capas por motivos didácticos, en la práctica TCP/IP suele representarse en 4 capas:

    1. Aplicación
    2. Transporte
    3. Internet
    4. Acceso a red

    15. Capa de Aplicación

    Es la capa más cercana al usuario y a los programas que utiliza.

    Aquí trabajan los protocolos que permiten servicios concretos.

    Protocolos destacados

    HTTP y HTTPS

    Permiten acceder a páginas web.

    • HTTP transmite información sin cifrar.
    • HTTPS añade cifrado mediante TLS/SSL, protegiendo contraseñas, formularios y datos sensibles.

    DNS

    Convierte nombres de dominio en direcciones IP.

    Ejemplo:

    • www.google.com → una IP concreta

    Sin DNS, tendríamos que recordar direcciones IP numéricas para visitar cualquier servicio.

    DHCP

    Asigna automáticamente parámetros de red a los equipos.

    Por ejemplo:

    • dirección IP,
    • máscara de subred,
    • puerta de enlace,
    • servidores DNS.

    Gracias a DHCP, un usuario puede conectar su portátil a una red y obtener configuración automáticamente sin tener que escribirla a mano.


    16. Capa de Transporte

    Se encarga de transportar los datos entre aplicaciones de origen y destino.

    También utiliza los puertos, que permiten distinguir qué aplicación debe recibir la información.

    Ejemplos:

    • puerto 80 → HTTP
    • puerto 443 → HTTPS
    • puerto 53 → DNS
    • puerto 25 → SMTP

    Protocolos principales

    TCP (Transmission Control Protocol)

    Es un protocolo orientado a conexión y fiable.

    Se asegura de que:

    • los datos lleguen,
    • lleguen completos,
    • lleguen en orden,
    • se retransmitan si algo falla.

    Se utiliza en servicios donde la integridad importa mucho, como:

    • navegación web,
    • transferencia de archivos,
    • correo electrónico,
    • acceso remoto seguro.

    UDP (User Datagram Protocol)

    Es mucho más ligero y rápido que TCP, pero no garantiza:

    • entrega,
    • orden,
    • retransmisión.

    Se usa cuando la velocidad importa más que la perfección.

    Ejemplos:

    • streaming,
    • videollamadas,
    • juegos online,
    • ciertos servicios de DNS.

    Comparativa TCP vs UDP

    CaracterísticaTCPUDP
    FiabilidadAltaBaja
    Control de entregaNo
    Orden de llegadaNo
    VelocidadMenorMayor
    Uso típicoWeb, archivos, correoStreaming, voz, juegos

    17. Capa de Internet

    Es la encargada del direccionamiento lógico y del encaminamiento de los paquetes hacia su destino.

    Aquí se decide cómo llegar desde un origen hasta una máquina situada en otra red.

    Protocolos principales

    IP (Internet Protocol)

    Es el protocolo fundamental del direccionamiento.

    Cada equipo conectado a una red necesita una dirección IP para poder identificarse y comunicarse.

    Ejemplo de IP privada:

    192.168.1.34

    IP no garantiza por sí sola que los datos lleguen correctamente. Esa fiabilidad, cuando se necesita, la aporta TCP.

    ICMP (Internet Control Message Protocol)

    Se utiliza para diagnóstico y control.

    Un ejemplo muy conocido es el comando:

    ping

    Cuando hacemos ping a una dirección o a un nombre de dominio, normalmente se están enviando mensajes ICMP para comprobar si existe conectividad.

    Ejemplo de uso

    Si un equipo no puede acceder a Internet, una de las primeras pruebas suele ser:

    • hacer ping a su puerta de enlace,
    • hacer ping a una IP externa,
    • hacer ping a un nombre de dominio.

    Con eso se puede empezar a distinguir si el problema es de conectividad o de resolución DNS.


    18. Capa de Acceso a Red

    Es la capa donde el software se encuentra con el hardware.

    Aquí se trabaja con:

    • tarjetas de red,
    • direcciones MAC,
    • tramas,
    • medios físicos,
    • señales eléctricas, ópticas o inalámbricas.

    Tecnologías habituales

    • Ethernet
    • Wi-Fi

    Dirección MAC

    Cada interfaz de red tiene asociada una dirección física o MAC.

    Esta dirección se utiliza en la comunicación dentro de la red local.

    Mientras que la IP identifica lógicamente al equipo en una red, la MAC identifica físicamente la interfaz en el nivel de acceso a red.


    19. El viaje de los datos: ejemplo completo

    Vamos a ver qué ocurre cuando un usuario abre una página web.

    Situación

    Un alumno escribe en el navegador:

    https://www.ejemplo.com

    Paso 1: Capa de Aplicación

    El navegador necesita acceder al sitio web.

    • Si no conoce la IP del servidor, utiliza DNS para resolver el nombre.
    • Después prepara la comunicación usando HTTPS.

    Paso 2: Capa de Transporte

    Se utiliza normalmente TCP porque interesa que los datos lleguen correctamente.

    El navegador se comunica con el puerto 443, que corresponde a HTTPS.

    Paso 3: Capa de Internet

    Los datos se encapsulan en paquetes IP.

    La dirección IP de origen será la del ordenador del alumno y la IP de destino será la del servidor web.

    Paso 4: Capa de Acceso a Red

    Los paquetes se convierten en tramas y se envían físicamente por la red mediante Ethernet o Wi-Fi.

    Resultado

    El servidor recibe la petición, responde, y el proceso inverso permite que la página llegue al navegador del usuario.


    20. Relación entre administración de red y TCP/IP

    Estos dos bloques no deben estudiarse por separado como si no tuvieran relación.

    En realidad, están totalmente conectados.

    • El sistema operativo de red organiza usuarios, equipos, permisos y recursos.
    • TCP/IP permite que todos esos elementos puedan comunicarse.

    Por ejemplo:

    • un usuario inicia sesión contra un servidor,
    • una carpeta compartida se accede por red,
    • una impresora se usa remotamente,
    • un controlador de dominio resuelve nombres y autentica identidades,
    • un servidor DHCP asigna IP a los clientes.

    Todo eso se apoya sobre TCP/IP.


    21. Ejemplos prácticos del día a día

    Ejemplo 1: Inicio de sesión en un aula

    Un alumno enciende un ordenador del aula e introduce su usuario y contraseña.

    • El sistema autentica su identidad.
    • Se aplican sus permisos.
    • Puede acceder a sus recursos de red.

    Ejemplo 2: Carpeta compartida de profesores

    Solo el grupo de profesores debe poder acceder a una carpeta con exámenes.

    • Se crea un grupo llamado Profesores.
    • Se asignan permisos a ese grupo.
    • Los alumnos no tienen acceso.

    Ejemplo 3: Asignación automática de red

    Un portátil se conecta al Wi-Fi del centro.

    • DHCP le entrega una IP.
    • DNS le permite resolver nombres.
    • TCP/IP hace posible toda la comunicación.

    Ejemplo 4: Diagnóstico básico

    Un usuario dice que “Internet no funciona”.

    El técnico puede comprobar:

    • si tiene IP,
    • si responde la puerta de enlace,
    • si funciona DNS,
    • si hay conectividad con el exterior.

    22. Errores habituales que conviene evitar

    En administración de red hay varios errores muy frecuentes:

    Compartir cuentas de usuario

    Rompe la trazabilidad y reduce la seguridad.

    Asignar permisos uno a uno

    Hace la gestión lenta y propensa a errores. Es mejor usar grupos.

    Dar privilegios excesivos

    Aumenta el riesgo de accidentes y abusos.

    No revisar herencias de permisos

    Puede dejar recursos accesibles a usuarios no autorizados.

    Pensar que “tener red” es solo tener Internet

    Una red bien administrada implica mucho más: usuarios, recursos, permisos, autenticación y organización.

    No diferenciar autenticación de autorización

    Un usuario puede estar autenticado correctamente y aun así no tener permiso para acceder a un recurso.


    Un sistema operativo de red es la base organizativa que permite que una red funcione de manera controlada, segura y eficiente. Gracias a él es posible gestionar usuarios, grupos, permisos, servicios y equipos desde una perspectiva global.

    En entornos profesionales, el modelo cliente-servidor y la administración centralizada son esenciales para evitar el desorden y reforzar la seguridad. En ese contexto, conceptos como autenticación, autorización, grupos de usuarios y mínimo privilegio son fundamentales.

    Por otro lado, la familia de protocolos TCP/IP constituye la base de la comunicación moderna. Sus capas permiten que los datos viajen desde una aplicación concreta hasta el medio físico, pasando por el transporte, el direccionamiento y el acceso a red.

    Entender estos fundamentos no es opcional para cualquier administrador de sistemas o técnico de redes: es la base sobre la que se construyen servicios más avanzados como dominios, servidores web, compartición de archivos, monitorización, seguridad y administración centralizada.


    Ideas clave

    Un sistema operativo de red no solo conecta equipos: organiza, controla y protege los recursos compartidos.

    Una persona y un usuario no son lo mismo: el usuario es su identidad digital.

    En redes profesionales, los permisos deben gestionarse mediante grupos, no usuario por usuario.

    Autenticación es demostrar quién eres; autorización es determinar qué puedes hacer.

    El principio de mínimo privilegio reduce riesgos y mejora la seguridad.

    En entornos Microsoft, SMB, Kerberos y DNS son tecnologías fundamentales.

    TCP/IP es el conjunto de protocolos que hace posible la comunicación en redes e Internet.

    TCP prioriza la fiabilidad; UDP prioriza la rapidez.

    IP direcciona los paquetes y ICMP ayuda a diagnosticar problemas de conectividad.

  • 1. Fundamentos de Redes Informáticas

    1. Fundamentos de Redes Informáticas

    🎧 Resumen en audio del tema
    Escucha este breve audio para repasar las ideas principales de los fundamentos de redes informáticas antes de continuar o al finalizar la lectura.


    Vivimos en una sociedad permanentemente conectada. Cada vez que enviamos un mensaje desde el teléfono móvil, vemos un vídeo en streaming o accedemos a una página web, estamos utilizando una red informática.

    Las redes surgieron para resolver una necesidad muy concreta: permitir que los ordenadores dejaran de trabajar de forma aislada y pudieran compartir información, recursos y servicios de manera rápida, eficiente y económica.

    Pero, ¿qué es exactamente una red? ¿Cómo consiguen comunicarse entre sí nuestros dispositivos en cuestión de milisegundos, incluso estando a miles de kilómetros de distancia?

    En este tema vamos a estudiar los conceptos básicos de redes informáticas: los tipos de redes según su alcance, los dispositivos que las forman, las topologías más habituales, los protocolos que hacen posible la comunicación y el modelo OSI, que nos ayuda a entender cómo viajan los datos de un equipo a otro.


    Objetivos del tema

    Al finalizar este tema, el alumno será capaz de:

    • Comprender qué es una red informática y por qué es importante.
    • Diferenciar los principales tipos de redes según su alcance.
    • Identificar los elementos básicos que forman una red local.
    • Entender las topologías más utilizadas en redes.
    • Reconocer los protocolos fundamentales de comunicación.
    • Interpretar el modelo OSI y relacionarlo con dispositivos y servicios reales.

    1. ¿Qué es una red informática?

    Una red informática es un conjunto de dispositivos conectados entre sí que pueden intercambiar información y compartir recursos.

    Estos dispositivos pueden ser ordenadores, móviles, impresoras, servidores, tablets, cámaras IP, televisores inteligentes y muchos otros equipos.

    Gracias a una red, es posible:

    • Compartir archivos.
    • Acceder a impresoras comunes.
    • Navegar por Internet.
    • Enviar correos electrónicos.
    • Utilizar aplicaciones en línea.
    • Conectarse a servidores y bases de datos.

    Ejemplo cotidiano

    Cuando conectas tu portátil al Wi-Fi de casa para ver una página web, están interviniendo varios elementos de red: tu tarjeta de red, el router, el proveedor de Internet, servidores intermedios y el servidor final que aloja esa web.


    2. Clasificación de las redes según su alcance

    Las redes pueden clasificarse según la distancia o el área geográfica que abarcan. De menor a mayor alcance, encontramos los siguientes tipos:

    2.1 BAN (Body Area Network)

    La BAN es una red de alcance muy reducido, normalmente de centímetros o pocos metros. Se utiliza para conectar dispositivos que se llevan encima del cuerpo o incluso integrados en él.

    Ejemplos:

    • Relojes inteligentes.
    • Pulseras de actividad.
    • Sensores médicos.
    • Dispositivos de monitorización corporal.

    2.2 PAN (Personal Area Network)

    La PAN conecta dispositivos personales en un radio pequeño, normalmente de unos 10 metros.

    Suele utilizar tecnologías de bajo consumo, como Bluetooth.

    Ejemplos:

    • Móvil conectado a auriculares inalámbricos.
    • Tablet enlazada con un teclado Bluetooth.
    • Teléfono móvil conectado a un smartwatch.

    2.3 LAN (Local Area Network)

    La LAN es una red de área local. Conecta dispositivos dentro de un espacio limitado, como:

    • Un aula.
    • Una oficina.
    • Un laboratorio.
    • Un edificio pequeño.

    Se caracteriza por ofrecer:

    • Alta velocidad.
    • Baja latencia.
    • Control privado.
    • Facilidad para compartir recursos.

    Ejemplos:

    • La red de ordenadores de un aula de informática.
    • La red de una empresa en una sola planta.
    • La red interna de un laboratorio.

    2.4 HAN (Home Area Network)

    La HAN puede considerarse un caso particular de red local, centrada en el entorno doméstico.

    Conecta los dispositivos de una vivienda.

    Ejemplos:

    • Ordenadores.
    • Móviles.
    • Smart TV.
    • Consolas.
    • Impresoras.
    • Cámaras IP.
    • Asistentes inteligentes.

    2.5 CAN (Campus Area Network)

    La CAN conecta varias redes LAN dentro de un recinto más amplio.

    Ejemplos:

    • Una universidad con varios edificios.
    • Un instituto con distintas sedes.
    • Un hospital con varias áreas conectadas.

    2.6 MAN (Metropolitan Area Network)

    La MAN conecta diferentes redes dentro de una misma ciudad o área metropolitana.

    Normalmente utiliza infraestructuras de alta capacidad, como fibra óptica.

    Ejemplo:

    • La red que conecta distintas sedes de una administración pública dentro de una ciudad.

    2.7 WAN (Wide Area Network)

    La WAN es una red de gran extensión geográfica. Permite conectar redes situadas en diferentes ciudades, países o incluso continentes.

    Para ello se apoya en infraestructuras de operadores de telecomunicaciones.

    Ejemplos:

    • La red corporativa de una empresa con oficinas en varias ciudades.
    • Redes bancarias distribuidas por diferentes países.

    2.8 GAN (Global Area Network)

    La GAN es una red de alcance global que interconecta redes WAN a escala mundial.

    Internet es el mayor ejemplo de este tipo de red.

    Ejemplos:

    • Internet.
    • Redes globales que utilizan satélites y cables submarinos.

    3. Elementos clave de una red local

    Para construir una red no basta con conectar ordenadores sin más. Es necesario utilizar varios componentes, y cada uno cumple una función específica.

    3.1 Equipos finales o hosts

    Son los dispositivos que generan o reciben la información.

    Ejemplos:

    • Ordenadores.
    • Portátiles.
    • Tablets.
    • Móviles.
    • Impresoras.
    • Cámaras IP.
    • Smart TV.
    • Servidores.

    Un servidor es un equipo preparado para ofrecer servicios a otros dispositivos de la red, como páginas web, archivos compartidos, correo electrónico o bases de datos.


    3.2 Switch (conmutador)

    El switch conecta varios dispositivos dentro de una red local cableada.

    Su función principal es enviar la información únicamente al equipo destinatario, utilizando para ello la dirección física o MAC.

    Idea clave:

    El switch organiza el tráfico dentro de la red local.


    3.3 Router (enrutador)

    El router conecta redes diferentes entre sí.

    En una red doméstica o de oficina, el router suele unir:

    • La red local.
    • Internet.

    Trabaja principalmente con direcciones IP y se encarga de decidir qué ruta debe seguir la información.

    Idea clave:

    El router es la puerta de salida desde la red local hacia otras redes.


    3.4 Módem / ONT

    Este dispositivo adapta la señal para que pueda viajar por la infraestructura del proveedor de Internet.

    Dependiendo del tipo de conexión, puede tratarse de:

    • Un módem.
    • Una ONT en conexiones de fibra óptica.

    Función:

    Transformar la señal de la red interna a un formato adecuado para el medio del operador.


    3.5 Medios de transmisión

    Son los caminos por los que viajan los datos.

    Pueden ser:

    Cableados

    • Cable de par trenzado.
    • Cable coaxial.
    • Fibra óptica.

    Inalámbricos

    • Wi-Fi.
    • Bluetooth.
    • Ondas de radio.

    4. Topologías de red: la arquitectura de la conexión

    La topología es la forma en la que se organizan físicamente o lógicamente los dispositivos de una red.

    4.1 Topología en bus

    Todos los equipos comparten un único cable central.

    Ventajas:

    • Sencilla.
    • Económica.

    Inconvenientes:

    • Si el cable principal falla, toda la red deja de funcionar.
    • Genera muchas colisiones.
    • Está obsoleta en entornos modernos.

    4.2 Topología en anillo

    Los dispositivos forman un círculo y la información circula en una dirección determinada.

    Ventajas:

    • Flujo ordenado de la información.

    Inconvenientes:

    • Si un equipo falla o se rompe el enlace, se interrumpe la comunicación.
    • Poco flexible.

    4.3 Topología en estrella

    Es la más utilizada actualmente.

    Todos los dispositivos están conectados a un nodo central, normalmente un switch o router.

    Ventajas:

    • Fácil de administrar.
    • Si falla un cable, solo se desconecta un equipo.
    • Permite ampliar la red con facilidad.

    Inconveniente:

    • Si falla el dispositivo central, la red puede quedar afectada.

    4.4 Topología en malla

    Cada dispositivo está conectado a varios nodos, de forma que existen rutas alternativas.

    Ventajas:

    • Alta redundancia.
    • Gran tolerancia a fallos.
    • Muy útil en redes críticas.

    Inconvenientes:

    • Mayor coste.
    • Configuración más compleja.

    5. El lenguaje de la red: protocolos de comunicación

    Conectar dispositivos no es suficiente. Todos deben seguir unas normas comunes para entenderse. Esas normas reciben el nombre de protocolos.

    La familia más importante hoy en día es TCP/IP, base del funcionamiento de Internet.

    5.1 IP (Internet Protocol)

    El protocolo IP identifica a cada dispositivo dentro de la red mediante una dirección IP.

    Podemos imaginarla como una dirección postal que permite saber:

    • De dónde sale la información.
    • A dónde debe llegar.

    5.2 TCP y UDP

    Ambos son protocolos de transporte, pero funcionan de forma diferente.

    TCP

    • Divide la información en partes.
    • Verifica que todo llegue correctamente.
    • Reordena los datos si es necesario.
    • Garantiza fiabilidad.

    Usos habituales:

    • Navegación web.
    • Correo electrónico.
    • Transferencia de archivos.

    UDP

    • Envía datos sin comprobar si han llegado.
    • Es más rápido.
    • Tiene menos sobrecarga.

    Usos habituales:

    • Videollamadas.
    • Streaming en directo.
    • Videojuegos online.

    5.3 DNS

    El DNS traduce nombres de dominio comprensibles para las personas a direcciones IP comprensibles para las máquinas.

    Ejemplo:

    • www.ejemplo.com142.250.190.14

    Idea clave:

    El DNS actúa como una agenda o guía telefónica de Internet.


    5.4 DHCP

    El DHCP asigna automáticamente una dirección IP a los dispositivos cuando se conectan a la red.

    Gracias a ello, el usuario no tiene que configurar manualmente la IP de cada equipo.


    5.5 HTTP y HTTPS

    Son los protocolos utilizados para la navegación web.

    HTTP

    Permite intercambiar páginas web y otros recursos entre cliente y servidor.

    HTTPS

    Es la versión segura de HTTP. Añade cifrado para proteger la información intercambiada.

    Ejemplo:

    Cuando introduces contraseñas o datos bancarios en una web, lo correcto es que esa web utilice HTTPS.


    6. El modelo OSI: entendiendo cómo viajan los datos

    El modelo OSI (Open Systems Interconnection) es un modelo teórico que divide la comunicación de red en 7 capas.

    Su objetivo es facilitar el estudio, diseño y resolución de problemas de red.

    6.1 Capa 1: Física

    Se encarga de transmitir bits a través del medio físico.

    Ejemplos:

    • Cables.
    • Señales eléctricas.
    • Luz en fibra óptica.
    • Ondas Wi-Fi.

    6.2 Capa 2: Enlace de datos

    Agrupa bits en tramas, detecta errores locales y utiliza direcciones MAC.

    Dispositivos relacionados:

    • Switches.

    6.3 Capa 3: Red

    Se encarga del direccionamiento lógico y del enrutamiento.

    Elementos clave:

    • Direcciones IP.
    • Routers.

    6.4 Capa 4: Transporte

    Garantiza la entrega de la información entre origen y destino.

    Protocolos principales:

    • TCP.
    • UDP.

    6.5 Capa 5: Sesión

    Controla el inicio, mantenimiento y cierre de la comunicación entre dos equipos.


    6.6 Capa 6: Presentación

    Se encarga de traducir, comprimir y cifrar los datos.

    Ejemplos:

    • Codificación.
    • Compresión.
    • Cifrado.

    6.7 Capa 7: Aplicación

    Es la capa más cercana al usuario. Aquí trabajan las aplicaciones que utilizamos a diario.

    Ejemplos:

    • Navegadores web.
    • Clientes de correo.
    • Aplicaciones de mensajería.
    • Servicios web.

    7. Encapsulación: el viaje de los datos

    Cuando un usuario envía un mensaje o solicita una página web, la información no viaja “tal cual”.

    Pasa por un proceso llamado encapsulación:

    1. Los datos se generan en la capa de aplicación.
    2. Van descendiendo por las capas del modelo.
    3. Cada capa añade su propia información de control.
    4. Finalmente, los bits viajan por el medio físico.

    En el equipo receptor ocurre lo contrario:

    1. La información entra por la capa física.
    2. Va subiendo capa a capa.
    3. Cada nivel interpreta y elimina su parte de control.
    4. La aplicación final muestra el contenido al usuario.

    8. Relación entre dispositivos, protocolos y capas

    Para entender mejor una red, conviene relacionar los conceptos vistos:

    • Switch → trabaja principalmente en la capa 2.
    • Router → trabaja principalmente en la capa 3.
    • TCP y UDP → pertenecen a la capa 4.
    • HTTP, HTTPS, DNS, DHCP → se usan en capas superiores, cercanas a la aplicación.
    • Cable, fibra, Wi-Fi → están relacionados con la capa 1.

    9. Ejemplo real de comunicación en una red

    Imagina que un alumno abre una página web desde el portátil del aula:

    1. Escribe la dirección de la web en el navegador.
    2. El equipo consulta al DNS para saber qué IP corresponde a ese nombre.
    3. El portátil envía la petición a través del switch de la red local.
    4. El router dirige la petición hacia Internet.
    5. La información atraviesa varias redes hasta llegar al servidor web.
    6. El servidor responde.
    7. Los datos regresan al portátil.
    8. El navegador interpreta la respuesta y muestra la página.

    En este proceso intervienen dispositivos, protocolos, medios físicos y varias capas del modelo OSI.


    Tabla comparativa: Modelo OSI vs Modelo TCP/IP

    Modelo OSIFunción principalModelo TCP/IPFunción principal
    7. AplicaciónProporciona servicios de red a las aplicaciones del usuarioAplicaciónReúne las funciones de aplicación, presentación y sesión
    6. PresentaciónTraduce, comprime y cifra los datosAplicaciónGestiona el formato de los datos y servicios de alto nivel
    5. SesiónEstablece, mantiene y cierra sesiones de comunicaciónAplicaciónControla la comunicación entre aplicaciones
    4. TransporteGarantiza la entrega de datos extremo a extremoTransporteGestiona la comunicación extremo a extremo mediante TCP o UDP
    3. RedSe encarga del direccionamiento lógico y del enrutamientoInternetGestiona direcciones IP y el envío de paquetes entre redes
    2. Enlace de datosControla acceso al medio, tramas y direcciones MACAcceso a la redManeja la transmisión local de datos sobre el medio físico
    1. FísicaTransmite bits por cables, radio o fibraAcceso a la redIncluye los medios físicos y el acceso al medio

    Resumen rápido

    AspectoModelo OSIModelo TCP/IP
    Número de capas7 capas4 capas
    OrigenModelo teórico de referenciaModelo práctico usado en Internet
    Nivel de detalleMás detalladoMás simplificado
    Uso realMuy usado para enseñar y diagnosticarBase real de las comunicaciones en red
    Capas superioresAplicación, Presentación y Sesión separadasSe agrupan en Aplicación
    Capas inferioresEnlace y Física separadasSe agrupan en Acceso a la red

    Relación entre ambos modelos

    OSITCP/IP
    Aplicación + Presentación + SesiónAplicación
    TransporteTransporte
    RedInternet
    Enlace de datos + FísicaAcceso a la red

    10. Resumen del tema

    Una red informática permite conectar dispositivos para compartir información y recursos.

    Según su alcance, las redes pueden ser BAN, PAN, LAN, HAN, CAN, MAN, WAN o GAN.

    Dentro de una red local encontramos elementos fundamentales como:

    • Hosts.
    • Switches.
    • Routers.
    • Módems / ONT.
    • Medios de transmisión.

    Las redes también se pueden organizar según distintas topologías, siendo la estrella la más habitual hoy en día.

    Para comunicarse, los dispositivos utilizan protocolos como:

    • IP
    • TCP
    • UDP
    • DNS
    • DHCP
    • HTTP
    • HTTPS

    Además, el modelo OSI permite entender de forma ordenada cómo viajan los datos desde una aplicación hasta el medio físico y viceversa.

  • [Reto] – Miniaplicación web con PHP, MySQLi y JavaScript (Sin POO)

    [Reto] – Miniaplicación web con PHP, MySQLi y JavaScript (Sin POO)

    Importante
    Esta práctica está pensada para comprobar que el alumno tiene una base real en desarrollo web con PHP.
    No se busca una aplicación compleja. Se busca una aplicación simple, funcional, bien organizada y bien explicada.


    ¿Qué vais a hacer?

    En esta práctica vais a desarrollar una pequeña aplicación web con:

    • una portada
    • una página con formulario
    • una página de listado
    • una base de datos MySQL
    • conexión con PHP usando mysqli
    • validación del formulario con JavaScript

    Además del código, tendréis que entregar una documentación paso a paso explicando todo el proceso.


    Objetivo de la práctica

    El objetivo es construir una miniaplicación que permita registrar alumnos en una base de datos.

    Cada registro deberá incluir como mínimo:

    • nombre
    • apellidos
    • email
    • curso
    • edad

    La aplicación deberá permitir:

    1. entrar en una portada,
    2. acceder a un formulario,
    3. validar los datos antes de enviarlos,
    4. guardar esos datos en MySQL,
    5. mostrar un listado con todos los registros guardados.

    Qué debe tener la aplicación

    Parte obligatoria

    La aplicación debe incluir obligatoriamente:

    • una portada (index.php)
    • una página con formulario (formulario.php)
    • una página que procese el guardado (guardar.php)
    • una página de listado (listar.php)
    • una conexión a base de datos (conexion.php)
    • una validación con JavaScript (script.js)
    • una base de datos MySQL con una tabla
    • un archivo SQL con la creación de la base de datos y la tabla

    Mejoras opcionales

    Se valorará positivamente si añadís:

    • programación orientada a objetos
    • validación también en PHP
    • sesiones
    • login con contraseña
    • uso de password_hash()
    • consultas preparadas
    • edición de registros
    • borrado de registros
    • mejor diseño con CSS

    Guía paso a paso


    Paso 1. Crear la carpeta del proyecto

    Cread una carpeta para guardar todos los archivos de la práctica.

    Estructura recomendada

    practica_php_recuperacion/

    ├── index.php
    ├── formulario.php
    ├── guardar.php
    ├── listar.php
    ├── conexion.php
    ├── script.js
    ├── estilos.css
    ├── bbdd.sql
    └── README.md

    Importante
    Aunque el proyecto sea pequeño, debéis mantener una estructura clara.
    Un proyecto desordenado suele dar problemas y también dificulta explicar el trabajo.


    Paso 2. Crear la base de datos

    Antes de empezar con PHP, debéis crear la base de datos y la tabla donde se guardarán los datos.

    Script SQL de ejemplo

    CREATE DATABASE practica_php;
    USE practica_php;CREATE TABLE alumnos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nombre VARCHAR(50) NOT NULL,
    apellidos VARCHAR(100) NOT NULL,
    email VARCHAR(100) NOT NULL,
    curso VARCHAR(50) NOT NULL,
    edad INT NOT NULL
    );

    Qué hace este script

    • crea una base de datos llamada practica_php
    • selecciona esa base de datos
    • crea una tabla llamada alumnos
    • define un campo id autoincremental
    • añade los campos del formulario

    Qué debéis hacer vosotros

    • ejecutar el script
    • comprobar que la base de datos existe
    • comprobar que la tabla se ha creado correctamente
    • hacer una captura de pantalla

    Ejemplo de explicación para la entrega

    Primero he creado una base de datos llamada practica_php. Después he creado una tabla llamada alumnos, que servirá para almacenar los datos enviados desde el formulario. La tabla tiene un campo id como clave primaria y varios campos de texto y numéricos para guardar la información.


    Paso 3. Crear la portada

    La portada será la página inicial de la aplicación.

    Debe incluir

    • un título
    • una breve descripción
    • un enlace al formulario
    • un enlace al listado

    Ejemplo de index.php

    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>Miniaplicación PHP</title>
        <link rel="stylesheet" href="estilos.css">
    </head>
    <body>
        <h1>Miniaplicación de registro de alumnos</h1>
        <p>Esta aplicación permite guardar alumnos en una base de datos y mostrar su listado.</p>
    
        <ul>
            <li><a href="formulario.php">Ir al formulario</a></li>
            <li><a href="listar.php">Ver listado</a></li>
        </ul>
    </body>
    </html>

    Qué debéis comprobar

    • la página carga sin errores
    • los enlaces funcionan
    • el texto se ve correctamente

    Ejemplo de explicación para la entrega

    He creado una portada en el archivo index.php para que la aplicación tenga una página inicial. En ella he añadido un título, una descripción breve y dos enlaces: uno al formulario y otro al listado.


    Paso 4. Crear el formulario

    Ahora debéis crear la página que permitirá introducir los datos.

    Campos obligatorios

    El formulario debe incluir como mínimo:

    • nombre
    • apellidos
    • email
    • curso
    • edad

    Ejemplo de formulario.php

    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>Formulario de alumnos</title>
        <link rel="stylesheet" href="estilos.css">
        <script src="script.js" defer></script>
    </head>
    <body>
        <h1>Formulario de alumnos</h1>
    
        <form action="guardar.php" method="post" id="formAlumno">
            <label for="nombre">Nombre:</label>
            <input type="text" name="nombre" id="nombre">
    
            <label for="apellidos">Apellidos:</label>
            <input type="text" name="apellidos" id="apellidos">
    
            <label for="email">Email:</label>
            <input type="text" name="email" id="email">
    
            <label for="curso">Curso:</label>
            <input type="text" name="curso" id="curso">
    
            <label for="edad">Edad:</label>
            <input type="number" name="edad" id="edad">
    
            <button type="submit">Guardar</button>
        </form>
    
        <p><a href="index.php">Volver a la portada</a></p>
    </body>
    </html>

    Fijaos en esto

    • action="guardar.php" indica a qué archivo se enviarán los datos
    • method="post" indica que los datos viajarán mediante POST
    • cada campo tiene name e id
    • el formulario tiene un id para poder validarlo con JavaScript

    Importante
    Si un name está mal escrito, PHP no recibirá bien ese dato.
    Este es uno de los errores más comunes en este tipo de práctica.

    Ejemplo de explicación para la entrega

    En el archivo formulario.php he creado un formulario HTML con cinco campos. He usado el método POST para enviar los datos al archivo guardar.php, que será el encargado de procesarlos en PHP.


    Paso 5. Validar el formulario con JavaScript

    Antes de guardar los datos, debéis comprobar en el navegador que lo que el usuario ha escrito tiene sentido.

    Debéis validar al menos

    • que no haya campos vacíos
    • que el email tenga formato válido
    • que la edad sea correcta

    Ejemplo de script.js

    document.addEventListener("DOMContentLoaded", function () {
        const formulario = document.getElementById("formAlumno");
    
        formulario.addEventListener("submit", function (e) {
            const nombre = document.getElementById("nombre").value.trim();
            const apellidos = document.getElementById("apellidos").value.trim();
            const email = document.getElementById("email").value.trim();
            const curso = document.getElementById("curso").value.trim();
            const edad = document.getElementById("edad").value.trim();
    
            if (nombre === "" || apellidos === "" || email === "" || curso === "" || edad === "") {
                alert("Todos los campos son obligatorios.");
                e.preventDefault();
                return;
            }
    
            const patronEmail = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
            if (!patronEmail.test(email)) {
                alert("El email no tiene un formato válido.");
                e.preventDefault();
                return;
            }
    
            if (isNaN(edad) || edad < 1 || edad > 120) {
                alert("La edad no es válida.");
                e.preventDefault();
            }
        });
    });

    Qué debéis probar

    • dejar todos los campos vacíos
    • escribir un email incorrecto
    • escribir una edad no válida
    • rellenar todo correctamente

    Ejemplo de explicación para la entrega

    He creado un archivo script.js para validar el formulario antes del envío. Primero compruebo que no haya campos vacíos. Después reviso el formato del email mediante una expresión regular y, por último, valido que la edad sea numérica y esté en un rango lógico.

    Importante
    La validación en JavaScript mejora la experiencia del usuario, pero no sustituye a la validación en servidor.
    Como mejora opcional, podéis validar también en PHP.


    Paso 6. Crear la conexión a la base de datos

    Ahora debéis preparar el archivo que conectará PHP con MySQL.

    Ejemplo de conexion.php

    <?php
    $servidor = "localhost";
    $usuario = "root";
    $contrasena = "";
    $basedatos = "practica_php";
    
    $conexion = new mysqli($servidor, $usuario, $contrasena, $basedatos);
    
    if ($conexion->connect_error) {
        die("Error de conexión: " . $conexion->connect_error);
    }
    ?>

    Qué debéis comprobar

    • el archivo conecta correctamente
    • la base de datos indicada existe
    • no hay errores de usuario, contraseña o nombre de base de datos

    Ejemplo de explicación para la entrega

    En conexion.php he definido las variables necesarias para conectarme a MySQL: servidor, usuario, contraseña y nombre de la base de datos. Después he usado new mysqli(...) para abrir la conexión y he añadido una comprobación para detectar errores.


    Paso 7. Guardar los datos enviados

    Aquí debéis recoger los datos del formulario y guardarlos en la tabla.

    Ejemplo de guardar.php

    <?php
    include("conexion.php");
    
    $nombre = $_POST["nombre"];
    $apellidos = $_POST["apellidos"];
    $email = $_POST["email"];
    $curso = $_POST["curso"];
    $edad = $_POST["edad"];
    
    $sql = "INSERT INTO alumnos (nombre, apellidos, email, curso, edad)
    VALUES ('$nombre', '$apellidos', '$email', '$curso', '$edad')";
    
    if ($conexion->query($sql) === TRUE) {
        echo "<h1>Registro guardado correctamente</h1>";
        echo "<p><a href='formulario.php'>Volver al formulario</a></p>";
        echo "<p><a href='listar.php'>Ver listado</a></p>";
    } else {
        echo "Error: " . $conexion->error;
    }
    
    $conexion->close();
    ?>

    Qué debéis entender aquí

    • $_POST recoge los datos enviados por el formulario
    • INSERT INTO añade una fila nueva a la tabla
    • query() ejecuta la consulta SQL
    • si todo va bien, se muestra un mensaje de éxito

    Ejemplo de explicación para la entrega

    En guardar.php he recogido los valores enviados desde el formulario con $_POST. Después he creado una consulta INSERT para guardar esos datos en la tabla alumnos. Finalmente he ejecutado la consulta y he mostrado un mensaje de éxito si el guardado se ha realizado correctamente.

    Importante
    Este ejemplo está hecho de forma simple para trabajar los fundamentos.
    Como mejora opcional, se valorará el uso de consultas preparadas.


    Paso 8. Mostrar el listado de registros

    Ahora debéis recuperar los datos de la tabla y mostrarlos en pantalla.

    Ejemplo de listar.php

    <?php
    include("conexion.php");
    
    $sql = "SELECT * FROM alumnos";
    $resultado = $conexion->query($sql);
    ?>
    
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>Listado de alumnos</title>
        <link rel="stylesheet" href="estilos.css">
    </head>
    <body>
        <h1>Listado de alumnos</h1>
    
        <table border="1">
            <tr>
                <th>ID</th>
                <th>Nombre</th>
                <th>Apellidos</th>
                <th>Email</th>
                <th>Curso</th>
                <th>Edad</th>
            </tr>
    
            <?php while($fila = $resultado->fetch_assoc()) { ?>
                <tr>
                    <td><?php echo $fila["id"]; ?></td>
                    <td><?php echo $fila["nombre"]; ?></td>
                    <td><?php echo $fila["apellidos"]; ?></td>
                    <td><?php echo $fila["email"]; ?></td>
                    <td><?php echo $fila["curso"]; ?></td>
                    <td><?php echo $fila["edad"]; ?></td>
                </tr>
            <?php } ?>
        </table>
    
        <p><a href="index.php">Volver a la portada</a></p>
    </body>
    </html>
    
    <?php
    $conexion->close();
    ?>

    Qué debéis entender aquí

    • SELECT * FROM alumnos recupera todos los registros
    • query() ejecuta la consulta
    • fetch_assoc() devuelve una fila asociativa
    • el while recorre todas las filas

    Ejemplo de explicación para la entrega

    En listar.php he realizado una consulta SELECT para obtener todos los registros de la tabla alumnos. Después he usado un bucle while junto con fetch_assoc() para recorrer el resultado y mostrar cada alumno dentro de una tabla HTML.


    Paso 9. Añadir un estilo básico

    La parte visual no es lo principal, pero sí conviene que la aplicación tenga una presentación limpia.

    Ejemplo de estilos.css

    body {
        font-family: Arial, sans-serif;
        margin: 30px;
        background-color: #f4f4f4;
    }
    
    h1 {
        color: #333;
    }
    
    form {
        background: white;
        padding: 20px;
        width: 350px;
        border: 1px solid #ccc;
    }
    
    label {
        display: block;
        margin-top: 10px;
    }
    
    input {
        width: 100%;
        padding: 8px;
        margin-top: 5px;
    }
    
    button {
        margin-top: 15px;
        padding: 10px 15px;
    }

    Ejemplo de explicación para la entrega

    He creado un archivo estilos.css para dar una presentación básica al proyecto. He aplicado una tipografía sencilla, un fondo claro y un estilo mínimo al formulario y a los campos de entrada.


    Comprobaciones finales

    Antes de entregar, revisad todo esto:

    • la portada carga correctamente
    • el formulario se muestra bien
    • la validación bloquea errores
    • los datos correctos se guardan
    • el listado muestra los registros
    • no hay enlaces rotos
    • la base de datos coincide con el código PHP

    Qué debéis entregar

    Debéis entregar un archivo comprimido .zip con esta estructura:

    apellido_nombre_recuperacion_php.zip

    ├── proyecto/
    │ ├── index.php
    │ ├── formulario.php
    │ ├── guardar.php
    │ ├── listar.php
    │ ├── conexion.php
    │ ├── script.js
    │ ├── estilos.css
    │ └── bbdd.sql

    └── documentacion/
    └── memoria_practica.pdf

    Tabla de evaluación

    ApartadoQué se valora
    Estructura del proyectoQue los archivos estén organizados y tengan sentido
    PortadaQue exista, funcione y permita navegar
    FormularioQue tenga los campos pedidos y funcione
    Validación JSQue detecte errores básicos correctamente
    Conexión con MySQLQue use mysqli y funcione
    Inserción de datosQue los datos se guarden correctamente
    ListadoQue se muestren todos los registros
    Claridad del códigoQue el código sea simple, comprensible y ordenado
    DocumentaciónQue explique el proceso paso a paso
    Mejoras opcionalesPOO, sesiones, seguridad, edición, borrado, etc.

    Plantilla completa de memoria para rellenar

    A continuación tenéis una plantilla orientativa. Podéis seguir esta estructura para redactar vuestra memoria.


    1. Portada

    Título de la práctica:
    Miniaplicación web con PHP, MySQLi y JavaScript

    Nombre y apellidos del alumno:
    [Escribir aquí]

    Módulo:
    [Escribir aquí]

    Fecha:
    [Escribir aquí]


    2. Objetivo de la práctica

    Ejemplo de redacción

    El objetivo de esta práctica ha sido desarrollar una miniaplicación web en PHP conectada a una base de datos MySQL. La aplicación permite introducir datos de alumnos mediante un formulario, validarlos con JavaScript, guardarlos en la base de datos y mostrar posteriormente el listado de registros almacenados.


    3. Descripción general del proyecto

    Explicad qué archivos habéis creado y para qué sirve cada uno.

    Ejemplo de redacción

    El proyecto está compuesto por varios archivos. index.php actúa como portada. formulario.php contiene el formulario de entrada de datos. guardar.php procesa la información enviada y la guarda en la base de datos. listar.php muestra los registros. conexion.php establece la conexión con MySQL. script.js valida el formulario y estilos.css da formato básico a la aplicación.


    4. Desarrollo paso a paso

    4.1 Creación de la base de datos

    Explicad:

    • el nombre de la base de datos
    • el nombre de la tabla
    • los campos creados
    • el script SQL utilizado

    Ejemplo

    Primero he creado una base de datos llamada practica_php. Después he creado una tabla llamada alumnos con un campo id autoincremental y cinco campos adicionales para almacenar nombre, apellidos, email, curso y edad.


    4.2 Creación de la portada

    Explicad:

    • qué contiene
    • por qué la habéis diseñado así
    • qué enlaces tiene

    Ejemplo

    He creado una página principal llamada index.php para que el usuario tenga un punto de entrada a la aplicación. En esta página he colocado un título, una breve descripción y enlaces al formulario y al listado.


    4.3 Creación del formulario

    Explicad:

    • qué campos tiene
    • qué tipo de datos se introducen
    • por qué habéis usado POST

    Ejemplo

    En formulario.php he añadido cinco campos: nombre, apellidos, email, curso y edad. He usado el método POST porque permite enviar los datos al servidor sin mostrarlos en la URL.


    4.4 Validación con JavaScript

    Explicad:

    • qué validaciones habéis hecho
    • qué errores queríais evitar

    Ejemplo

    He validado que los campos no estén vacíos, que el email tenga un formato correcto y que la edad sea un número válido. De este modo evito que lleguen a PHP datos claramente incorrectos.


    4.5 Conexión con la base de datos

    Explicad:

    • cómo funciona mysqli
    • qué datos necesita la conexión
    • cómo comprobáis errores

    Ejemplo

    Para conectar PHP con MySQL he usado mysqli. He indicado el servidor, el usuario, la contraseña y el nombre de la base de datos. Después he comprobado si la conexión producía algún error.


    4.6 Guardado de datos

    Explicad:

    • cómo llegan los datos a PHP
    • qué hace $_POST
    • qué consulta SQL habéis usado

    Ejemplo

    En guardar.php he recogido los datos enviados por el formulario con $_POST. Después he creado una consulta INSERT para guardar la información en la tabla alumnos.


    4.7 Listado de registros

    Explicad:

    • qué consulta habéis hecho
    • cómo se recorre el resultado
    • cómo se muestra en HTML

    Ejemplo

    En listar.php he usado una consulta SELECT * FROM alumnos para obtener todos los registros. Después he recorrido el resultado con fetch_assoc() dentro de un bucle while para mostrar cada alumno en una tabla HTML.


    5. Capturas de pantalla

    Debéis incluir capturas de:

    • base de datos creada
    • formulario en pantalla
    • error de validación
    • inserción correcta
    • listado funcionando

    Ejemplo de cómo presentarlo

    Captura 1. Creación de la base de datos
    [Insertar captura]

    Captura 2. Formulario visible
    [Insertar captura]

    Captura 3. Validación de campos vacíos
    [Insertar captura]

    Captura 4. Registro guardado correctamente
    [Insertar captura]

    Captura 5. Listado de alumnos
    [Insertar captura]


    6. Pruebas realizadas

    Aquí debéis explicar las pruebas que habéis hecho.

    Ejemplo de redacción

    He realizado varias pruebas para comprobar el funcionamiento de la aplicación.
    Primero he intentado enviar el formulario dejando campos vacíos, y la validación ha impedido el envío.
    Después he escrito un email incorrecto y también se ha bloqueado el formulario.
    Más tarde he introducido todos los datos correctamente y el registro se ha guardado en la base de datos.
    Finalmente he accedido a la página de listado y he comprobado que el alumno aparecía correctamente.


    7. Problemas encontrados y soluciones

    Esta parte es muy importante. No pongáis solo “ninguno” salvo que sea verdad de forma muy clara.

    Ejemplo 1

    Uno de los errores que encontré fue que PHP no recibía correctamente el valor del email. Revisando el formulario vi que el atributo name del campo no coincidía con la clave usada en $_POST. Después de corregirlo, el dato llegó correctamente.

    Ejemplo 2

    Al principio no se mostraban los registros en la tabla. El problema era que el nombre de la base de datos en conexion.php no coincidía con el creado en MySQL. Lo corregí y el listado empezó a funcionar.


    8. Conclusión personal

    Explicad qué habéis aprendido y qué os ha costado más.

    Ejemplo de redacción

    Con esta práctica he aprendido mejor cómo se conecta una aplicación PHP con una base de datos MySQL y cómo se relacionan el formulario, $_POST, el INSERT y el SELECT. La parte que más me costó fue comprender el flujo completo de datos desde el formulario hasta el listado, pero después de hacer varias pruebas lo entendí mejor.


    Recomendaciones finales

    Importante
    No intentéis hacer una aplicación enorme sin dominar primero lo básico.
    Es preferible una práctica sencilla, clara, funcionando bien y bien explicada, que una práctica más grande pero confusa.

    Orden recomendado de trabajo

    1. crear la base de datos
    2. hacer la portada
    3. hacer el formulario
    4. validar con JavaScript
    5. crear la conexión
    6. guardar los datos
    7. mostrar el listado
    8. hacer capturas
    9. redactar la memoria

    Mejoras opcionales para subir nota

    Si termináis la parte obligatoria, podéis añadir:

    • validación en servidor
    • clases en PHP
    • login
    • sesiones
    • consultas preparadas
    • edición de registros
    • borrado de registros
    • diseño visual mejorado

    El objetivo real de esta práctica es que comprendáis el circuito básico de una aplicación web:

    formulario → validación → envío → PHP → SQL → listado

    Ese pequeño mecanismo es la base de muchísimas aplicaciones web. Si domináis esto, ya tenéis una base muy útil para seguir creciendo.

  • 1.1 – Linux básico: rutas, carpetas y archivos

    1.1 – Linux básico: rutas, carpetas y archivos

    Una de las primeras cosas que hay que aprender en Linux es a moverse por el sistema de archivos y a trabajar con carpetas y archivos desde la terminal.

    Aunque al principio pueda parecer extraño, aprender estos comandos es fundamental porque:

    • permite entender cómo está organizado Linux,
    • ayuda a trabajar con rapidez,
    • es imprescindible para administración de sistemas,
    • y será la base para tareas más avanzadas como configurar servicios, editar archivos de configuración, automatizar tareas o revisar logs.

    En esta sesión vamos a centrarnos en:

    • comprender qué es una ruta,
    • movernos entre directorios,
    • listar contenido,
    • crear carpetas,
    • crear, copiar, mover y borrar archivos,
    • y entender buenas prácticas al trabajar en terminal.

    1. ¿Qué es una ruta?

    Una ruta es la dirección que indica dónde está un archivo o una carpeta dentro del sistema.

    Linux organiza la información como un gran árbol que empieza en una raíz llamada:

    /

    Ese símbolo / representa el punto de partida del sistema de archivos.

    Por ejemplo:

    /home/alumno/documentos

    indica que dentro de /home hay una carpeta llamada alumno, y dentro de ella una carpeta llamada documentos.


    2. Rutas absolutas y rutas relativas

    Ruta absoluta

    Una ruta absoluta empieza siempre desde la raíz /.

    Ejemplo:

    /home/alumno/descargas

    Da igual en qué carpeta te encuentres: esa ruta apunta siempre al mismo sitio.

    Ruta relativa

    Una ruta relativa parte desde la carpeta en la que estás en este momento.

    Ejemplo:

    Si estás en:

    /home/alumno

    y escribes:

    cd documentos

    Linux entiende que quieres ir a:

    /home/alumno/documentos

    3. Directorios especiales que debes conocer

    En Linux hay algunos símbolos muy usados para trabajar con rutas:

    .

    Representa el directorio actual.

    Ejemplo:

    cd .

    No cambia nada, porque te quedas donde estás.

    ..

    Representa el directorio superior, es decir, la carpeta anterior.

    Ejemplo:

    cd ..

    Sube un nivel.

    ~

    Representa el directorio personal del usuario.

    Por ejemplo, si tu usuario es alumno, ~ suele equivaler a:

    /home/alumno

    Ejemplo:

    cd ~

    Te lleva directamente a tu carpeta personal.


    4. Comando pwd

    ¿Para qué sirve?

    El comando pwd muestra la ruta completa de la carpeta en la que te encuentras.

    pwd significa:

    print working directory

    Uso

    pwd

    Ejemplo de salida

    /home/alumno

    Cuándo usarlo

    Es muy útil cuando:

    • no sabes en qué carpeta estás,
    • has navegado por varias rutas,
    • o quieres comprobar si un comando te ha llevado al lugar correcto.

    5. Comando ls

    ¿Para qué sirve?

    El comando ls muestra el contenido de una carpeta.

    Uso básico

    ls

    Muestra archivos y carpetas del directorio actual.

    Ejemplo

    ls

    Salida posible:

    documentos descargas imagenes notas.txt

    Variantes útiles

    ls -l

    Muestra la información en formato largo:

    ls -l

    Permite ver:

    • permisos,
    • propietario,
    • tamaño,
    • fecha,
    • nombre.

    ls -a

    Muestra también los archivos ocultos.

    ls -a

    En Linux, los archivos ocultos suelen empezar por punto, por ejemplo:

    .bashrc

    ls -la

    Combina ambas opciones:

    ls -la

    Muy útil para administración y revisión completa del contenido.


    6. Comando cd

    ¿Para qué sirve?

    cd permite cambiar de directorio.

    cd significa:

    change directory

    Ir a una carpeta dentro de la actual

    cd documentos

    Subir un nivel

    cd ..

    Ir al directorio personal

    cd ~

    o simplemente:

    cd

    Ir a una ruta absoluta

    cd /var/log

    Ejemplo práctico

    Si estás en:

    /home/alumno

    y ejecutas:

    cd documentos

    pasarás a:

    /home/alumno/documentos

    Si después haces:

    cd ..

    volverás a:

    /home/alumno

    7. Crear directorios con mkdir

    ¿Para qué sirve?

    Permite crear carpetas nuevas.

    mkdir significa:

    make directory

    Crear una carpeta

    mkdir pruebas

    Crear varias carpetas a la vez

    mkdir tema1 tema2 tema3

    Crear una estructura completa de carpetas

    mkdir -p curso/linux/comandos

    La opción -p permite crear todos los niveles necesarios.

    Sin -p, si alguna carpeta intermedia no existe, dará error.


    8. Crear archivos

    Hay varias formas de crear archivos en Linux.

    Opción 1: touch

    Crea un archivo vacío si no existe.

    touch notas.txt

    También puede usarse para actualizar la fecha de modificación de un archivo existente.

    Opción 2: redirección

    echo "Hola Linux" > saludo.txt

    Esto crea el archivo y escribe contenido en él.


    9. Ver contenido de archivos con cat

    ¿Para qué sirve?

    Muestra el contenido de un archivo en pantalla.

    cat saludo.txt

    Salida:

    Hola Linux

    También puede mostrar varios archivos:

    cat archivo1.txt archivo2.txt

    10. Copiar archivos y carpetas con cp

    Copiar un archivo

    cp notas.txt copia_notas.txt

    Copiar un archivo a otra carpeta

    cp notas.txt documentos/

    Copiar una carpeta completa

    Para copiar directorios se usa -r:

    cp -r proyecto proyecto_backup

    La opción -r significa recursivo.


    11. Mover y renombrar con mv

    El comando mv sirve tanto para mover como para renombrar.

    Renombrar un archivo

    mv notas.txt apuntes.txt

    Mover un archivo a otra carpeta

    mv apuntes.txt documentos/

    Mover una carpeta

    mv proyecto /home/alumno/backup/

    12. Borrar archivos y carpetas con rm y rmdir

    Borrar un archivo

    rm archivo.txt

    Borrar una carpeta vacía

    rmdir carpeta_vacia

    Borrar una carpeta con contenido

    rm -r carpeta

    Mucho cuidado con rm

    Este comando elimina contenido directamente. En terminal no hay papelera mágica que venga a salvarte del caos.

    Especial cuidado con comandos como:

    rm -r *

    o peor aún, usar rm sin revisar bien la ruta.

    Antes de borrar, conviene comprobar dónde estás con:

    pwd

    y qué hay dentro con:

    ls

    13. Comodines básicos

    Linux permite usar comodines para trabajar con varios archivos a la vez.

    *

    Representa cualquier conjunto de caracteres.

    Ejemplo:

    ls *.txt

    Muestra todos los archivos que terminen en .txt.

    ?

    Representa un solo carácter.

    Ejemplo:

    ls archivo?.txt

    Podría mostrar:

    • archivo1.txt
    • archivo2.txt

    pero no archivo10.txt.


    14. Nombres de archivos y carpetas: buenas prácticas

    Aunque Linux permite muchos nombres distintos, conviene seguir ciertas reglas:

    Recomendaciones

    • usar minúsculas,
    • evitar espacios,
    • usar guiones - o guiones bajos _,
    • usar nombres claros y descriptivos.

    Bien

    mis_apuntes.txt
    fotos_viaje
    backup-web

    Mal

    Mis Apuntes Definitivos Final FINAL.txt
    Carpeta Nueva 2

    Los espacios pueden dar problemas o hacer más incómodo el trabajo en terminal.


    15. Rutas con espacios

    Si una carpeta tiene espacios en el nombre, la terminal interpreta cada palabra como algo separado.

    Por ejemplo, esto fallará:

    cd Mis documentos

    Porque Linux intentará entrar en una carpeta llamada Mis y tomará documentos como otro argumento.

    Debe escribirse así:

    cd "Mis documentos"

    o así:

    cd Mis\ documentos

    16. Ejemplo guiado completo

    Vamos a ver un ejemplo realista paso a paso.

    Paso 1: comprobar dónde estamos

    pwd

    Paso 2: listar el contenido

    ls

    Paso 3: crear una carpeta de trabajo

    mkdir practica_linux

    Paso 4: entrar en ella

    cd practica_linux

    Paso 5: crear subcarpetas

    mkdir documentos scripts copias

    Paso 6: crear archivos vacíos

    touch documentos/notas.txt
    touch documentos/tareas.txt

    Paso 7: ver la estructura

    ls
    ls documentos

    Paso 8: copiar un archivo

    cp documentos/notas.txt copias/

    Paso 9: renombrar un archivo

    mv documentos/tareas.txt documentos/tareas_pendientes.txt

    Paso 10: crear contenido dentro de un archivo

    echo "Primera práctica de Linux" > documentos/notas.txt

    Paso 11: leer el archivo

    cat documentos/notas.txt

    17. Resumen de comandos básicos

    ComandoFunción
    pwdMuestra la ruta actual
    lsLista archivos y carpetas
    ls -lLista con detalle
    ls -aMuestra ocultos
    cd rutaCambia de directorio
    cd ..Sube un nivel
    cd ~Va al directorio personal
    mkdir nombreCrea una carpeta
    mkdir -p rutaCrea carpetas anidadas
    touch archivoCrea un archivo vacío
    cat archivoMuestra el contenido
    cp origen destinoCopia archivos o carpetas
    mv origen destinoMueve o renombra
    rm archivoBorra archivo
    rm -r carpetaBorra carpeta con contenido
    rmdir carpetaBorra carpeta vacía

    18. Errores habituales

    1. Confundir archivo y carpeta

    Intentar hacer:

    cd archivo.txt

    Pero cd solo sirve para entrar en directorios, no en archivos.

    2. No saber en qué carpeta están

    Empiezar a ejecutar comandos sin comprobar la ubicación actual.

    Solución:

    pwd

    3. Borrar sin revisar

    Usar rm demasiado rápido y luego llega el drama informático.

    Antes de borrar:

    pwd
    ls

    4. Escribir mal una ruta

    Por ejemplo:

    cd /home/alumno/documento

    cuando la carpeta real es documentos.

    Linux distingue exactamente los nombres.

    5. Problemas con espacios

    Escribir:

    cd Mis documentos

    cuando deberían usar comillas o barra invertida.


    19. Actividad práctica

    Practicar navegación por rutas, creación de carpetas, creación de archivos, copia, movimiento y borrado.

    Enunciado

    Realiza en terminal las siguientes tareas:

    1. Comprueba en qué directorio te encuentras.
    2. Crea una carpeta llamada practica_rutas.
    3. Entra en ella.
    4. Crea dentro tres carpetas:
      • documentos
      • imagenes
      • backup
    5. Crea dentro de documentos los archivos:
      • notas.txt
      • ejercicios.txt
    6. Escribe una línea de texto dentro de notas.txt.
    7. Muestra por pantalla el contenido de notas.txt.
    8. Copia notas.txt dentro de backup.
    9. Renombra ejercicios.txt a ejercicios_linux.txt.
    10. Vuelve al directorio anterior.
    11. Lista el contenido con detalle.
    12. Elimina la carpeta imagenes.
    13. Comprueba el resultado final.

    Posible solución de la actividad

    pwd
    mkdir practica_rutas
    cd practica_rutas
    mkdir documentos imagenes backup
    touch documentos/notas.txt documentos/ejercicios.txt
    echo "Estoy aprendiendo comandos en Linux" > documentos/notas.txt
    cat documentos/notas.txt
    cp documentos/notas.txt backup/
    mv documentos/ejercicios.txt documentos/ejercicios_linux.txt
    cd ..
    ls -l
    rmdir practica_rutas/imagenes
    ls practica_rutas

    Ejercicios adicionales

    Ejercicio 1

    Crea la siguiente estructura:

    linux_practica/
    ├── tema1/
    ├── tema2/
    └── tema3/

    Ejercicio 2

    Dentro de tema1, crea tres archivos:

    • apuntes.txt
    • comandos.txt
    • resumen.txt

    Ejercicio 3

    Copia comandos.txt a tema2.

    Ejercicio 4

    Renombra resumen.txt a resumen_final.txt.

    Ejercicio 5

    Elimina tema3.




    Chuleta

    pwd                     # ver en qué carpeta estoy
    ls # listar contenido
    ls -la # listar con detalle y ocultos
    cd nombre_carpeta # entrar en carpeta
    cd .. # subir un nivel
    cd ~ # ir a mi carpeta personal
    mkdir carpeta # crear carpeta
    mkdir -p a/b/c # crear varias carpetas anidadas
    touch archivo.txt # crear archivo vacío
    cat archivo.txt # ver contenido
    cp origen destino # copiar
    mv origen destino # mover o renombrar
    rm archivo.txt # borrar archivo
    rmdir carpeta # borrar carpeta vacía
    rm -r carpeta # borrar carpeta con contenido
  • 1.2 – Linux básico: trabajo con archivos

    1.2 – Linux básico: trabajo con archivos

    En la sesión anterior comenzamos a trabajar con rutas, carpetas y navegación por el sistema de archivos en Linux. Aprendimos a movernos entre directorios, listar contenido y crear carpetas.

    En esta segunda parte vamos a centrarnos en una tarea fundamental: trabajar con archivos.

    En Linux, los archivos son una parte esencial del sistema. En ellos se guarda información, configuraciones, scripts, documentos, registros del sistema y mucho más. Aprender a manejarlos desde la terminal es una habilidad básica que será necesaria en prácticamente cualquier tarea de administración o uso técnico del sistema.

    A lo largo de esta práctica aprenderemos a:

    • crear archivos,
    • visualizar su contenido,
    • editarlos desde terminal,
    • copiarlos,
    • moverlos o renombrarlos,
    • y eliminarlos correctamente.

    También veremos buenas prácticas, errores comunes y una serie de ejercicios para afianzar los conceptos.


    1. ¿Qué es un archivo en Linux?

    Un archivo es una unidad de información almacenada en el sistema.

    Puede tratarse de:

    • un documento de texto,
    • una imagen,
    • un script,
    • un archivo de configuración,
    • un registro del sistema,
    • o cualquier otro tipo de contenido.

    En Linux, muchos archivos importantes son simplemente archivos de texto plano, lo que permite leerlos o editarlos desde terminal.

    Por ejemplo:

    • un archivo de configuración puede contener opciones del sistema,
    • un script puede contener comandos,
    • un log puede guardar mensajes sobre lo que ha ocurrido en el sistema.

    2. Crear archivos con touch

    ¿Para qué sirve?

    El comando touch permite crear archivos vacíos.

    Si el archivo no existe, se crea.
    Si ya existe, actualiza su fecha de modificación.

    Sintaxis

    touch nombre_archivo

    Ejemplo

    touch notas.txt

    Esto crea un archivo vacío llamado notas.txt.

    Crear varios archivos a la vez

    touch archivo1.txt archivo2.txt archivo3.txt

    Comprobar que se han creado

    ls

    o mejor aún:

    ls -l

    3. Ver el contenido de un archivo con cat

    ¿Para qué sirve?

    El comando cat muestra el contenido de un archivo por pantalla.

    Sintaxis

    cat nombre_archivo

    Ejemplo

    cat notas.txt

    Si el archivo está vacío, no mostrará nada.

    Añadiendo contenido antes

    Si escribimos:

    echo "Hola, esto es una prueba" > notas.txt

    y luego hacemos:

    cat notas.txt

    veremos:

    Hola, esto es una prueba

    Mostrar varios archivos a la vez

    cat archivo1.txt archivo2.txt

    4. Crear contenido con echo y redirecciones

    Comando echo

    echo permite mostrar texto en terminal o escribirlo en un archivo.

    Mostrar texto en pantalla

    echo "Hola Linux"

    Guardar texto en un archivo con >

    echo "Primera línea" > notas.txt

    Esto crea el archivo si no existe y escribe el contenido.

    Importante: si el archivo ya tenía contenido, lo sustituye por completo.

    Añadir texto sin borrar lo anterior con >>

    echo "Segunda línea" >> notas.txt

    Esto añade contenido al final del archivo.

    Ver el resultado

    cat notas.txt

    Salida posible:

    Primera línea
    Segunda línea

    5. Leer archivos largos con less y more

    Cuando un archivo tiene muchas líneas, cat puede no ser la mejor opción porque muestra todo de golpe.

    less

    Permite visualizar el contenido página a página.

    less archivo.txt

    Con less puedes:

    • desplazarte con las flechas,
    • avanzar y retroceder,
    • buscar texto,
    • salir pulsando q.

    Es muy útil para leer archivos de configuración o logs.

    more

    También muestra el contenido por partes.

    more archivo.txt

    Es más simple que less, pero hoy en día suele usarse más less.


    6. Ver solo el principio o el final de un archivo

    Muestra las primeras líneas de un archivo.

    head archivo.txt

    Por defecto muestra 10 líneas.

    Mostrar un número concreto

    head -n 5 archivo.txt

    tail

    Muestra las últimas líneas.

    tail archivo.txt

    Mostrar un número concreto

    tail -n 5 archivo.txt

    Esto será muy útil más adelante para revisar logs del sistema.


    7. Editar archivos con nano

    ¿Qué es nano?

    nano es un editor de texto en terminal sencillo y muy adecuado para empezar.

    Abrir o crear un archivo

    nano notas.txt

    Si el archivo existe, lo abre.
    Si no existe, lo crea.

    Cómo usarlo

    Dentro de nano puedes escribir directamente.

    Los atajos principales aparecen en la parte inferior de la pantalla.

    Atajos importantes

    • Ctrl + O → guardar
    • Ctrl + X → salir
    • Ctrl + K → cortar línea
    • Ctrl + U → pegar línea
    • Ctrl + W → buscar texto

    Recomendación para principiantes

    Para alumnos que están empezando, nano es ideal porque:

    • es simple,
    • se entiende fácilmente,
    • no requiere aprender comandos especiales complicados,
    • y permite editar archivos de forma rápida.

    8. Copiar archivos con cp

    ¿Para qué sirve?

    El comando cp se utiliza para copiar archivos y también directorios.

    Copiar un archivo

    cp origen destino

    Ejemplo

    cp notas.txt copia_notas.txt

    Esto crea una copia del archivo con otro nombre.

    Copiar un archivo a otra carpeta

    cp notas.txt documentos/

    Copiar varios archivos a una carpeta

    cp archivo1.txt archivo2.txt copias/

    Copiar carpetas completas

    Para copiar directorios hace falta usar la opción -r.

    cp -r proyecto proyecto_backup

    La r significa recursivo.


    9. Mover y renombrar archivos con mv

    ¿Para qué sirve?

    El comando mv sirve para:

    • mover archivos,
    • mover carpetas,
    • renombrar archivos,
    • renombrar carpetas.

    Renombrar un archivo

    mv notas.txt apuntes.txt

    Mover un archivo a otra carpeta

    mv apuntes.txt documentos/

    Renombrar una carpeta

    mv documentos apuntes_linux

    Mover una carpeta completa

    mv apuntes_linux /home/alumno/trabajos/

    10. Borrar archivos con rm

    ¿Para qué sirve?

    El comando rm elimina archivos.

    Borrar un archivo

    rm notas.txt

    Borrar varios archivos

    rm archivo1.txt archivo2.txt

    Borrar con confirmación

    rm -i notas.txt

    La opción -i pide confirmación antes de eliminar.

    Esto puede ser muy útil para evitar errores.


    11. Borrar carpetas con rmdir y rm -r

    rmdir

    Solo elimina carpetas vacías.

    rmdir carpeta_vacia

    rm -r

    Elimina carpetas y todo su contenido.

    rm -r carpeta

    Precaución importante

    rm -r puede borrar muchos archivos de golpe. Hay que usarlo con muchísimo cuidado.

    Antes de ejecutar un borrado conviene comprobar:

    pwd
    ls

    No conviene lanzar comandos de borrado a ciegas como quien pulsa botones en una nave espacial averiada.


    12. Diferencia entre copiar, mover, renombrar y borrar

    Conviene dejar clara esta diferencia:

    • Copiar (cp): crea una copia, el original sigue existiendo.
    • Mover (mv): cambia el archivo de ubicación.
    • Renombrar (mv): cambia el nombre del archivo o carpeta.
    • Borrar (rm): elimina el archivo.

    Ejemplo:

    Si tienes:

    notas.txt

    Copiar

    cp notas.txt copia.txt

    Resultado:

    notas.txt
    copia.txt

    Renombrar

    mv notas.txt apuntes.txt

    Resultado:

    apuntes.txt

    Borrar

    rm apuntes.txt

    Resultado: el archivo desaparece.


    13. Ejemplo guiado paso a paso

    Vamos a realizar una práctica completa.

    Paso 1. Crear una carpeta de trabajo

    mkdir practica_archivos
    cd practica_archivos

    Paso 2. Crear dos archivos vacíos

    touch notas.txt tareas.txt

    Paso 3. Comprobar el contenido del directorio

    ls -l

    Paso 4. Escribir texto en notas.txt

    echo "Estoy aprendiendo Linux" > notas.txt

    Paso 5. Añadir otra línea

    echo "Trabajo con archivos desde terminal" >> notas.txt

    Paso 6. Ver el contenido

    cat notas.txt

    Paso 7. Editar con nano

    nano tareas.txt

    Dentro del archivo escribe por ejemplo:

    - Practicar comandos
    - Crear archivos
    - Copiar archivos

    Guarda y sal.

    Paso 8. Copiar notas.txt

    cp notas.txt copia_notas.txt

    Paso 9. Crear una carpeta nueva

    mkdir documentos

    Paso 10. Mover un archivo a la carpeta

    mv tareas.txt documentos/

    Paso 11. Renombrar el archivo copiado

    mv copia_notas.txt respaldo_notas.txt

    Paso 12. Ver el resultado final

    ls -l
    ls documentos

    14. Práctica guiada

    Objetivo

    Aprender a crear, visualizar, editar, copiar, mover, renombrar y borrar archivos desde terminal.

    Enunciado

    Realiza las siguientes acciones:

    1. Crea una carpeta llamada ejercicio_archivos.
    2. Entra en ella.
    3. Crea tres archivos vacíos:
      • dia1.txt
      • dia2.txt
      • dia3.txt
    4. Escribe una línea de texto en dia1.txt.
    5. Añade una segunda línea.
    6. Muestra el contenido de dia1.txt.
    7. Abre dia2.txt con nano y escribe varias líneas.
    8. Crea una carpeta llamada copias.
    9. Copia dia1.txt dentro de copias.
    10. Renombra dia3.txt a resumen.txt.
    11. Mueve dia2.txt a la carpeta copias.
    12. Elimina resumen.txt.
    13. Comprueba el contenido final del directorio principal y de la carpeta copias.

    Posible solución de la práctica

    mkdir ejercicio_archivos
    cd ejercicio_archivos
    touch dia1.txt dia2.txt dia3.txt
    echo "Primera línea del archivo" > dia1.txt
    echo "Segunda línea del archivo" >> dia1.txt
    cat dia1.txt
    nano dia2.txt
    mkdir copias
    cp dia1.txt copias/
    mv dia3.txt resumen.txt
    mv dia2.txt copias/
    rm resumen.txt
    ls -l
    ls -l copias

    Errores habituales

    1. Pensar que touch escribe contenido

    No. touch crea el archivo, pero lo deja vacío.

    2. Usar > y borrar sin querer el contenido anterior

    Ejemplo:

    echo "Nueva línea" > notas.txt

    Esto sustituye todo lo anterior.

    Si se quiere añadir, hay que usar:

    echo "Nueva línea" >> notas.txt

    3. Intentar borrar una carpeta con rm sin opciones

    rm carpeta

    Esto fallará si carpeta es un directorio.

    Para carpetas vacías:

    rmdir carpeta

    Para carpetas con contenido:

    rm -r carpeta

    4. Confundir mover con copiar

    cp copia.
    mv mueve o renombra.

    5. Borrar demasiado rápido

    Conviene revisar siempre el directorio actual antes de borrar.

    pwd
    ls

    Buenas prácticas

    Usa nombres claros

    Mejor:

    notas_linux.txt
    configuracion_red.txt

    Peor:

    archivo1.txt
    cosa.txt
    finalfinal2.txt

    Revisa el contenido antes de borrar

    Usa ls, cat o less para asegurarte.

    Usa rm -i si tienes dudas

    rm -i archivo.txt

    Organiza el trabajo en carpetas

    No dejes todos los archivos mezclados en el mismo sitio.


    Resumen de comandos

    ComandoFunción
    touch archivo.txtCrear archivo vacío
    cat archivo.txtMostrar contenido
    echo "texto" > archivo.txtEscribir sustituyendo contenido
    echo "texto" >> archivo.txtAñadir contenido al final
    less archivo.txtLeer archivo página a página
    more archivo.txtLeer archivo por partes
    head archivo.txtVer primeras líneas
    tail archivo.txtVer últimas líneas
    nano archivo.txtEditar archivo
    cp origen destinoCopiar archivo o carpeta
    mv origen destinoMover o renombrar
    rm archivo.txtBorrar archivo
    rm -i archivo.txtBorrar con confirmación
    rmdir carpetaBorrar carpeta vacía
    rm -r carpetaBorrar carpeta con contenido

    Ejercicio

    Crea la siguiente estructura:

    trabajo_linux/
    ├── notas/
    │ ├── teoria.txt
    │ └── practica.txt
    └── backup/

    Después:

    • escribe contenido en teoria.txt,
    • copia teoria.txt a backup,
    • renombra practica.txt a practica_1.txt,
    • muestra el contenido de teoria.txt,
    • y elimina finalmente la carpeta backup con su contenido.

    mandos, más natural será trabajar en terminal.


    Chuleta rápida

    touch archivo.txt              # crear archivo vacío
    cat archivo.txt # ver contenido
    echo "texto" > archivo.txt # escribir sustituyendo contenido
    echo "texto" >> archivo.txt # añadir contenido
    nano archivo.txt # editar archivo
    less archivo.txt # leer archivo largo
    head archivo.txt # ver primeras líneas
    tail archivo.txt # ver últimas líneas
    cp origen destino # copiar
    mv origen destino # mover o renombrar
    rm archivo.txt # borrar archivo
    rm -i archivo.txt # borrar con confirmación
    rmdir carpeta # borrar carpeta vacía
    rm -r carpeta # borrar carpeta con contenido
  • 1.3 – Estructura de archivos en Linux

    1.3 – Estructura de archivos en Linux

    Cuando empezamos a trabajar con Linux, una de las primeras cosas que debemos aprender es cómo está organizado su sistema de archivos.

    En Windows, estamos acostumbrados a trabajar con unidades como C:, D: o carpetas como “Mis documentos”. En Linux, la lógica es diferente: todo parte de una única raíz y desde ahí se organiza el resto del sistema.

    Esto hace que Linux tenga una estructura muy ordenada y bastante coherente entre distintas distribuciones.

    Aunque esta guía está basada en Ubuntu, gran parte de lo que vamos a ver también se aplica a otras distribuciones como:

    • Debian
    • Linux Mint
    • Fedora
    • Rocky Linux
    • AlmaLinux
    • Arch Linux
    • openSUSE

    Idea clave: en Linux todo cuelga de /

    En Linux, la carpeta principal de todo el sistema es:

    /

    A esto se le llama raíz del sistema.

    Desde esa carpeta nacen todas las demás.
    No existen letras de unidad como en Windows. Aunque haya varios discos o particiones, Linux los integra dentro del mismo árbol de directorios.

    Ejemplo visual

    /
    ├── bin
    ├── boot
    ├── dev
    ├── etc
    ├── home
    ├── media
    ├── mnt
    ├── opt
    ├── proc
    ├── root
    ├── run
    ├── srv
    ├── sys
    ├── tmp
    ├── usr
    └── var

    Qué debes recordar
    En Linux, todo empieza en /.
    Cualquier archivo o carpeta del sistema está dentro de esa jerarquía.


    Ubuntu y el resto de distribuciones

    Ubuntu comparte gran parte de su estructura con otras distribuciones Linux. Esto ocurre porque muchas siguen una organización tradicional común heredada del mundo Unix.

    Esto significa que:

    • si aprendes a moverte por Ubuntu, gran parte de ese conocimiento te servirá en otras distribuciones
    • las carpetas principales suelen tener la misma función
    • lo que más cambia entre distribuciones suele ser:
      • el gestor de paquetes
      • algunas herramientas
      • ciertos archivos o configuraciones concretas

    Ejemplo

    • En Ubuntu y Debian se usa mucho apt
    • En Fedora se usa dnf
    • En Arch Linux se usa pacman

    Pero carpetas como /home, /etc, /var o /usr seguirán teniendo una función muy similar.

    Importante
    La estructura general de directorios en Linux es bastante común entre distribuciones.
    Lo que cambia más es el ecosistema de herramientas, no la lógica principal del sistema de archivos.


    Directorios principales de Linux

    A continuación vamos a ver las carpetas más importantes que debe conocer un alumno cuando empieza con Linux.


    / — La raíz del sistema

    Es el nivel más alto del sistema de archivos.

    No es la carpeta del administrador, ni la carpeta del usuario.
    Es simplemente el punto de partida de toda la estructura.

    Ejemplos de rutas absolutas

    /etc/hosts
    /home/alumno
    /var/log

    Recuerda
    Cuando una ruta empieza por /, estamos hablando de una ruta absoluta.


    /home — Carpetas personales de los usuarios

    Aquí se guardan las carpetas personales de los usuarios normales del sistema.

    Ejemplos

    /home/antonio
    /home/alumno1
    /home/alumno2

    Dentro de cada carpeta de usuario suelen estar:

    • documentos
    • descargas
    • escritorio
    • configuraciones personales
    • archivos ocultos de programas

    Ejemplo práctico

    cd /home
    ls
    cd /home/alumno
    pwd

    Muy importante
    La carpeta personal del usuario suele ser su zona principal de trabajo.


    /root — Carpeta personal del administrador

    Esta carpeta pertenece al usuario root, es decir, al superusuario del sistema.

    Ojo con esto

    Muchos alumnos confunden:

    • / → raíz del sistema
    • /root → carpeta personal del administrador

    No son lo mismo.

    Error muy común
    /root no es “la raíz”.
    La raíz real del sistema es /.


    /etc — Archivos de configuración del sistema

    Aquí se encuentran muchos archivos de configuración global del sistema y de los servicios instalados.

    Ejemplos típicos

    /etc/hostname
    /etc/hosts
    /etc/passwd
    /etc/ssh/sshd_config
    /etc/apache2/

    Si instalamos servicios como SSH, Apache, MySQL o Nginx, gran parte de su configuración suele estar aquí.

    Ejemplo práctico

    cd /etc
    ls

    Qué debes aprender
    Si una configuración afecta al sistema o a todos los usuarios, es muy probable que esté en /etc.


    /usr — Programas y recursos del sistema

    Aunque por el nombre pueda parecer que significa “carpeta de usuario”, en realidad no es la carpeta personal del usuario.

    /usr contiene una gran parte de los programas, bibliotecas y recursos compartidos del sistema.

    Subdirectorios habituales

    • /usr/bin
    • /usr/sbin
    • /usr/lib
    • /usr/share

    Ejemplos

    ls /usr/bin
    ls /usr/share

    Aquí se almacenan, por ejemplo:

    • ejecutables
    • bibliotecas
    • documentación
    • iconos
    • archivos compartidos por programas

    No confundas
    /usr no sustituye a /home.
    /home es para usuarios.
    /usr es para software y recursos del sistema.


    /var — Datos variables del sistema

    La carpeta /var contiene archivos que cambian con frecuencia.

    Aquí suelen guardarse:

    • logs
    • cachés
    • colas
    • datos temporales persistentes
    • información que cambia durante el funcionamiento del sistema

    Subdirectorios frecuentes

    • /var/log
    • /var/cache
    • /var/spool
    • /var/tmp

    Ejemplo práctico

    cd /var/log
    ls

    Muy útil en administración
    Cuando algo falla, muchas veces hay que mirar en /var/log.
    Es uno de los primeros sitios donde buscar pistas.


    /tmp — Archivos temporales

    Esta carpeta se utiliza para guardar archivos temporales.

    Se usa para:

    • datos provisionales
    • archivos de trabajo
    • información temporal de programas o usuarios

    Ejemplo

    cd /tmp
    touch prueba.txt
    ls -l

    Aviso
    No conviene guardar trabajos importantes en /tmp, porque su contenido puede borrarse automáticamente.


    /boot — Archivos de arranque

    Esta carpeta contiene archivos necesarios para iniciar el sistema.

    Aquí pueden encontrarse:

    • el kernel
    • imágenes de arranque
    • archivos del gestor de arranque

    Zona delicada
    No se debe modificar esta carpeta sin saber exactamente lo que se está haciendo.


    /dev — Dispositivos

    En Linux, muchos dispositivos se representan como archivos.

    Ejemplos típicos

    /dev/sda
    /dev/sdb
    /dev/null
    /dev/tty

    Esto permite que Linux trate distintos recursos del sistema siguiendo una misma filosofía: muchas cosas se manejan como archivos.

    Idea importante
    En Linux, los dispositivos también forman parte del sistema de archivos.


    /media y /mnt — Montaje de dispositivos

    Estas rutas están relacionadas con el montaje de discos, particiones, pendrives y otros medios de almacenamiento.

    Diferencia general

    • /media suele usarse para dispositivos montados automáticamente
    • /mnt suele usarse para montajes manuales o temporales

    Ejemplo posible en Ubuntu

    /media/alumno/USB_DATOS

    Recuerda
    Cuando conectas un USB en Ubuntu, lo normal es que se monte dentro de /media.


    /proc — Información sobre procesos y sistema

    /proc no es una carpeta normal guardada en disco.
    Es un sistema de archivos virtual que muestra información del kernel y de los procesos en ejecución.

    Ejemplos

    /proc/cpuinfo
    /proc/meminfo
    /proc/1

    Comandos útiles

    cat /proc/cpuinfo
    cat /proc/meminfo

    Curiosidad interesante
    Linux permite consultar información del sistema como si fueran archivos normales.


    /sys — Información del hardware y del kernel

    Es otra ruta especial del sistema.
    También es virtual y sirve para mostrar información sobre dispositivos, hardware y estructura interna del sistema.

    No suele ser la primera carpeta que necesita dominar un principiante, pero conviene saber que existe.


    /run — Datos temporales del sistema en ejecución

    Aquí se almacenan datos generados desde el arranque del sistema.

    Por ejemplo:

    • identificadores de procesos
    • sockets
    • estados de servicios
    • información temporal de ejecución

    Es una carpeta importante en sistemas Linux modernos.


    /opt — Software adicional

    Se utiliza a menudo para instalar aplicaciones de terceros o software adicional que no forma parte del conjunto básico del sistema.

    Ejemplos

    /opt/google
    /opt/miaplicacion

    No todos los programas se instalan aquí, pero es una ruta bastante habitual en algunos casos.


    /srv — Datos de servicios

    Esta carpeta está pensada para guardar datos servidos por servicios del sistema.

    Por ejemplo:

    • contenido de un servidor web
    • archivos compartidos por un servicio FTP
    • recursos ofrecidos por un servidor

    No siempre se utiliza mucho en entornos domésticos, pero conviene conocerla.


    /bin, /sbin, /lib y /lib64

    Estas carpetas están relacionadas con:

    • comandos esenciales
    • herramientas de administración
    • bibliotecas necesarias para ejecutar programas

    En muchos sistemas modernos algunas de estas rutas están integradas o enlazadas con otras dentro de /usr, pero siguen apareciendo y es importante conocerlas.

    Idea sencilla para el alumno

    • /bin y /sbin → comandos y herramientas
    • /lib y /lib64 → bibliotecas del sistema

    Nota
    Aunque hoy existan cambios internos en muchos sistemas modernos, estas rutas siguen formando parte del mapa clásico de Linux.




    Comparación rápida con Windows

    En Windows

    • hay unidades como C: o D:
    • el usuario suele estar en C:\Users\Nombre
    • parte de la configuración está repartida entre carpetas y registro

    En Linux

    • todo cuelga de /
    • el usuario suele estar en /home/usuario
    • la configuración global suele estar en /etc
    • los logs suelen estar en /var/log

    Equivalencias mentales aproximadas

    • C:\Users\Antonio/home/antonio
    • C:\Program Files → parecido a partes de /usr o /opt
    • archivos temporales → /tmp
    • configuración del sistema → /etc

    Ojo
    No son equivalencias exactas, pero sirven para orientarse al principio.


    Diferencias entre distribuciones

    Aunque la estructura general es parecida, hay diferencias entre distribuciones.

    Ubuntu, Debian y Linux Mint

    • muy similares
    • comparten muchas rutas y herramientas
    • usan paquetes .deb y apt

    Fedora, Rocky y AlmaLinux

    • estructura también parecida
    • cambian herramientas y paquetes
    • usan dnf

    Arch Linux

    • estructura general reconocible
    • más configuración manual
    • enfoque más minimalista

    openSUSE

    • estructura general también similar
    • cambia sobre todo en herramientas de administración

    Conclusión importante
    Si aprendes bien carpetas como /home, /etc, /var, /usr y /tmp, ese conocimiento te servirá en casi cualquier distribución Linux.


    Qué carpetas debes conocer primero

    Si estás empezando, estas son las más importantes:

    • /
    • /home
    • /root
    • /etc
    • /usr
    • /var
    • /tmp
    • /dev
    • /boot
    • /media
    • /mnt

    Consejo para estudiar
    No hace falta memorizar todo el sistema de golpe.
    Lo importante es entender la función general de cada carpeta.


    Ejercicios

    1. Mostrar la carpeta actual

    pwd

    2. Entrar en la carpeta personal

    cd /home
    ls
    cd $USER
    pwd

    3. Mostrar archivos ocultos

    ls -la

    4. Explorar la configuración del sistema

    cd /etc
    ls

    5. Ver logs del sistema

    cd /var/log
    ls

    6. Consultar información del sistema

    cat /proc/cpuinfo
    cat /proc/meminfo

    7. Crear un archivo temporal

    cd /tmp
    touch practica_linux.txt
    ls -l

    8. Probar el acceso a /root

    cd /root

    Aquí el alumno verá que normalmente no tiene permisos si no es administrador.


    Errores comunes

    Confundir / con /root

    Es uno de los errores más frecuentes.

    Pensar que /usr es la carpeta del usuario

    No lo es. La carpeta del usuario normal es /home/usuario.

    Pensar que todas las carpetas son “normales”

    No. Algunas como /proc o /sys son virtuales.

    Guardar archivos importantes en /tmp

    No es buena idea.

    Creer que Ubuntu y el resto de distribuciones son totalmente diferentes

    No. Cambian cosas, pero comparten mucha base.


    Resumen

    La estructura de archivos en Linux se organiza como una jerarquía que parte de /, la raíz del sistema.
    Ubuntu sigue esta lógica igual que muchas otras distribuciones, por lo que aprender esta estructura ayuda a trabajar con soltura en casi cualquier sistema Linux.

    Las carpetas más importantes para empezar son:



    /
    ├── /home -> archivos de usuarios
    ├── /root -> carpeta del administrador
    ├── /etc -> configuración del sistema
    ├── /usr -> programas y recursos
    ├── /var -> logs y datos variables
    ├── /tmp -> archivos temporales
    ├── /boot -> arranque
    ├── /dev -> dispositivos
    ├── /proc -> información de procesos y kernel
    ├── /sys -> información del hardware
    ├── /media -> medios extraíbles
    └── /mnt -> montajes manuales

    Idea final
    Cuando entiendes la función de las carpetas, Linux deja de parecer un laberinto y empieza a parecer un sistema con sentido.

  • 1.4 – Editores de texto en Ubuntu: nano y vi

    1.4 – Editores de texto en Ubuntu: nano y vi

    Cuando trabajamos en Linux, no siempre tendremos una interfaz gráfica disponible. En muchos casos estaremos dentro de una terminal, conectados por SSH a un servidor o trabajando en una máquina sin entorno visual. En esas situaciones, saber usar un editor de texto en consola deja de ser “algo opcional” y pasa a ser una habilidad básica.

    En Ubuntu existen varios editores de texto para terminal, pero dos de los más conocidos y clásicos son:

    • nano
    • vi (o su versión mejorada, vim, en muchos sistemas)

    Aunque ambos sirven para editar archivos de texto desde la terminal, su forma de uso es muy diferente.
    Nano está pensado para ser sencillo e intuitivo.
    Vi es más potente y rápido para usuarios con experiencia, pero al principio puede parecer un pequeño artefacto caótico sacado de una nave alienígena.

    En esta guía vamos a ver qué son, para qué sirven, cómo abrir archivos, editar, guardar, salir y en qué situaciones conviene usar uno u otro.


    1. ¿Qué es un editor de texto en terminal?

    Un editor de texto en terminal es un programa que permite:

    • crear archivos de texto,
    • modificar su contenido,
    • guardar cambios,
    • editar archivos de configuración del sistema,
    • escribir scripts,
    • cambiar pequeños fragmentos de código o documentación.

    En Linux, los editores en terminal son especialmente útiles para:

    • modificar archivos de configuración en /etc,
    • editar scripts .sh,
    • crear notas rápidas,
    • trabajar en servidores remotos,
    • solucionar errores cuando no hay entorno gráfico.

    Por ejemplo, si queremos cambiar la configuración de red, revisar un archivo de Apache o editar un script de mantenimiento, es muy habitual usar un editor en consola.


    2. Editor nano

    2.1. ¿Qué es nano?

    Nano es un editor de texto en terminal sencillo, directo y fácil de aprender.
    Suele ser la mejor opción para principiantes porque muestra en pantalla los atajos principales y su funcionamiento es bastante intuitivo.

    Es muy usado para:

    • editar archivos rápidos,
    • modificar configuraciones simples,
    • crear scripts básicos,
    • trabajar en prácticas de clase sin complicarse demasiado.

    2.2. Abrir o crear un archivo con nano

    Para abrir un archivo existente o crear uno nuevo:

    nano archivo.txt

    Ejemplo:

    nano notas.txt

    Si notas.txt no existe, nano lo creará cuando lo guardemos.

    También podemos abrir archivos con ruta completa:

    nano /home/usuario/documentos/prueba.txt

    O editar archivos del sistema con permisos de administrador:

    sudo nano /etc/hosts

    2.3. Escribir y editar en nano

    Una vez dentro de nano, simplemente escribimos como si fuera un editor normal.
    No hace falta cambiar de modo ni activar nada especial.

    Podemos:

    • escribir texto directamente,
    • borrar con retroceso,
    • movernos con las flechas,
    • cortar y pegar texto con combinaciones de teclas.

    Esto lo hace muy cómodo para empezar.


    2.4. Atajos básicos de nano

    En la parte inferior de la pantalla suelen aparecer los atajos más importantes.
    El símbolo ^ significa Ctrl.

    Por ejemplo:

    • ^O significa Ctrl + O
    • ^X significa Ctrl + X

    Comandos más usados en nano

    AcciónAtajo
    Guardar archivoCtrl + O
    SalirCtrl + X
    Buscar textoCtrl + W
    Cortar líneaCtrl + K
    Pegar líneaCtrl + U
    Mostrar ayudaCtrl + G

    2.5. Guardar un archivo en nano

    Para guardar:

    Ctrl + O

    Nano pedirá confirmación del nombre del archivo.
    Pulsamos Enter para aceptar.


    2.6. Salir de nano

    Para salir:

    Ctrl + X

    Si hay cambios sin guardar, nano preguntará si queremos guardarlos.

    Opciones habituales:

    • Y → sí, guardar
    • N → no guardar

    2.7. Buscar texto en nano

    Para buscar una palabra o fragmento:

    Ctrl + W

    Escribimos el texto a buscar y pulsamos Enter.

    Esto es útil cuando editamos archivos largos de configuración.


    2.8. Ejemplo práctico con nano

    Vamos a crear un pequeño archivo de prueba:

    nano ejemplo_nano.txt

    Dentro escribimos:

    Hola, este es un archivo creado con nano.
    Estoy aprendiendo a editar desde la terminal.

    Después:

    1. Pulsamos Ctrl + O
    2. Pulsamos Enter
    3. Pulsamos Ctrl + X

    Para comprobar el contenido:

    cat ejemplo_nano.txt

    3. Editor vi

    3.1. ¿Qué es vi?

    Vi es un editor de texto clásico de Unix y Linux.
    Es muy potente, muy rápido y muy utilizado en administración de sistemas.
    El problema, para quien empieza, es que no funciona como nano ni como un editor tradicional.

    En vi existen distintos modos de trabajo. Y aquí está la trampa elegante del asunto: si no entiendes los modos, parece que el editor está roto; en realidad no está roto, solo está siendo vi.


    3.2. ¿Por qué vi puede parecer difícil?

    Porque en vi no se escribe directamente al abrir el archivo.
    Primero hay que entender que tiene varios modos.

    Los dos más importantes son:

    • modo normal: sirve para moverse, borrar, copiar, pegar, ejecutar órdenes
    • modo inserción: sirve para escribir texto

    Cuando abrimos vi, normalmente entramos en modo normal, no en modo escritura.


    3.3. Abrir o crear un archivo con vi

    vi archivo.txt

    Ejemplo:

    vi notas_vi.txt

    También podemos abrir archivos del sistema:

    sudo vi /etc/hosts

    3.4. Modos básicos de vi

    Modo normal

    Es el modo inicial.
    Aquí no escribimos texto directamente.
    Sirve para movernos por el archivo y lanzar comandos.

    Modo inserción

    Permite escribir texto.

    Para entrar en modo inserción se suele usar:

    i

    Una vez pulsamos i, ya podemos escribir.

    Para salir del modo inserción y volver al modo normal:

    Esc

    Esta tecla es importantísima. Muchísimo. Casi filosófica.


    3.5. Escribir en vi

    Pasos básicos:

    1. Abrimos el archivo: vi prueba.txt
    2. Pulsamos: i
    3. Escribimos el contenido.
    4. Pulsamos: Esc
    5. Guardamos y salimos con: :wq
    6. Pulsamos Enter

    3.6. Comandos básicos de vi

    Estos comandos se escriben en modo normal.

    AcciónComando
    Entrar en modo insercióni
    Volver a modo normalEsc
    Guardar:w
    Salir:q
    Guardar y salir:wq
    Salir sin guardar:q!
    Borrar una líneadd
    Copiar una líneayy
    Pegarp
    Buscar texto/texto

    3.7. Guardar en vi

    Para guardar el archivo:

    :w

    Y pulsamos Enter.


    3.8. Salir de vi

    Para salir si no hay cambios pendientes:

    :q

    Si queremos salir sin guardar cambios:

    :q!

    Esto es útil cuando hemos tocado algo por error y no queremos salvarlo.


    3.9. Guardar y salir en vi

    La combinación más habitual:

    :wq

    Después pulsamos Enter.


    3.10. Buscar texto en vi

    En modo normal:

    /texto

    Ejemplo:

    /ubuntu

    Esto buscará la palabra ubuntu dentro del archivo.


    3.11. Ejemplo práctico con vi

    Abrimos el archivo:

    vi ejemplo_vi.txt

    Pasos:

    1. Pulsar i
    2. Escribir:
    Este archivo ha sido creado con vi.
    Estoy aprendiendo a usar un editor modal.
    1. Pulsar Esc
    2. Escribir:
    :wq
    1. Pulsar Enter

    Para verificar:

    cat ejemplo_vi.txt

    4. Diferencias entre nano y vi

    Aunque ambos editores permiten hacer lo mismo en lo esencial, la experiencia de uso cambia bastante.

    Característicananovi
    Facilidad para principiantesMuy altaBaja al principio
    Escritura directaNo, hay que entrar en modo inserción
    Curva de aprendizajeSuaveMás pronunciada
    Rapidez para usuarios avanzadosCorrectaMuy alta
    Uso habitual en servidoresSí, muchísimo
    Ayuda visible en pantallaNo de forma tan directa
    Ideal para empezarNo especialmente
    Ideal para administración avanzadaA veces

    5. ¿Cuál conviene usar?

    Usa nano si…

    • estás empezando en Linux,
    • quieres editar archivos rápidamente,
    • no quieres aprender comandos complejos todavía,
    • necesitas algo fácil para prácticas de clase.

    Usa vi si…

    • quieres aprender herramientas clásicas de administración,
    • trabajarás en muchos servidores,
    • te interesa dominar entornos Unix/Linux de forma más profesional,
    • quieres velocidad y potencia a largo plazo.

    La recomendación más sensata para empezar suele ser:

    • primero aprender nano,
    • después conocer vi al menos a nivel básico.

    Porque tarde o temprano te lo vas a encontrar. Vi aparece en servidores, distribuciones mínimas, sistemas de recuperación y contextos donde no siempre tendrás “tu editor favorito”. Es un poco como una llave inglesa vieja: no es glamurosa, pero cuando hace falta, hace falta.



    10. Tabla resumen final

    Tareananovi
    Abrir archivonano archivo.txtvi archivo.txt
    Escribir textoDirectamentePulsar i
    GuardarCtrl + O:w
    SalirCtrl + X:q
    Guardar y salirGuardar y luego salir:wq
    Salir sin guardarResponder N al salir:q!
    Buscar textoCtrl + W/texto

    11. Ejercicios propuestos

    Ejercicio 1

    Crea un archivo llamado practica_nano.txt con nano y escribe tres líneas explicando qué es Linux.

    Ejercicio 2

    Edita el archivo anterior y añade una cuarta línea.

    Ejercicio 3

    Crea un archivo llamado practica_vi.txt con vi, escribe dos líneas y guárdalo correctamente.

    Ejercicio 4

    Abre un archivo con vi, escribe algo y sal sin guardar usando :q!.

    Ejercicio 5

    Busca una palabra dentro de un archivo usando:

    • Ctrl + W en nano
    • /texto en vi

    Conclusión

    Saber usar un editor en terminal es una competencia básica en Linux.
    Aunque hoy en día existan muchos editores gráficos y herramientas modernas, en administración de sistemas, servidores y tareas técnicas sigue siendo muy habitual editar archivos desde consola.

    Nano es la puerta de entrada ideal para empezar.
    Vi es una herramienta más exigente, pero también más potente y muy importante en el mundo Linux.

    Lo recomendable es no complicarse al principio:
    aprende primero a trabajar con nano, y después familiarízate con vi aunque solo sea en sus comandos esenciales. Con eso ya tendrás una base muy útil para seguir avanzando.


  • 1.5 – Comando find en Ubuntu

    1.5 – Comando find en Ubuntu

    El comando find es una de las herramientas más potentes de Linux para buscar archivos y directorios dentro del sistema.

    A diferencia de otros comandos más simples, find no solo permite localizar elementos por su nombre, sino también filtrarlos por muchas otras características, como por ejemplo:

    • nombre
    • tipo de archivo
    • tamaño
    • fecha de modificación
    • usuario propietario
    • permisos
    • contenido combinado con otros comandos
    • y mucho más

    Es un comando muy útil tanto para tareas cotidianas como para administración de sistemas, automatización y mantenimiento.


    ¿Para qué sirve find?

    find se utiliza para recorrer directorios y buscar elementos que cumplan unas condiciones concretas.

    Algunos usos habituales son:

    • localizar un archivo cuyo nombre no recordamos bien
    • buscar todos los archivos .txt o .log
    • encontrar carpetas concretas
    • detectar archivos grandes
    • localizar archivos modificados recientemente
    • buscar archivos vacíos
    • combinar la búsqueda con acciones automáticas, como borrar o ejecutar otro comando

    Sintaxis básica

    find [ruta] [condiciones]

    Estructura

    • ruta: lugar desde el que comienza la búsqueda
    • condiciones: filtros que debe cumplir el archivo o directorio

    Ejemplo mínimo

    find /home

    Este comando recorre todo el directorio /home y muestra todo lo que encuentra: archivos, carpetas, enlaces, etc.


    Primeros ejemplos sencillos

    Buscar en el directorio actual

    find .

    El punto . significa directorio actual.

    Buscar dentro de /home

    find /home

    Buscar un archivo por nombre exacto

    find /home -name "documento.txt"

    Busca un archivo llamado exactamente documento.txt.


    Buscar por nombre

    Opción -name

    Permite buscar por nombre respetando mayúsculas y minúsculas.

    find /home -name "foto.jpg"

    Esto encontrará solo archivos o directorios con ese nombre exacto.

    Opción -iname

    Permite buscar ignorando mayúsculas y minúsculas.

    find /home -iname "foto.jpg"

    Esto encontraría:

    • foto.jpg
    • Foto.jpg
    • FOTO.JPG

    Muy útil cuando no recordamos bien cómo estaba escrito el nombre.


    Uso de comodines

    find permite usar comodines entre comillas.

    Buscar todos los archivos .txt

    find /home -name "*.txt"

    Buscar todos los archivos .log

    find /var/log -name "*.log"

    Buscar nombres que empiecen por “tema”

    find /home -name "tema*"

    Buscar nombres que terminen en “2025”

    find /home -name "*2025"

    Buscar por tipo

    Con la opción -type podemos indicar qué queremos encontrar.

    Tipos más usados

    • f → archivo normal
    • d → directorio
    • l → enlace simbólico

    Buscar solo archivos

    find /home -type f

    Buscar solo directorios

    find /home -type d

    Buscar solo enlaces simbólicos

    find /home -type l

    Buscar archivos .pdf

    find /home -type f -name "*.pdf"

    Aquí combinamos dos condiciones:

    • que sea archivo
    • que termine en .pdf

    Buscar por tamaño

    La opción -size permite buscar por tamaño.

    Unidades comunes

    • c → bytes
    • k → kilobytes
    • M → megabytes
    • G → gigabytes

    Ejemplos

    Buscar archivos de exactamente 10 MB

    find /home -type f -size 10M

    Buscar archivos mayores de 100 MB

    find /home -type f -size +100M

    Buscar archivos menores de 1 MB

    find /home -type f -size -1M

    El signo cambia mucho la película:

    • 10M → exactamente 10 MB
    • +10M → más de 10 MB
    • -10M → menos de 10 MB

    Buscar por fecha

    find también puede buscar según el momento en que un archivo fue modificado.

    Opción -mtime

    Busca por días desde la última modificación.

    Archivos modificados hace menos de 7 días

    find /home -type f -mtime -7

    Archivos modificados hace más de 30 días

    find /home -type f -mtime +30

    Archivos modificados exactamente hace 1 día

    find /home -type f -mtime 1

    Opción -mmin

    Busca por minutos desde la última modificación.

    Archivos modificados en los últimos 60 minutos

    find /home -type f -mmin -60

    Esto es muy útil para tareas recientes o diagnósticos.


    Buscar por usuario o grupo

    Buscar archivos de un usuario concreto

    find /home -user alumno1

    Buscar archivos de un grupo concreto

    find /home -group profesores

    Esto puede venir muy bien en sistemas multiusuario.


    Buscar por permisos

    La opción -perm permite localizar archivos con permisos específicos.

    Buscar archivos con permiso 644

    find /home -type f -perm 644

    Buscar directorios con permiso 755

    find /home -type d -perm 755

    Esto es útil para revisar seguridad, configuraciones o errores de permisos.


    Buscar archivos vacíos

    Archivos vacíos

    find /home -type f -empty

    Directorios vacíos

    find /home -type d -empty

    Muy útil para limpieza del sistema o revisión de estructuras.


    Limitar la profundidad de búsqueda

    A veces no queremos que find recorra infinitamente subcarpetas como si estuviera poseído por un espíritu del caos. Para eso usamos estas opciones.

    -maxdepth

    Limita cuántos niveles de profundidad puede bajar.

    find /home -maxdepth 1

    Muestra solo lo que hay en /home sin entrar en subdirectorios.

    -mindepth

    Indica desde qué nivel empezar a mostrar resultados.

    find /home -mindepth 1

    Evita mostrar el directorio inicial.

    Ejemplo combinado

    find /home -mindepth 1 -maxdepth 2 -type f

    Busca archivos desde el primer nivel hasta el segundo.


    Ejecutar acciones con los resultados

    Una de las funciones más potentes de find es usar -exec, que permite ejecutar comandos sobre cada resultado encontrado.

    Sintaxis

    find [ruta] [condición] -exec comando {} \;
    • {} representa el archivo encontrado
    • \; indica el final del comando

    Ejemplo: mostrar información detallada

    find /home -name "*.txt" -exec ls -l {} \;

    Ejemplo: borrar archivos

    find /home -type f -name "*.tmp" -exec rm {} \;

    Cuidado con esto. Aquí ya estamos jugando con fuego elegante.

    Ejemplo: cambiar permisos

    find /home/proyecto -type f -name "*.sh" -exec chmod +x {} \;

    Borrar directamente con -delete

    También se puede borrar sin usar -exec.

    find /home -type f -name "*.tmp" -delete

    Esto es muy útil, pero también peligroso si no hemos probado antes la búsqueda.

    Recomendación importante

    Primero ejecuta la búsqueda sin borrar:

    find /home -type f -name "*.tmp"

    Y cuando compruebes que el resultado es correcto, entonces usas:

    find /home -type f -name "*.tmp" -delete

    Combinar varias condiciones

    find permite combinar condiciones para hacer búsquedas mucho más precisas.

    Buscar archivos .log de más de 10 MB

    find /var/log -type f -name "*.log" -size +10M

    Buscar archivos .txt modificados en los últimos 2 días

    find /home -type f -name "*.txt" -mtime -2

    Buscar directorios vacíos

    find /home -type d -empty

    Uso de operadores lógicos

    Opción -o (OR)

    Busca una cosa o la otra.

    find /home -name "*.jpg" -o -name "*.png"

    Busca archivos .jpg o .png.

    Opción ! (NOT)

    Niega una condición.

    find /home -type f ! -name "*.txt"

    Busca archivos que no terminen en .txt.


    Ejemplos prácticos

    1. Buscar todos los archivos PDF de un usuario

    find /home/alumno -type f -name "*.pdf"

    2. Buscar carpetas llamadas backup

    find /home -type d -name "backup"

    3. Buscar archivos grandes en todo el sistema

    find / -type f -size +500M

    4. Buscar archivos modificados hoy aproximadamente

    find /home -type f -mtime -1

    5. Buscar archivos temporales y eliminarlos

    find /tmp -type f -name "*.tmp" -delete

    6. Buscar scripts de shell

    find /home -type f -name "*.sh"

    7. Buscar directorios vacíos dentro del proyecto

    find /home/proyecto -type d -empty

    Buenas prácticas al usar find

    1. Empezar por una ruta concreta

    No uses / si no hace falta. Buscar desde la raíz puede tardar bastante y además mostrar errores por falta de permisos.

    Mejor algo como:

    find /home/usuario/documentos -name "*.txt"

    2. Probar primero antes de borrar

    Antes de usar -delete o -exec rm, ejecuta la búsqueda sin borrar nada.

    3. Usar comillas en los patrones

    Correcto:

    find /home -name "*.txt"

    No recomendable:

    find /home -name *.txt

    Sin comillas, el shell puede interpretar el patrón antes que find, y ahí empiezan los disgustos.

    4. Combinar condiciones para ser más preciso

    Cuanto más concreta sea la búsqueda, menos resultados basura tendrás.


    Errores comunes

    Error 1: olvidar la ruta

    find -name "*.txt"

    Aunque puede funcionar en algunos casos desde el directorio actual, es mejor escribirlo claramente:

    find . -name "*.txt"

    Error 2: no poner comillas

    find /home -name *.txt

    Puede dar resultados inesperados.

    Error 3: usar -delete sin comprobar antes

    Esto puede eliminar archivos importantes. Linux no te va a mirar con pena. Simplemente lo hará.

    Error 4: confundir -name con contenido del archivo

    find busca por nombre, tamaño, fechas, tipo, etc., pero no busca texto dentro de archivos.
    Para buscar texto dentro de archivos se usa normalmente grep.

    Ejemplo combinado:

    find /home -type f -name "*.txt" -exec grep "error" {} \;

    Opciones principales de find

    OpciónSignificadoEjemplo
    .Directorio actualfind .
    -nameBusca por nombre exacto respetando mayúsculasfind /home -name "foto.jpg"
    -inameBusca por nombre ignorando mayúsculasfind /home -iname "foto.jpg"
    -type fSolo archivosfind /home -type f
    -type dSolo directoriosfind /home -type d
    -type lSolo enlaces simbólicosfind /home -type l
    -sizeBusca por tamañofind /home -size +100M
    -mtimeBusca por días desde modificaciónfind /home -mtime -7
    -mminBusca por minutos desde modificaciónfind /home -mmin -60
    -userBusca por usuario propietariofind /home -user alumno1
    -groupBusca por grupo propietariofind /home -group profesores
    -permBusca por permisosfind /home -perm 644
    -emptyBusca archivos o directorios vacíosfind /home -empty
    -maxdepthLimita profundidad máximafind /home -maxdepth 2
    -mindepthLimita profundidad mínimafind /home -mindepth 1
    -execEjecuta un comando sobre cada resultadofind /home -name "*.txt" -exec ls -l {} \;
    -deleteBorra directamente los resultadosfind /tmp -name "*.tmp" -delete
    -oOperador ORfind /home -name "*.jpg" -o -name "*.png"
    !Negaciónfind /home ! -name "*.txt"


    Ejercicios

    Ejercicio 1

    Busca todos los archivos .txt dentro de tu carpeta personal.

    Ejercicio 2

    Busca todos los directorios dentro de /home.

    Ejercicio 3

    Encuentra archivos mayores de 50 MB.

    Ejercicio 4

    Busca archivos modificados en los últimos 3 días.

    Ejercicio 5

    Busca archivos vacíos dentro de una carpeta de pruebas.

    Ejercicio 6

    Busca todos los archivos .log y muestra solo los que sean archivos normales.

    Ejercicio 7

    Busca archivos .tmp dentro de una carpeta temporal y elimínalos solo después de comprobar el resultado.



    Soluciones

    EjercicioComando
    1find /home/$USER -type f -name "*.txt"
    2find /home -type d
    3find /home -type f -size +50M
    4find /home -type f -mtime -3
    5find /home/$USER/pruebas -type f -empty
    6find /home -type f -name "*.log"
    7find /tmp -type f -name "*.tmp" y después find /tmp -type f -name "*.tmp" -delete