Guía completa de Linux 2026

Guía Completa de Linux 2026: De Principiante a Administrador Avanzado

Linux está en todas partes. Está en el 96% de los servidores web del mundo, en el 100% de las 500 supercomputadoras más potentes del planeta, en tu móvil Android, en tu smart TV, en tu router, en los coches Tesla, en la Estación Espacial Internacional y hasta en el rover Perseverance de Marte. Y lo mejor: es gratuito, open source y lo puedes usar hoy mismo en tu ordenador.

Pero Linux también intimida. Durante décadas se ha asociado a terminales negras, comandos crípticos y usuarios con barba. Esa imagen ya no refleja la realidad: en 2026, distribuciones como Ubuntu, Linux Mint, Fedora o Pop!_OS son tan fáciles de usar como Windows o macOS, con interfaces gráficas modernas, tiendas de aplicaciones y compatibilidad con la mayoría del software que necesitas.

Esta guía completa de Linux 2026 es el resultado de años documentando el sistema operativo más poderoso del mundo en veselin.es. La he reescrito y ampliado por completo para cubrir todo lo que necesitas: desde qué es Linux y cómo instalarlo, hasta cómo administrar servidores profesionales, escribir scripts de automatización, gestionar contenedores y asegurar tus sistemas.

Tanto si nunca has abierto una terminal como si ya administras servidores en producción, esta guía te llevará de principiante a avanzado con ejemplos prácticos, comandos reales y enlaces a guías específicas para profundizar en cada tema.

¿Qué vas a aprender en esta guía?

  • Qué es Linux, su historia y por qué domina servidores, móviles y supercomputadoras
  • Las mejores distribuciones de 2026 y cómo elegir la tuya
  • Cómo instalar Linux paso a paso (incluido dual boot con Windows)
  • La terminal y los comandos esenciales que todo usuario debe conocer
  • Cómo funciona el sistema de archivos y la jerarquía FHS
  • Gestión de usuarios, permisos y seguridad
  • Cómo manejar paquetes en las principales familias de distros
  • Entornos de escritorio y personalización
  • Administración de servidores: SSH, systemd, logs, cron, backups y monitorización
  • Redes en Linux: firewalls, VPN y diagnóstico
  • Scripting con Bash para automatizar tareas
  • Contenedores y virtualización: Docker, Kubernetes, LXC, Proxmox
  • Seguridad en Linux: hardening, cifrado, análisis de logs y forense
  • Linux en el mundo real: servidores, cloud, IoT, Raspberry Pi y el espacio
  • Una ruta de aprendizaje clara según tu perfil
  • FAQ con 12 preguntas frecuentes

📑 Tabla de contenidos

  1. ¿Qué es Linux? Historia y fundamentos
  2. Distribuciones de Linux
  3. Instalación de Linux
  4. La terminal y comandos esenciales
  5. Sistema de archivos y estructura
  6. Gestión de usuarios y permisos
  7. Gestión de paquetes
  8. Entornos de escritorio
  9. Administración de servidores Linux
  10. Redes en Linux
  11. Scripting con Bash
  12. Contenedores y virtualización
  13. Seguridad en Linux
  14. Linux en el mundo real
  15. Aprender Linux: rutas y recursos
  16. Conclusión
  17. Preguntas frecuentes

1. ¿Qué es Linux? Historia y fundamentos

1.1 Definición y diferencias con GNU/Linux

Linux es un kernel (núcleo) de sistema operativo creado por Linus Torvalds en 1991. Es la parte del sistema que se comunica directamente con el hardware y gestiona recursos como la CPU, la memoria y los dispositivos.

Pero Linux, por sí solo, no es un sistema operativo completo. Necesita herramientas, bibliotecas y aplicaciones para funcionar. La mayoría de esas herramientas provienen del proyecto GNU, iniciado por Richard Stallman en 1983.

Por eso, el nombre técnicamente correcto es GNU/Linux. Sin embargo, en el lenguaje cotidiano se usa «Linux» para referirse a todo el sistema operativo.

Cuando alguien dice «uso Linux», en realidad está usando una distribución que combina:

  • El kernel Linux
  • Herramientas GNU
  • Un gestor de paquetes
  • Un entorno de escritorio
  • Aplicaciones

Si quieres profundizar en la historia de GNU, consulta [ENLACE: /gnu-linux/].

1.2 Breve historia: de Unix a Linux

1969 — Unix: Ken Thompson y Dennis Ritchie crean Unix en Bell Labs. Es el ancestro de casi todos los sistemas modernos.

1983 — GNU: Richard Stallman lanza el proyecto GNU para crear un sistema operativo libre tipo Unix.

1987 — MINIX: Andrew Tanenbaum crea un Unix minimalista con fines educativos.

1991 — Linux: Linus Torvalds, estudiante finlandés de 21 años, publica la primera versión del kernel Linux. Su famoso mensaje en Usenet: «I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu)».

1992 — Licencia GPL: Linux se libera bajo GPL, lo que permite a cualquiera usarlo, modificarlo y redistribuirlo.

1993 — Debian y Red Hat: Nacen dos de las distribuciones más influyentes.

1998 — IBM y Oracle: Grandes empresas empiezan a apoyar Linux.

2004 — Ubuntu: Mark Shuttleworth lanza Ubuntu, popularizando Linux para usuarios comunes.

2007 — Android: Google lanza Android basado en el kernel Linux.

2011 — Raspberry Pi: Se populariza Linux en el mundo del IoT y la educación.

2013 — Docker: Revoluciona el despliegue de aplicaciones basadas en Linux.

2020-2026 — Era moderna: Linux domina servidores, cloud, móviles, supercomputadoras y sistemas embebidos.

1.3 El kernel y sus componentes

El kernel Linux es el corazón del sistema. Sus funciones principales:

  • Gestión de procesos: qué se ejecuta, cuándo y con qué prioridad.
  • Gestión de memoria: asignación y liberación de RAM y swap.
  • Sistema de archivos: lectura y escritura en discos.
  • Controladores de dispositivos: comunicación con hardware.
  • Gestión de red: pila TCP/IP, interfaces, sockets.
  • Seguridad: permisos, namespaces, cgroups.

Monolítico y modular: el kernel Linux es monolítico (todo en un solo proceso) pero permite cargar y descargar módulos en tiempo real.

Versiones: el kernel se versiona como X.Y.Z (mayor.menor.parche). La versión actual en 2026 es la 6.x.

LTS vs mainline: algunos kernels tienen soporte a largo plazo (LTS) de varios años, ideales para servidores.

Para consultar la versión de tu kernel:

uname -r

1.4 La filosofía Unix

Linux hereda del Unix una filosofía de diseño que lo ha hecho tan potente y duradero:

  1. Haz una cosa y hazla bien. Cada programa debe hacer una tarea concreta.
  2. Todo es un archivo. Dispositivos, procesos y conexiones se tratan como archivos.
  3. Composición mediante pipes. Combina programas pequeños para resolver problemas complejos.
  4. Texto plano como formato universal.
  5. La configuración vive en archivos de texto editables.

Esta filosofía es la razón por la que Linux es tan flexible, automatizable y apto para servidores.

Ejemplo de composición: contar cuántos procesos están corriendo como root:

ps aux | grep "^root" | wc -l

Cada comando hace una cosa pequeña; combinados, resuelven un problema completo.

1.5 Por qué Linux domina el mundo

En 2026, Linux está en:

  • 96% de los servidores web del mundo (según W3Techs).
  • 100% de las top 500 supercomputadoras.
  • ~72% de los smartphones (Android está basado en Linux).
  • Mayoría de servicios cloud (AWS, Azure, GCP).
  • Mayoría de dispositivos IoT.
  • Smart TVs, routers, coches, drones, satélites.

Razones del dominio:

  • Gratis y open source.
  • Altísima estabilidad: servidores funcionan durante años sin reiniciar.
  • Seguridad: arquitectura de permisos robusta, menos malware.
  • Eficiencia: funciona bien en hardware modesto.
  • Escalable: desde Raspberry Pi hasta supercomputadoras.
  • Comunidad enorme: soporte, documentación y desarrollo.
  • Personalizable: puedes modificarlo todo.

Si quieres saber por qué Debian es la elección habitual para servidores, consulta Razones para elegir Debian como sistema operativo para tu servidor.

1.6 Linux vs Windows vs macOS

AspectoLinuxWindowsmacOS
PrecioGratisLicencia de pagoSolo en hardware Apple
CódigoAbiertoCerradoCerrado
PersonalizaciónTotalLimitadaMuy limitada
SeguridadAltaMediaAlta
Compatibilidad gamingCreciente (Steam Proton)TotalLimitada
Software profesionalAlternativas open sourceEstándar en muchos sectoresEstándar en diseño/creativo
ServidoresDominanteMinoritarioMinoritario
ActualizacionesTú decidesForzadasForzadas

Conclusión: cada SO tiene su lugar. Linux destaca en servidores, desarrollo, privacidad y eficiencia.


2. Distribuciones de Linux

2.1 ¿Qué es una distribución?

Una distribución (o «distro») es un sistema operativo completo construido sobre el kernel Linux. Incluye:

  • El kernel Linux
  • Herramientas GNU
  • Un gestor de paquetes
  • Un instalador
  • Un entorno de escritorio (opcional)
  • Aplicaciones preinstaladas
  • Un ciclo de actualizaciones

Existen más de 600 distribuciones activas, pero solo unas pocas decenas son realmente relevantes.

2.2 Familias de distribuciones

Las distros se agrupan en familias según su origen:

Familia Debian:

  • Debian (base)
  • Ubuntu
  • Linux Mint
  • Pop!_OS
  • Kali Linux
  • Raspberry Pi OS
  • Gestor de paquetes: APT (.deb)

Familia Red Hat:

  • Red Hat Enterprise Linux (RHEL)
  • Fedora
  • CentOS Stream
  • Rocky Linux
  • AlmaLinux
  • Gestor de paquetes: DNF/YUM (.rpm)

Familia Arch:

  • Arch Linux
  • Manjaro
  • EndeavourOS
  • BlackArch
  • Gestor de paquetes: Pacman

Familia SUSE:

  • openSUSE Leap
  • openSUSE Tumbleweed
  • SUSE Linux Enterprise
  • Gestor de paquetes: Zypper

Otras familias:

  • Gentoo: compilación desde código fuente.
  • Slackware: la más antigua aún activa.
  • Alpine: minimalista para contenedores.
  • NixOS: configuración declarativa.

2.3 Las 10 mejores distribuciones de 2026

Para principiantes:

  1. Linux Mint: interfaz familiar, muy estable, ideal si vienes de Windows.
  2. Ubuntu: la más popular, enorme comunidad y soporte.
  3. Pop!_OS: excelente para desarrollo y gaming, creada por System76.
  4. Zorin OS: diseñada específicamente para ex-usuarios de Windows.

Para usuarios avanzados:

  1. Fedora: innovadora, adelantada a su tiempo, patrocinada por Red Hat.
  2. Debian: la «roca» de Linux, extremadamente estable.
  3. Arch Linux: control total, instalación manual, rolling release.
  4. openSUSE Tumbleweed: rolling release estable.

Para propósitos específicos:

  1. Kali Linux: hacking ético y pentesting.
  2. Raspberry Pi OS: para Raspberry Pi.

2.4 Cómo elegir tu distribución

Pregúntate:

  1. ¿Para qué la usarás? Escritorio, servidor, desarrollo, pentesting, gaming.
  2. ¿Qué experiencia tienes? Principiante, intermedio, avanzado.
  3. ¿Qué hardware tienes? Moderno, antiguo, recursos limitados.
  4. ¿Qué software necesitas? Ofimática, diseño, desarrollo, juegos.
  5. ¿Cuánto tiempo quieres dedicar al mantenimiento? Poco, medio, mucho.

Recomendaciones rápidas:

PerfilDistro recomendada
Principiante desde WindowsLinux Mint, Zorin OS
Usuario generalUbuntu, Pop!_OS
DesarrolladorFedora, Pop!_OS, Ubuntu
ServidorDebian, Ubuntu Server, Rocky Linux
Hacking éticoKali Linux, Parrot OS
Usuario avanzadoArch, Fedora, openSUSE
Hardware antiguoLubuntu, Xubuntu, Puppy Linux, antiX
GamingPop!_OS, Nobara, SteamOS
PrivacidadTails, Qubes OS, Whonix

Si dudas entre Debian y Ubuntu, consulta Debian o Ubuntu en 2023: ¿Qué sistema operativo Linux es mejor para ti?.

2.5 Distros para hacking ético

Si te interesa la ciberseguridad:

Comparativa: Kali Linux vs Parrot OS: Comparación y Análisis Completo en 2026 y Mejores Distribuciones Linux Para Hacking Ético.

2.6 Distros ligeras para hardware antiguo

Si tienes un ordenador con pocos recursos:

  • Lubuntu: Ubuntu con LXQt.
  • Xubuntu: Ubuntu con XFCE.
  • Puppy Linux: ultraligera, corre en RAM.
  • antiX: Debian sin systemd, muy ligera.
  • MX Linux: Debian + XFCE, excelente.

Referencias: Ventajas de Usar Distribuciones Ligeras en Hardware Antiguo: Una Guía Completa y Cómo optimizar Linux para equipos con pocos recursos.


3. Instalación de Linux

3.1 Requisitos previos

Antes de instalar Linux, verifica:

Hardware mínimo (escritorio moderno):

  • CPU: 2 GHz dual core.
  • RAM: 4 GB (8 GB recomendado).
  • Disco: 25 GB libres.
  • USB: 4 GB para el instalador.

Hardware mínimo (servidor):

  • CPU: 1 GHz.
  • RAM: 512 MB (1 GB recomendado).
  • Disco: 10 GB.

Antes de empezar:

  1. Backup de tus datos importantes.
  2. Anota tu configuración de red (IP, DNS).
  3. Comprueba compatibilidad de hardware (especialmente WiFi y GPU).
  4. Elige tu distro.
  5. Descarga la ISO desde la web oficial.

3.2 Crear USB booteable

Herramientas recomendadas:

  • Rufus (Windows): la más sencilla.
  • balenaEtcher (multiplataforma): muy fácil.
  • Ventoy (avanzado): múltiples ISOs en un USB.
  • dd (Linux/macOS): desde la terminal.

Ejemplo con dd:

sudo dd if=ubuntu-24.04.iso of=/dev/sdX bs=4M status=progress oflag=sync

⚠️ Reemplaza /dev/sdX con tu dispositivo USB. Un error aquí puede borrar tu disco duro.

3.3 Particionado del disco

El particionado es la decisión más delicada. Esquema básico:

Instalación sencilla (una sola partición):

  • / (raíz): todo el disco.

Instalación recomendada (separar /home):

  • /: 30-50 GB.
  • /home: resto del disco.
  • swap: 2-8 GB (o archivo swap).

Instalación avanzada (servidor):

  • /boot: 500 MB (EFI).
  • /: 30 GB.
  • /var: 20 GB.
  • /home: resto.
  • swap: 2x RAM si hibernas.

Sistemas de archivos:

  • ext4: el estándar, estable y rápido.
  • btrfs: snapshots, checksums, compresión.
  • xfs: excelente para servidores grandes.
  • zfs: avanzado, con integridad de datos.

Comparativa: Comparativa de Sistemas de Archivos en Linux: ext4 vs. Btrfs vs. XFS

3.4 Proceso de instalación (Ubuntu/Debian)

Pasos generales:

  1. Arranca desde el USB: reinicia y entra en el menú de arranque (F12, F2, Esc según el fabricante).
  2. Selecciona «Try Ubuntu» o «Install Ubuntu».
  3. Idioma y teclado.
  4. Conexión a internet (opcional pero recomendado).
  5. Tipo de instalación:
    • Borrar disco (⚠️ borra todo).
    • Instalar junto a Windows (dual boot).
    • Algo más (particionado manual).
  6. Zona horaria.
  7. Usuario y contraseña.
  8. Esperar a que termine (15-30 min).
  9. Reiniciar y retirar el USB.

3.5 Dual boot con Windows

Para tener Linux y Windows en el mismo equipo:

  1. Backup completo (obligatorio).
  2. Desfragmenta Windows.
  3. Libera espacio para Linux (mínimo 30 GB).
  4. Desactiva Fast Startup en Windows (Panel de control > Energía).
  5. Desactiva Secure Boot en la BIOS (algunas distros lo requieren).
  6. Instala Linux eligiendo «Instalar junto a Windows».
  7. GRUB gestionará el arranque dual.

Consejo: instala Windows primero, Linux después. Windows sobrescribe el gestor de arranque.

3.6 Máquinas virtuales para probar

Si no quieres arriesgar tu sistema, prueba Linux en una VM:

Comparativa: Máquinas Virtuales: Proxmox, VMware y VirtualBox

3.7 Primeros pasos tras instalar

Una vez instalado:

  1. Actualiza el sistema:
sudo apt update && sudo apt upgrade -y     # Debian/Ubuntu
sudo dnf upgrade --refresh                 # Fedora
sudo pacman -Syu                           # Arch
  1. Instala códecs multimedia:
sudo apt install ubuntu-restricted-extras  # Ubuntu
  1. Instala software esencial: navegador, ofimática, editor.
  2. Configura el firewall:
sudo ufw enable
  1. Configura backups automáticos.
  2. Explora el escritorio.
  3. Aprende la terminal (siguiente sección).

3.8 Actualizar de una versión a otra

Para actualizar entre versiones mayores:

Ubuntu: sudo do-release-upgrade
Debian: cambiar bookworm a trixie en /etc/apt/sources.list y ejecutar sudo apt update && sudo apt full-upgrade.

Guía completa: Actualizar Debian 11 a Debian 12: Paso a Paso

3.9 Configurar IP estática (servidores)

En servidores, es habitual configurar una IP estática. Con Netplan (Ubuntu moderno):

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    ens33:
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Aplicar con:

sudo netplan apply

Guía: IP estática en Ubuntu Server 22.04 y actualización a 24.04


4. La terminal y comandos esenciales

4.1 Por qué la terminal es tu mejor amiga

Al principio, la terminal asusta. Pero cuando la dominas, descubres que es mucho más rápida y potente que cualquier interfaz gráfica. Las razones:

  • Velocidad: hacer una tarea con un comando puede ahorrarte 10 clics.
  • Automatización: puedes scriptear tareas repetitivas.
  • Potencia: comandos que combinan herramientas logran cosas imposibles gráficamente.
  • Disponibilidad universal: funciona igual en cualquier distro.
  • Conexión remota: todo lo que haces local lo puedes hacer por SSH.
  • Documentación: la mayoría de guías y soluciones están en comandos.

Regla de oro: la terminal no es peligrosa si sabes lo que haces. Sí puede serlo si copias y pegas comandos que no entiendes, especialmente con sudo.

4.2 Estructura de un comando

Sintaxis básica:

comando [opciones] [argumentos]
  • comando: el programa a ejecutar (ls, cp, grep).
  • opciones: modificadores, normalmente con - o -- (-l, --help).
  • argumentos: sobre qué actúa (archivos, directorios, texto).

Ejemplo:

ls -la /home/usuario
  • ls: listar.
  • -la: opciones (long + all).
  • /home/usuario: directorio objetivo.

Consejo: usa man comando para ver el manual completo, o comando --help para un resumen rápido.

4.3 Navegación básica

pwd (print working directory):
Muestra el directorio actual.

pwd
<em># /home/usuario</em>

ls (list):
Lista archivos y directorios.

ls              # listado simple
ls -l           # formato largo
ls -la          # incluye archivos ocultos
ls -lh          # tamaños legibles (K, M, G)
ls -lt          # ordenado por fecha

cd (change directory):
Cambia de directorio.

cd /var/log     # ruta absoluta
cd Documents    # ruta relativa
cd ..           # subir un nivel
cd ~            # ir al home
cd -            # volver al directorio anterior

tree:
Muestra estructura jerárquica.

tree -L 2 /etc

(Requiere instalación: sudo apt install tree)

4.4 Gestión de archivos y directorios

Crear:

touch archivo.txt          # crear archivo vacío
mkdir carpeta              # crear carpeta
mkdir -p ruta/a/carpeta    # crear rutas anidadas

Copiar:

cp archivo.txt copia.txt
cp -r carpeta/ copia/      # recursivo
cp -v archivo.txt /tmp/    # verboso

Mover/renombrar:

mv archivo.txt /tmp/
mv viejo.txt nuevo.txt

Eliminar:

rm archivo.txt
rm -r carpeta/             # recursivo
rm -rf carpeta/            # forzado (¡CUIDADO!)
rmdir carpeta              # solo si está vacía

⚠️ Aviso: rm -rf / borra todo el sistema. No hay papelera de reciclaje en la terminal.

Ver archivos:

cat archivo.txt            # muestra todo
less archivo.txt           # paginado (q para salir)
head -n 20 archivo.txt     # primeras 20 líneas
tail -n 20 archivo.txt     # últimas 20 líneas
tail -f /var/log/syslog    # sigue el archivo en tiempo real

4.5 Búsqueda de archivos y contenido

find: busca archivos por criterios.

find /home -name "*.pdf"
find / -size +100M         # archivos >100 MB
find . -mtime -1           # modificados en las últimas 24h
find . -type f -exec chmod 644 {} \;   # aplicar comando a cada resultado

locate: búsqueda rápida en base de datos indexada.

sudo updatedb              # actualizar índice
locate archivo.txt

grep: busca patrones de texto en archivos.

grep "error" /var/log/syslog
grep -r "TODO" .           # recursivo
grep -i "warning" archivo  # case insensitive
grep -v "excluir" archivo  # invertir coincidencia
grep -E "regex" archivo    # expresiones regulares

Combinado con pipes:

ps aux | grep nginx
cat access.log | grep "404" | wc -l

Guía completa de grep: [ENLACE: /usos-avanzados-de-grep-sacale-el-maximo-provecho-a-este-comando/]

which y whereis: localiza ejecutables.

which python3
whereis nginx

4.6 Permisos: chmod, chown, umask

Sistema de permisos:

Cada archivo tiene 3 tipos de permisos para 3 categorías:

  • r (read): leer.
  • w (write): escribir.
  • x (execute): ejecutar.

Categorías: u (usuario propietario), g (grupo), o (otros).

Ver permisos:

ls -l archivo.sh
# -rwxr-xr-- 1 usuario grupo 1024 Jan 1 12:00 archivo.sh
  • rwx para el propietario.
  • r-x para el grupo.
  • r-- para otros.

chmod: cambia permisos.

Modo simbólico:

chmod u+x archivo.sh       # añade ejecución al propietario
chmod g-w archivo.txt      # quita escritura al grupo
chmod o+r archivo.txt      # añade lectura a otros
chmod a+x script.sh        # añade ejecución a todos

Modo octal:

chmod 755 script.sh        # rwxr-xr-x
chmod 644 archivo.txt      # rw-r--r--
chmod 600 clave.pem        # rw-------
chmod 700 carpeta/         # rwx------

Equivalencias octales:

  • 4 = r
  • 2 = w
  • 1 = x
  • 7 = rwx (4+2+1)
  • 6 = rw- (4+2)
  • 5 = r-x (4+1)

chown: cambia propietario y grupo.

sudo chown usuario archivo.txt
sudo chown usuario:grupo archivo.txt
sudo chown -R usuario:grupo carpeta/

umask: permisos por defecto de nuevos archivos.

umask                      # muestra el actual (ej: 022)
umask 027                  # cambia

Permisos especiales:

  • SUID (4): el programa se ejecuta con permisos del propietario.
  • SGID (2): se ejecuta con permisos del grupo.
  • Sticky bit (1): solo el propietario puede borrar sus archivos (útil en /tmp).
chmod u+s binario          # SUID
chmod +t carpeta/          # sticky bit

4.7 Procesos y monitorización

ps: snapshot de procesos.

ps aux                     # todos los procesos
ps -ef                     # formato completo
ps aux | grep nginx        # filtrar por nombre

top / htop: monitorización en tiempo real.

top
htop                       # más visual (requiere instalación)

kill: termina procesos.

kill PID                   # señal TERM (15, amable)
kill -9 PID                # señal KILL (forzado)
killall firefox            # matar por nombre
pkill -f "python script"   # matar por patrón

jobs, fg, bg: gestión de trabajos en la shell.

comando &                  # ejecutar en background
jobs                       # listar trabajos
fg %1                      # traer a primer plano
bg %1                      # enviar a background

nohup: ejecutar procesos que sobrevivan al cierre de la terminal.

nohup script.sh &

nice y renice: cambiar prioridad.

nice -n 10 comando         # menor prioridad
renice -n -5 -p PID        # mayor prioridad (root)

4.8 Redes desde la terminal

ip: configuración de red moderna.

ip a                       # interfaces y direcciones
ip r                       # tabla de rutas
ip link set eth0 up        # activar interfaz

ss: conexiones y sockets (reemplaza a netstat).

ss -tulpn                  # puertos abiertos
ss -tulpn | grep 80        # filtrar por puerto

ping: comprobar conectividad.

ping google.com
ping -c 4 8.8.8.8          # 4 pings

traceroute / mtr: ruta hasta un destino.

traceroute google.com
mtr google.com             # más visual

curl y wget: descargar y probar APIs.

curl https://api.github.com
curl -O https://ejemplo.com/archivo.zip
wget https://ejemplo.com/archivo.zip

dig / nslookup: consultas DNS.

dig veselin.es
nslookup google.com

tcpdump: capturar tráfico.

sudo tcpdump -i eth0 port 80

4.9 Compresión y empaquetado

tar: el estándar de Linux.

tar -czvf backup.tar.gz carpeta/       # crear .tar.gz
tar -xzvf backup.tar.gz                # extraer
tar -tzvf backup.tar.gz                # listar contenido
tar -cjvf backup.tar.bz2 carpeta/      # bzip2
tar -cJvf backup.tar.xz carpeta/       # xz

zip / unzip:

zip -r archivo.zip carpeta/
unzip archivo.zip

gzip / gunzip:

gzip archivo.txt
gunzip archivo.txt.gz

4.10 Otros comandos esenciales

sudo: ejecutar como superusuario.

sudo apt update
sudo -i                    # shell root
sudo -u usuario comando    # como otro usuario

su: cambiar de usuario.

su - root

man: manual de comandos.

man ls
man 5 passwd              # sección 5: formatos de archivo

history: historial de comandos.

history
history | grep ssh
!!                        # repetir último comando
!123                      # repetir comando 123

alias: atajos personalizados.

alias ll='ls -lah'
alias update='sudo apt update && sudo apt upgrade'

echo: imprimir texto.

echo "Hola mundo"
echo $PATH                # mostrar variable

export: variables de entorno.

export EDITOR=vim
export PATH=$PATH:/opt/bin

date, cal, uptime, whoami, hostname: información del sistema.

df y du: espacio en disco.

df -h                     # uso por sistema de archivos
du -sh carpeta/           # tamaño de carpeta
du -sh * | sort -h        # ordenar por tamaño

free: memoria RAM.

free -h

uname: información del sistema.

uname -a

4.11 Atajos de teclado útiles

  • Ctrl+C: cancelar comando actual.
  • Ctrl+D: cerrar sesión / fin de entrada.
  • Ctrl+Z: suspender proceso (luego fg para reanudar).
  • Ctrl+L: limpiar pantalla.
  • Ctrl+R: buscar en el historial.
  • Ctrl+A: ir al inicio de la línea.
  • Ctrl+E: ir al final de la línea.
  • Ctrl+U: borrar hasta el inicio.
  • Ctrl+K: borrar hasta el final.
  • Tab: autocompletar.
  • Tab Tab: mostrar opciones.

4.12 Recursos para practicar


5. Sistema de archivos y estructura

5.1 La jerarquía FHS

Linux organiza sus archivos según el Filesystem Hierarchy Standard (FHS). Los directorios principales:

DirectorioContenido
/Raíz del sistema
/binBinarios esenciales (en sistemas modernos, symlink a /usr/bin)
/bootKernel, initrd, GRUB
/devDispositivos (discos, terminales, USB)
/etcConfiguración del sistema
/homeDirectorios personales de usuarios
/libBibliotecas compartidas esenciales
/mediaPuntos de montaje automáticos (USB, DVD)
/mntPuntos de montaje manuales
/optSoftware de terceros opcional
/procSistema de archivos virtual con info de procesos
/rootHome del superusuario
/runDatos volátiles desde el arranque
/sbinBinarios de administración
/srvDatos de servicios (web, FTP)
/sysInfo de dispositivos del kernel
/tmpArchivos temporales (borrados al reiniciar)
/usrProgramas y datos de usuario
/varDatos variables (logs, bases de datos)

Consejo: cuando busques un archivo de configuración, mira en /etc. Cuando busques logs, mira en /var/log.

5.2 Tipos de sistemas de archivos

Los más usados en Linux:

ext4:

  • El estándar por defecto.
  • Estable, rápido, probado.
  • Soporta volúmenes de hasta 1 exabyte.
  • Sin snapshots nativos.

btrfs:

xfs:

  • Excelente para servidores con archivos grandes.
  • RHEL lo usa por defecto.
  • Sin capacidad de reducción (solo crecimiento).

zfs:

  • Máxima integridad de datos.
  • Snapshots, deduplicación, RAID integrado.
  • Más complejo y con más RAM.

Otros: fat32, exfat (compatibilidad), ntfs (Windows), swap.

Comparativa completa: Comparativa de Sistemas de Archivos en Linux: ext4 vs. Btrfs vs. XFS

5.3 Montaje y desmontaje

En Linux, para acceder a un sistema de archivos hay que montarlo en un directorio.

Comandos:

mount                      # ver montajes actuales
mount /dev/sdb1 /mnt/usb   # montar
umount /mnt/usb            # desmontar
findmnt                    # ver montajes (más legible)
lsblk                      # ver discos y particiones

Montaje automático en /etc/fstab:

Ejemplo:

UUID=1234-5678 /home ext4 defaults 0 2
UUID=abcd-efgh /mnt/data btrfs defaults,noatime,compress=zstd 0 0

Obtener UUID:

sudo blkid

5.4 Enlaces simbólicos y duros

Enlace simbólico (symlink): apunta a otro archivo.

ln -s /ruta/original /ruta/enlace
ls -l enlace               # muestra la flecha: enlace -> original

Enlace duro: referencia al mismo inodo.

ln archivo enlace_duro

Diferencias:

  • Symlink: puede apuntar a directorios, cruza sistemas de archivos, se rompe si se borra el original.
  • Hard link: solo archivos, mismo sistema de archivos, sobrevive al borrado del original.

5.5 Permisos y propietarios

Ya los vimos en la sección 4.6. Recuerda:

  • chmod: permisos.
  • chown: propietario y grupo.
  • chgrp: solo grupo.

Ejemplo típico en un servidor web:

sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html

5.6 Comandos útiles

stat archivo.txt           # información detallada
file archivo.bin           # tipo de archivo
readlink enlace_simbolico  # destino del symlink
realpath archivo           # ruta absoluta
basename /ruta/archivo.txt # nombre del archivo
dirname /ruta/archivo.txt  # ruta del directorio

6. Gestión de usuarios y permisos {#usuarios}

6.1 Usuarios, grupos y contraseñas

Linux es multiusuario desde su diseño. Cada usuario tiene:

  • UID: identificador numérico único (0 para root).
  • GID: identificador del grupo principal.
  • Home: directorio personal.
  • Shell: intérprete por defecto.

Archivos clave:

  • /etc/passwd: información de usuarios.
  • /etc/shadow: contraseñas hasheadas (solo root).
  • /etc/group: grupos.
  • /etc/sudoers: permisos de sudo.

Comandos de gestión:

Crear usuario:

sudo useradd -m -s /bin/bash usuario
sudo passwd usuario

O más amigable:

sudo adduser usuario

Modificar usuario:

sudo usermod -aG sudo usuario              # añadir a grupo sudo
sudo usermod -s /bin/zsh usuario           # cambiar shell
sudo usermod -L usuario                    # bloquear cuenta
sudo usermod -U usuario                    # desbloquear

Eliminar usuario:

sudo userdel usuario
sudo userdel -r usuario                    # elimina también su home

Grupos:

sudo groupadd desarrolladores
sudo groupdel desarrolladores
sudo gpasswd -a usuario desarrolladores    # añadir al grupo
sudo gpasswd -d usuario desarrolladores    # quitar del grupo

Ver info:

id usuario
groups usuario
getent passwd usuario

Guía completa: Administración de Usuarios y Grupos en Linux

6.2 sudo y su configuración

sudo permite ejecutar comandos como otro usuario (por defecto root) según reglas definidas.

Configuración: editar con visudo (nunca directamente).

sudo visudo

Ejemplo de reglas:

usuario ALL=(ALL:ALL) ALL                          # todo con contraseña
usuario ALL=(ALL:ALL) NOPASSWD: /usr/bin/systemctl # solo systemctl sin contraseña
%sudo ALL=(ALL:ALL) ALL                            # todo el grupo sudo

Ventajas de sudo sobre su:

  • Auditoría: cada uso queda registrado.
  • Granularidad: se puede limitar a comandos específicos.
  • Seguridad: no hay que compartir la contraseña de root.
  • Configuración centralizada.

Guía: Como instalar y configurar sudo en Debian 12

6.3 Permisos avanzados

Además de los permisos básicos (rwx), existen:

SUID (Set User ID):

  • El archivo se ejecuta con permisos del propietario.
  • Ejemplo: /usr/bin/passwd es SUID root para que cualquier usuario pueda cambiar su contraseña.
sudo chmod u+s /ruta/binario

⚠️ Riesgo: si un binario SUID tiene vulnerabilidades, puede escalarse privilegios.

SGID (Set Group ID):

  • Se ejecuta con permisos del grupo propietario.
  • En directorios: los archivos nuevos heredan el grupo.
sudo chmod g+s /ruta/carpeta

Sticky bit:

  • Solo el propietario puede borrar sus archivos dentro del directorio.
  • Común en /tmp.
sudo chmod +t /ruta/carpeta

Buscar archivos SUID (auditoría):

find / -perm -4000 -type f 2>/dev/null

Guía relacionada: Control de Acceso en Linux: Mejores Prácticas de Permisos y Usuarios

6.4 ACLs (Access Control Lists)

Los permisos tradicionales limitan a 3 categorías. Las ACLs permiten permisos granulares por usuario o grupo específico.

Ver ACLs:

getfacl archivo.txt

Añadir ACL:

setfacl -m u:maria:rw archivo.txt              # maria puede leer/escribir
setfacl -m g:devs:rx carpeta/                  # grupo devs lee/ejecuta
setfacl -R -m u:juan:r carpeta/                # recursivo
setfacl -x u:maria archivo.txt                 # eliminar ACL

Ejemplo práctico: dar permisos de escritura a un usuario externo sin añadirlo al grupo.

6.5 SELinux y AppArmor

Además de los permisos tradicionales, Linux moderno usa MAC (Mandatory Access Control):

SELinux (Red Hat, Fedora):

  • Etiqueta cada proceso, archivo y puerto.
  • Define qué puede hacer cada proceso.
  • Modos: enforcing, permissive, disabled.
getenforce
sestatus
sudo setenforce 0           # modo permissive

AppArmor (Ubuntu, SUSE):

  • Perfiles por aplicación.
  • Más sencillo que SELinux.
sudo aa-status
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox

Concepto clave: incluso si un proceso es comprometido, SELinux/AppArmor limitan el daño que puede hacer.

Guía: Introducción a SELinux: Cómo Asegurar el Acceso en Sistemas Linux

6.6 Políticas de contraseñas

Configurar contraseñas robustas con PAM:

/etc/login.defs:

PASS_MAX_DAYS   90
PASS_MIN_DAYS   7
PASS_MIN_LEN    12
PASS_WARN_AGE   14

/etc/security/pwquality.conf:

minlen = 12
minclass = 3
maxrepeat = 2

Bloquear tras intentos fallidos (pam_faillock):

auth required pam_faillock.so preauth silent deny=5 unlock_time=900

Buenas prácticas:

  • Longitud mínima 12-16 caracteres.
  • Rotación solo ante sospecha.
  • MFA siempre que se pueda.
  • Gestor de contraseñas.

6.7 Auditoría de accesos

Últimos accesos:

last                       # últimos logins
lastlog                    # último login de cada usuario
who                        # usuarios conectados ahora
w                          # qué están haciendo

Intentos fallidos:

sudo lastb
sudo grep "Failed password" /var/log/auth.log

Auditoría con auditd:

sudo auditctl -w /etc/passwd -p wa -k passwd_changes
sudo ausearch -k passwd_changes

7. Gestión de paquetes

7.1 APT (Debian/Ubuntu)

El gestor de paquetes de la familia Debian. Usa paquetes .deb y repositorios definidos en /etc/apt/sources.list y /etc/apt/sources.list.d/.

Comandos básicos:

sudo apt update                    # actualizar índice de paquetes
sudo apt upgrade                   # actualizar paquetes
sudo apt full-upgrade              # actualizar + resolver dependencias
sudo apt install paquete           # instalar
sudo apt remove paquete            # desinstalar
sudo apt purge paquete             # desinstalar + configuración
sudo apt autoremove                # eliminar dependencias huérfanas
sudo apt search término            # buscar
apt show paquete                   # info del paquete
dpkg -l                            # listar paquetes instalados

Añadir repositorio PPA (Ubuntu):

sudo add-apt-repository ppa:usuario/ppa
sudo apt update
sudo apt install paquete

Instalar .deb local:

sudo dpkg -i archivo.deb
sudo apt install -f               # resolver dependencias

7.2 DNF/YUM (Red Hat)

Familia Red Hat: Fedora, RHEL, CentOS, Rocky, AlmaLinux. Usa paquetes .rpm.

sudo dnf check-update
sudo dnf upgrade
sudo dnf install paquete
sudo dnf remove paquete
sudo dnf search término
dnf info paquete
dnf list installed

Añadir repositorio:

sudo dnf config-manager --add-repo URL

7.3 Pacman (Arch)

sudo pacman -Syu                   # actualizar todo (rolling release)
sudo pacman -S paquete             # instalar
sudo pacman -R paquete             # desinstalar
sudo pacman -Rs paquete            # + dependencias
sudo pacman -Ss término            # buscar
sudo pacman -Qs                    # buscar instalados
sudo pacman -Qe                    # explícitamente instalados

AUR (Arch User Repository): con yay o paru:

yay -S paquete_aur

7.4 Zypper (openSUSE)

sudo zypper refresh
sudo zypper update
sudo zypper install paquete
sudo zypper remove paquete
sudo zypper search término

7.5 Snap, Flatpak y AppImage

Formatos universales que funcionan en cualquier distro:

Snap (Canonical):

sudo snap install paquete
sudo snap list
sudo snap remove paquete

Flatpak:

flatpak install flathub paquete
flatpak list
flatpak uninstall paquete

AppImage:

  • Archivo ejecutable portable.
chmod +x archivo.AppImage
./archivo.AppImage

Ventajas:

  • Misma versión en cualquier distro.
  • Sandboxing.
  • Actualizaciones automáticas.

Desventajas:

  • Ocupan más espacio.
  • Arrancan más lento.
  • Menos integración con el sistema.

7.6 Compilar desde código fuente

Cuando no hay paquete disponible:

# 1. Descargar y extraer
wget https://ejemplo.com/programa-1.0.tar.gz
tar -xzvf programa-1.0.tar.gz
cd programa-1.0

# 2. Leer README e INSTALL

# 3. Configurar
./configure --prefix=/usr/local

# 4. Compilar
make -j$(nproc)

# 5. Instalar
sudo make install

Dependencias: normalmente build-essential, cmake, pkg-config.

7.7 Actualizaciones automáticas

Ubuntu/Debian:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Configuración en /etc/apt/apt.conf.d/50unattended-upgrades:

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
};

Fedora:

sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer

Arch: no recomendado automático (rolling release).

7.8 Gestión de repositorios

Problemas comunes: repositorios rotos, claves GPG expiradas, PPAs antiguas.

Guía: Como borrar los repositorios que no funcionan en Ubuntu y Debian

Añadir claves GPG:

wget -qO - https://ejemplo.com/clave.gpg | sudo apt-key add -
# O moderno:
wget -O- https://ejemplo.com/clave.gpg | sudo gpg --dearmor -o /usr/share/keyrings/repo.gpg

7.9 Problemas comunes

«No se puede bloquear /var/lib/dpkg/lock»:

sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a
sudo apt update

Paquete roto:

sudo apt --fix-broken install
sudo dpkg --configure -a

Problemas con pip (Python):
Problemas Comunes al Instalar Librerías con pip

Comparativa entre gestores: Comparativa de Gestores de Paquetes en Linux: apt, pacman, yum y zypper


8. Entornos de escritorio

Linux ofrece algo que Windows y macOS no: puedes elegir tu entorno de escritorio. Si no te gusta cómo se ve tu interfaz, cambias de entorno (o incluso mezclas componentes).

8.1 ¿Qué es un entorno de escritorio?

Un entorno de escritorio (DE) es el conjunto de programas que forman la interfaz gráfica:

  • Gestor de ventanas: cómo se dibujan y gestionan las ventanas.
  • Panel/taskbar: barra de tareas, menús.
  • Gestor de archivos: navegador de archivos.
  • Configuración del sistema: ajustes gráficos.
  • Aplicaciones básicas: terminal, editor, calculadora.

Diferencia importante: el entorno de escritorio es independiente del sistema base. Puedes tener varios instalados y elegir cuál usar al iniciar sesión.

8.2 GNOME

El escritorio por defecto en Ubuntu, Fedora y muchas otras.

Características:

  • Interfaz moderna y minimalista.
  • Enfoque en productividad y flujos de trabajo.
  • Uso intensivo de gestos y atajos.
  • Extensiones para personalizar.

Ventajas:

  • Muy pulido y consistente.
  • Excelente integración con Wayland.
  • Buena accesibilidad.
  • Comunidad grande.

Desventajas:

  • Consume más recursos.
  • Filosofía restrictiva (menos personalizable sin extensiones).
  • Curva de adaptación desde Windows.

Ideal para: usuarios modernos que quieren algo pulido y elegante.

8.3 KDE Plasma

El entorno más personalizable de Linux.

Características:

  • Enorme cantidad de opciones.
  • Aspecto similar a Windows por defecto.
  • Altamente modular.
  • Widgets, temas, efectos.

Ventajas:

  • Personalización casi infinita.
  • Excelente rendimiento (más ligero de lo que parece).
  • Aplicaciones potentes (Dolphin, Konsole, Kate).
  • Actualizaciones frecuentes.

Desventajas:

  • Puede abrumar por tantas opciones.
  • Ocasionalmente bugs por su complejidad.

Ideal para: quienes quieren control total de su escritorio.

8.4 XFCE

El entorno ligero y estable por excelencia.

Características:

  • Consumo mínimo de recursos.
  • Interfaz clásica (tipo Windows XP/7).
  • Muy estable y maduro.

Ventajas:

  • Corre perfectamente en hardware antiguo.
  • Rápido y ligero.
  • Configurable sin excesos.
  • Muy estable.

Desventajas:

  • Aspecto menos moderno.
  • Menos efectos visuales.

Ideal para: hardware antiguo, servidores con GUI, quienes prefieren simplicidad.

8.5 Otros entornos destacados

Cinnamon:

  • Fork de GNOME 2 creado por Linux Mint.
  • Interfaz clásica moderna.
  • Excelente equilibrio entre ligereza y funcionalidad.

MATE:

  • Continuación de GNOME 2.
  • Muy estable, ligero, clásico.

LXQt / LXDE:

  • Ultrarregueros.
  • Perfectos para equipos muy limitados.

Budgie:

  • Moderno y limpio.
  • Usado por Solus y Ubuntu Budgie.

Deepin:

  • Estéticamente espectacular.
  • Popular en China.

Pantheon:

  • El escritorio de elementary OS.
  • Muy elegante, tipo macOS.

Cutefish, UKUI, Trinity: alternativas de nicho.

8.6 Cómo elegir tu entorno

Pregúntate:

  1. ¿Qué hardware tienes? Poca RAM → XFCE, LXQt. Hardware moderno → GNOME, KDE.
  2. ¿Qué te gusta? Minimalista → GNOME. Personalizable → KDE. Clásico → XFCE, Cinnamon.
  3. ¿Qué distro usas? Cada una viene con un DE por defecto.
  4. ¿Necesitas algo específico? Algunos DEs tienen mejor soporte para ciertas tareas.

Recomendaciones rápidas:

PerfilEntorno
Moderno y pulidoGNOME
PersonalizableKDE Plasma
Ligero y estableXFCE
Clásico tipo WindowsCinnamon
Hardware muy antiguoLXQt
EstéticoPantheon, Deepin

Guía comparativa: Entornos de Escritorio en Linux: Comparativa entre KDE, GNOME y Xfce

8.7 Gestores de ventanas (tiling)

Para usuarios avanzados, existen gestores de ventanas tiling que organizan ventanas automáticamente sin superposición:

  • i3 / i3-gaps: el más popular.
  • sway: i3 para Wayland.
  • bspwm: muy configurable.
  • dwm: minimalista, en C.
  • hyprland: Wayland moderno con efectos.
  • awesome: configurable en Lua.

Ventajas: máxima productividad con teclado, cero uso de ratón.

Desventajas: curva de aprendizaje alta, configuración manual.

8.8 Personalización

Linux permite personalizar todo:

  • Temas GTK/Qt: aspecto de aplicaciones.
  • Iconos: Papirus, Numix, Arc.
  • Cursores: Bibata, Adwaita.
  • Fuentes: Inter, Fira Code, JetBrains Mono.
  • Fondos de pantalla: dinámicos, rotativos.
  • Shell: bash, zsh (con Oh My Zsh), fish.
  • Terminal: Alacritty, Kitty, Wezterm, Tilix.

Recursos:

Guía: Cómo Personalizar tu Entorno de Escritorio en Linux: Guía Completa

8.9 Wayland vs X11

El sistema gráfico clásico de Linux es X11 (1987). Su sucesor moderno es Wayland.

X11:

  • Veterano, maduro.
  • Compatible con todo.
  • Inseguro por diseño (cualquier app puede ver el input de otras).
  • Problemas con múltiples monitores y HiDPI.

Wayland:

  • Moderno, más seguro.
  • Mejor soporte de HiDPI y múltiples monitores.
  • Rendimiento superior.
  • Algunos programas aún no funcionan bien (XWayland ayuda).

En 2026:

  • GNOME: Wayland por defecto.
  • KDE: Wayland por defecto desde Plasma 6.
  • Ubuntu: Wayland por defecto.
  • Otros: transición en curso.

Conclusión: si puedes, usa Wayland. Si tienes problemas con alguna aplicación, cambia a X11 desde la pantalla de login.


9. Administración de servidores Linux

Linux domina el mundo de los servidores. Aquí tienes lo esencial para administrar uno como un profesional.

9.1 Instalación y configuración inicial

Elección de la distro:

Primeros pasos tras instalar:

  1. Actualizar el sistema:
sudo apt update && sudo apt full-upgrade -y    # Debian/Ubuntu
sudo dnf upgrade -y                            # RHEL/Fedora
  1. Configurar hostname:
sudo hostnamectl set-hostname servidor01
  1. Configurar zona horaria:
sudo timedatectl set-timezone Europe/Madrid
  1. Crear usuario administrador (no usar root directamente):
sudo adduser admin
sudo usermod -aG sudo admin
  1. Configurar SSH (siguiente apartado).
  2. Configurar firewall:
sudo ufw enable
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
  1. Activar actualizaciones automáticas de seguridad.

Guía de comandos básicos: Gestión de servidores Debian: Comandos básicos

9.2 SSH seguro

SSH es la puerta de entrada a tu servidor. Debe estar blindado.

Buenas prácticas:

  1. Cambiar el puerto (por defecto 22):
sudo nano /etc/ssh/sshd_config
# Port 2222
sudo systemctl restart sshd
  1. Deshabilitar login de root:
PermitRootLogin no
  1. Usar claves SSH en lugar de contraseñas:
# En el cliente:
ssh-keygen -t ed25519 -C "admin@mi-servidor"
ssh-copy-id -p 2222 admin@servidor
  1. Deshabilitar autenticación por contraseña:
PasswordAuthentication no
PubkeyAuthentication yes
  1. Limitar usuarios permitidos:
AllowUsers admin
  1. Configurar fail2ban: Cómo Configurar y Usar Fail2Ban para Proteger tu Servidor Linux
  2. Configurar autenticación de dos factores (Google Authenticator).
  3. Timeout de sesión:
ClientAliveInterval 300
ClientAliveCountMax 2

Cliente SSH:

ssh usuario@servidor.com               # conexión simple
ssh -p 2222 usuario@servidor.com       # puerto personalizado
ssh -i ~/.ssh/clave_privada usuario@servidor.com
scp archivo.txt usuario@servidor:/ruta/    # copiar archivo
rsync -avz carpeta/ usuario@servidor:/ruta/  # sincronizar
ssh -L 8080:localhost:80 usuario@servidor    # túnel local

9.3 Configuración de red estática

En servidores, la IP debe ser estática. Con Netplan (Ubuntu moderno):

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      dhcp4: no
      addresses:
        - 192.168.1.100/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Aplicar:

sudo netplan try
sudo netplan apply

Guía: IP estática en Ubuntu Server 22.04 y actualización a 24.04

9.4 Servicios con systemd

systemd es el sistema de inicio moderno. Gestiona servicios, sockets, timers, targets.

Comandos básicos:

systemctl status nginx             # estado
systemctl start nginx              # arrancar
systemctl stop nginx               # detener
systemctl restart nginx            # reiniciar
systemctl reload nginx             # recargar config
systemctl enable nginx             # activar al arranque
systemctl disable nginx            # desactivar al arranque
systemctl list-units --type=service --state=running
systemctl list-unit-files

Crear un servicio propio:

# /etc/systemd/system/mi-app.service
[Unit]
Description=Mi aplicación
After=network.target

[Service]
Type=simple
User=miapp
WorkingDirectory=/opt/miapp
ExecStart=/opt/miapp/bin/miapp
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

Activar:

sudo systemctl daemon-reload
sudo systemctl enable --now mi-app

journalctl para ver logs de servicios:

journalctl -u nginx
journalctl -u nginx --since "1 hour ago"
journalctl -f                      # seguir en tiempo real
journalctl -p err                  # solo errores

9.5 Logs del sistema

Los logs están en /var/log/:

  • /var/log/syslog (Debian/Ubuntu): log general.
  • /var/log/messages (RHEL): equivalente.
  • /var/log/auth.log: autenticación y sudo.
  • /var/log/kern.log: mensajes del kernel.
  • /var/log/dpkg.log: instalaciones de paquetes.
  • /var/log/nginx/: logs de Nginx.
  • /var/log/apache2/: logs de Apache.

Con journalctl:

journalctl -b                      # desde el último arranque
journalctl --since "2026-01-01"
journalctl -u ssh

Rotación de logs con logrotate (/etc/logrotate.conf).

Centralizar logs: rsyslog, journald remoto, ELK Stack.

Guía: Análisis de registros en Linux: Cómo Detectar Comportamientos Sospechosos

9.6 Tareas programadas

Cron:

crontab -e                         # editar crontab del usuario
sudo crontab -e                    # como root
crontab -l                         # listar

Sintaxis:

* * * * * comando
│ │ │ │ │
│ │ │ │ └── día de la semana (0-7, 0=domingo)
│ │ │ └──── mes (1-12)
│ │ └────── día del mes (1-31)
│ └──────── hora (0-23)
└────────── minuto (0-59)

Ejemplos:

0 3 * * * /ruta/backup.sh                    # diario a las 3:00
*/15 * * * * /ruta/check.sh                  # cada 15 min
0 0 * * 0 /ruta/weekly.sh                    # domingos a medianoche
@reboot /ruta/inicio.sh                      # al arrancar

systemd timers (alternativa moderna):

# /etc/systemd/system/backup.timer
[Unit]
Description=Backup diario

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
sudo systemctl enable --now backup.timer
systemctl list-timers

Guías relacionadas:

9.7 Backups con rsync

rsync es la herramienta estándar de sincronización y backups.

Backup local:

rsync -av --delete /origen/ /destino/

Backup remoto:

rsync -avz -e ssh /origen/ usuario@servidor:/destino/

Opciones clave:

  • -a: archivo (preserva permisos, fechas, symlinks).
  • -v: verboso.
  • -z: compresión.
  • --delete: elimina archivos que ya no están en origen.
  • --exclude: excluir patrones.
  • --dry-run: simular sin ejecutar.

Ejemplo backup automatizado:

#!/bin/bash
FECHA=$(date +%Y-%m-%d)
rsync -avz --delete /var/www/ /backup/www-$FECHA/
tar -czf /backup/www-$FECHA.tar.gz /backup/www-$FECHA/
rm -rf /backup/www-$FECHA/
find /backup -name "*.tar.gz" -mtime +30 -delete

Regla 3-2-1:

  • 3 copias.
  • 2 medios distintos.
  • 1 copia offsite.

Guías:

9.8 Monitorización

Herramientas básicas:

top / htop                         # procesos
free -h                            # RAM
df -h                              # disco
iostat                             # I/O
vmstat                             # memoria y CPU
sar                                # histórico

Herramientas avanzadas:

Guía completa: Las Mejores Herramientas de Monitorización de Servidor

9.9 Optimización de rendimiento

Ajustes comunes:

  1. CPU governor:
sudo cpupower frequency-set -g performance
  1. Swappiness:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
  1. File descriptors:
echo "fs.file-max=100000" | sudo tee -a /etc/sysctl.conf
  1. TCP tuning:
net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
  1. I/O scheduler: para SSD, usar none o mq-deadline.

Guías: Optimización de Rendimiento en Servidores Linux: Guía Completa y Cómo mejorar el rendimiento de tu servidor Linux

9.10 Servicios comunes

Servidor web:

Base de datos:

Correo:

Archivos:

Impresión:


10. Redes en Linux

10.1 Configuración de red

Ver configuración actual:

ip a                               # interfaces
ip r                               # rutas
cat /etc/resolv.conf               # DNS

Configurar DNS:

# Temporal:
sudo resolvectl dns eth0 8.8.8.8

# Permanente con systemd-resolved:
sudo nano /etc/systemd/resolved.conf
# DNS=8.8.8.8 1.1.1.1

Comprobar conectividad:

ping -c 4 8.8.8.8
ping -c 4 google.com
traceroute google.com
mtr google.com

10.2 Firewalls

UFW (Uncomplicated Firewall) — el más fácil:

sudo ufw status verbose
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw delete allow 80/tcp

firewalld (Red Hat, Fedora):

sudo firewall-cmd --state
sudo firewall-cmd --list-all
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --add-port=8080/tcp

nftables (moderno, reemplaza iptables):

sudo nft list ruleset
sudo nft add rule inet filter input tcp dport 22 accept

iptables (clásico):

sudo iptables -L -n -v
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

Guía: Cómo Configurar un Firewall en Linux con UFW y Firewalld y Guía para Instalar y Configurar Firewall en Servidor Debian 11

10.3 VPN

WireGuard (recomendado en 2026):

# Instalación
sudo apt install wireguard

# Generar claves
wg genkey | tee privatekey | wg pubkey > publickey

# Configuración servidor: /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <private_key>

[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.0.0.2/32

Activar:

sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0

OpenVPN: alternativa madura.

Guía: Cómo Montar y Configurar tu Propio Servidor de VPN en Casa: Guía Paso a Paso

10.4 Diagnóstico de red

ping: conectividad básica.
traceroute / mtr: ruta hasta destino.
dig / nslookup / host: consultas DNS.
ss / netstat: puertos y conexiones.
tcpdump: captura de tráfico.

sudo tcpdump -i eth0 -w captura.pcap
sudo tcpdump -i eth0 port 80

nmap: escaneo de red.

nmap -sV 192.168.1.0/24
nmap -p 80,443 servidor.com

Introducción a Nmap: herramienta esencial para escaneo de redes
Comparativa entre Nmap y Zenmap
Cómo comprobar la seguridad de tu red local con Nmap

iftop / nethogs: ver tráfico por conexión/proceso.

10.5 Servidores DNS y DHCP

DNS con Bind9:

sudo apt install bind9
# Configuración en /etc/bind/

DNS con dnsmasq (más simple):

sudo apt install dnsmasq
# Configuración en /etc/dnsmasq.conf

DHCP con isc-dhcp-server o dnsmasq:

sudo apt install isc-dhcp-server

Pi-hole: bloqueador de anuncios a nivel de red. Muy popular en Raspberry Pi.


11. Scripting con Bash

El scripting Bash es una de las habilidades más valiosas en Linux. Te permite automatizar tareas repetitivas, administrar sistemas y crear herramientas personalizadas.

11.1 Estructura de un script

Primer script:

#!/bin/bash
# Script de ejemplo

echo "¡Hola, mundo!"
echo "Fecha actual: $(date)"

Pasos:

  1. Crear archivo: nano script.sh
  2. Dar permisos de ejecución: chmod +x script.sh
  3. Ejecutar: ./script.sh

El shebang (#!/bin/bash):
Indica qué intérprete usar. Opciones comunes:

  • #!/bin/bash (bash)
  • #!/bin/sh (sh, más portable)
  • #!/usr/bin/env python3 (Python)

11.2 Variables

NOMBRE="Veselin"
EDAD=30
FECHA=$(date +%Y-%m-%d)

echo "Hola, $NOMBRE"
echo "Tienes $EDAD años"
echo "Hoy es $FECHA"

Comillas:

  • "$VAR": expande variables.
  • '$VAR': literal, no expande.
  • `comando` o $(comando): ejecuta y captura (preferir $()).

Variables especiales:

  • $0: nombre del script.
  • $1, $2, ...: argumentos.
  • $#: número de argumentos.
  • $@: todos los argumentos.
  • $?: código de salida del último comando.
  • $$: PID del script.
  • $USER: usuario actual.
  • $HOME: directorio home.
  • $PWD: directorio actual.

11.3 Entrada del usuario

read -p "¿Cómo te llamas? " nombre
echo "Hola, $nombre"

read -s -p "Contraseña: " pass
echo ""  # salto de línea

11.4 Condicionales

if [ "$edad" -ge 18 ]; then
    echo "Mayor de edad"
elif [ "$edad" -ge 13 ]; then
    echo "Adolescente"
else
    echo "Niño"
fi

Operadores de comparación:

Números: -eq -ne -lt -le -gt -ge
Strings: = != -z -n
Archivos: -e -f -d -r -w -x

Ejemplos:

if [ -f "/etc/passwd" ]; then
    echo "El archivo existe"
fi

if [ -d "/tmp" ] && [ -w "/tmp" ]; then
    echo "Directorio escribible"
fi

if [ "$USER" != "root" ]; then
    echo "No eres root"
fi

case:

case "$1" in
    start)
        echo "Iniciando..."
        ;;
    stop)
        echo "Deteniendo..."
        ;;
    *)
        echo "Uso: $0 {start|stop}"
        exit 1
        ;;
esac

11.5 Bucles

for:

for i in 1 2 3 4 5; do
    echo "Número: $i"
done

for archivo in *.txt; do
    echo "Procesando $archivo"
done

for i in {1..10}; do
    echo $i
done

for ((i=0; i<10; i++)); do
    echo $i
done

while:

contador=0
while [ $contador -lt 5 ]; do
    echo "Contador: $contador"
    ((contador++))
done

until:

contador=0
until [ $contador -ge 5 ]; do
    echo "Contador: $contador"
    ((contador++))
done

11.6 Funciones

saludar() {
    local nombre="$1"
    echo "Hola, $nombre"
}

saludar "Mundo"
saludar "Linux"

# Con valor de retorno
suma() {
    echo $(($1 + $2))
}

resultado=$(suma 5 3)
echo "Resultado: $resultado"

11.7 Entrada/salida y redirecciones

Redirecciones:

comando > archivo.txt              # sobrescribir
comando >> archivo.txt             # añadir
comando 2> errores.txt             # solo errores
comando &> todo.txt                # stdout + stderr
comando < entrada.txt              # leer de archivo

Pipes:

ps aux | grep nginx
cat access.log | grep "404" | wc -l

/dev/null: descartar salida.

comando > /dev/null 2>&1

tee: guardar y mostrar a la vez.

comando | tee log.txt

11.8 Manejo de errores

#!/bin/bash
set -e              # salir si un comando falla
set -u              # error si variable no definida
set -o pipefail     # error si falla en pipe

# O todo junto:
set -euo pipefail

Comprobar si un comando falló:

if ! comando; then
    echo "Error al ejecutar comando"
    exit 1
fi

Trampa para limpiar al salir:

trap 'rm -f /tmp/tempfile' EXIT

11.9 Ejemplos prácticos

Backup automático:

#!/bin/bash
set -euo pipefail

FECHA=$(date +%Y-%m-%d_%H-%M)
ORIGEN="/var/www"
DESTINO="/backup"
RETENCION=7

# Crear backup
tar -czf "$DESTINO/backup-$FECHA.tar.gz" "$ORIGEN"
echo "Backup creado: backup-$FECHA.tar.gz"

# Limpiar antiguos
find "$DESTINO" -name "backup-*.tar.gz" -mtime +$RETENCION -delete
echo "Backups antiguos eliminados"

Monitor de servicios:

#!/bin/bash

SERVICIOS=("nginx" "mysql" "ssh")

for servicio in "${SERVICIOS[@]}"; do
    if systemctl is-active --quiet "$servicio"; then
        echo "✓ $servicio activo"
    else
        echo "✗ $servicio caído. Reiniciando..."
        sudo systemctl restart "$servicio"
    fi
done

Script de usuario:

#!/bin/bash
# Crear usuarios desde archivo CSV

if [ $# -ne 1 ]; then
    echo "Uso: $0 archivo.csv"
    exit 1
fi

while IFS=',' read -r usuario nombre; do
    if id "$usuario" &>/dev/null; then
        echo "Usuario $usuario ya existe"
    else
        sudo useradd -m -c "$nombre" "$usuario"
        echo "Usuario $usuario creado"
    fi
done < "$1"

Comprobar espacio en disco:

#!/bin/bash

UMBRAL=90

USO=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')

if [ "$USO" -gt "$UMBRAL" ]; then
    echo "⚠️ Disco al $USO%. Enviando alerta..."
    # mail -s "Alerta disco" admin@ejemplo.com <<< "Disco al $USO%"
fi

11.10 Buenas prácticas

  1. Usa set -euo pipefail al inicio.
  2. Comenta secciones complejas.
  3. Valida argumentos al inicio.
  4. Usa variables en lugar de valores hardcoded.
  5. Comprueba comandos antes de ejecutarlos.
  6. Usa shellcheck para validar sintaxis:
sudo apt install shellcheck
shellcheck script.sh
  1. No uses rm -rf sin verificar.
  2. Nombra funciones y variables en claro.

Guías relacionadas:

11.11 Shells alternativos

  • bash: el estándar, con mejor compatibilidad.
  • zsh: muy configurable, con Oh My Zsh. Ideal para interactivo.
  • fish: amigable, con autocompletado inteligente.
  • dash: ultraligero, ideal para scripts simples.

Cambiar shell:

chsh -s /bin/zsh

12. Contenedores y virtualización

La virtualización y los contenedores son dos pilares de la infraestructura moderna. Linux domina ambos campos.

12.1 Máquinas virtuales vs contenedores

Es importante entender la diferencia:

Máquinas virtuales (VMs):

  • Emulan hardware completo.
  • Cada VM tiene su propio kernel y sistema operativo.
  • Más pesadas (GBs por VM).
  • Arranque lento (minutos).
  • Aislamiento total.
  • Hipervisores: KVM, Xen, VMware ESXi, VirtualBox.

Contenedores:

  • Comparten el kernel del host.
  • Cada contenedor incluye solo la aplicación y sus dependencias.
  • Ligeros (MBs por contenedor).
  • Arranque instantáneo (segundos).
  • Aislamiento a nivel de proceso (namespaces + cgroups).
  • Motores: Docker, Podman, containerd.

Regla práctica:

  • VM: cuando necesitas otro SO completo o aislamiento fuerte.
  • Contenedor: cuando necesitas empaquetar y desplegar aplicaciones rápido.

12.2 Docker en Linux

Docker es la herramienta estándar para contenedores. Introducción completa: ¿Qué es Docker?

Instalación en Ubuntu/Debian:

# Repositorio oficial
curl -fsSL https://get.docker.com | sudo sh

# Añadir usuario al grupo docker
sudo usermod -aG docker $USER
newgrp docker

# Verificar
docker run hello-world

Comandos esenciales:

# Imágenes
docker images                       # listar imágenes
docker pull nginx:latest            # descargar imagen
docker rmi imagen_id                # eliminar imagen
docker build -t miapp:1.0 .         # construir desde Dockerfile

# Contenedores
docker ps                           # contenedores activos
docker ps -a                        # todos
docker run -d -p 8080:80 nginx      # ejecutar en background
docker run -it ubuntu bash          # interactivo
docker stop contenedor_id           # detener
docker start contenedor_id          # arrancar
docker rm contenedor_id             # eliminar
docker logs contenedor_id           # ver logs
docker exec -it contenedor_id bash  # shell dentro

# Limpieza
docker system prune -a              # eliminar todo lo no usado

Dockerfile básico:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "app.py"]

Docker Compose para aplicaciones multi-contenedor:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secreto
    volumes:
      - db_data:/var/lib/postgresql/data
volumes:
  db_data:
docker compose up -d
docker compose down
docker compose logs -f

Seguridad en Docker:

  • No ejecutar contenedores como root.
  • Usar imágenes oficiales o escaneadas.
  • Limitar recursos (CPU, RAM).
  • Escanear vulnerabilidades con Trivy.
  • Network policies.

Referencia: Introducción a la Seguridad de Contenedores en Docker y Kubernetes

12.3 Kubernetes

Kubernetes (K8s) es el orquestador de contenedores estándar. Introducción: ¿Qué es Kubernetes?

Conceptos clave:

  • Pod: unidad mínima (1+ contenedores).
  • Deployment: gestión de réplicas.
  • Service: exposición de pods.
  • Ingress: entrada HTTP/HTTPS.
  • ConfigMap / Secret: configuración.
  • Namespace: aislamiento lógico.

Comandos básicos:

kubectl get pods                    # listar pods
kubectl get nodes                   # nodos del cluster
kubectl describe pod nombre         # info detallada
kubectl logs pod                    # logs
kubectl exec -it pod -- bash        # shell dentro
kubectl apply -f manifiesto.yaml    # aplicar configuración
kubectl delete -f manifiesto.yaml

Distribuciones:

  • k3s: ligero, ideal para edge/IoT.
  • MicroK8s: de Canonical, fácil instalación.
  • kubeadm: instalación manual.
  • EKS, GKE, AKS: gestionados en cloud.
  • Talos, Rancher: enterprise.

Comparativa Docker vs Kubernetes: Diferencias y Similitudes entre Docker y Kubernetes

12.4 LXC/LXD

LXC (Linux Containers) son contenedores a nivel de sistema (no de aplicación).

Diferencias con Docker:

  • LXC: contenedores de SO completo (más parecido a VMs).
  • Docker: contenedores de aplicación.

LXD es la interfaz moderna para LXC:

sudo snap install lxd
sudo lxd init

lxc launch ubuntu:24.04 mi-contenedor
lxc list
lxc exec mi-contenedor -- bash
lxc stop mi-contenedor
lxc delete mi-contenedor

Ventajas:

  • Más ligeros que VMs.
  • Aislamiento completo.
  • Ideal para desarrollo y testing.

Guía: Cómo Crear y Administrar Contenedores con LXC en Linux: Guía Completa

12.5 Proxmox VE

Proxmox VE es una plataforma de virtualización open source basada en Debian. Combina KVM (VMs) y LXC (contenedores) con una interfaz web potente.

Características:

  • Interfaz web completa.
  • Gestión de VMs y contenedores.
  • Clustering.
  • Backups integrados.
  • Live migration.

Instalación:

  1. Descargar ISO.
  2. Instalar como cualquier distro.
  3. Acceder por web: https://IP:8006.

Guías:

12.6 Namespaces y cgroups

Los namespaces y cgroups son las tecnologías del kernel que hacen posible los contenedores.

Namespaces: aíslan recursos entre procesos.

  • PID: árbol de procesos.
  • NET: interfaces de red.
  • MNT: puntos de montaje.
  • UTS: hostname.
  • IPC: comunicación inter-proceso.
  • USER: usuarios y permisos.

Cgroups: limitan y miden recursos.

  • CPU.
  • Memoria.
  • I/O de disco.
  • Red.

Ver namespaces de un proceso:

lsns                                # todos los namespaces
ls -l /proc/PID/ns/                 # namespaces de un PID

Guía: Qué son las namespaces en Linux y cómo mejoran la seguridad

12.7 Cuándo usar cada tecnología

NecesidadSolución
Ejecutar una app aisladaDocker
Orquestar múltiples contenedoresKubernetes
Simular un SO completoVM (KVM, VirtualBox)
Entorno de desarrollo ligeroLXC
Plataforma de virtualización completaProxmox VE
Aplicaciones legacy en contenedorLXC
Microservicios en producciónKubernetes

13. Seguridad en Linux

Linux es intrínsecamente más seguro que otros sistemas, pero no es invulnerable. Un servidor mal configurado es un imán para atacantes.

13.1 Hardening básico

Checklist de hardening:

  1. Actualizaciones automáticas de seguridad.
  2. Usuario root deshabilitado (usar sudo).
  3. SSH endurecido: puerto no estándar, claves, no root.
  4. Firewall activo: solo puertos necesarios.
  5. Fail2ban contra fuerza bruta.
  6. SELinux/AppArmor activados.
  7. Servicios mínimos: desactivar todo lo que no uses.
  8. Kernel actualizado.
  9. Logs centralizados.
  10. Backups automáticos.

Lynis: herramienta de auditoría.

sudo apt install lynis
sudo lynis audit system

Te da una puntuación y sugerencias concretas.

OpenSCAP: cumplimiento de estándares (CIS, PCI-DSS).

13.2 Cifrado de disco

LUKS (Linux Unified Key Setup) es el estándar para cifrado de disco.

Cifrado completo al instalar: la mayoría de instaladores lo ofrecen.

Cifrado de una partición existente:

sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup luksOpen /dev/sdb1 disco_cifrado
sudo mkfs.ext4 /dev/mapper/disco_cifrado
sudo mount /dev/mapper/disco_cifrado /mnt/cifrado

Cifrado de archivos individuales con GPG:

gpg -c archivo.txt                  # cifrar
gpg archivo.txt.gpg                 # descifrar

Cifrado de directorios con gocryptfs o encfs.

Guía: Cómo Cifrar tu Disco Duro en Linux para Mayor Seguridad

13.3 Gestión de parches

Actualizar solo seguridad (Debian/Ubuntu):

sudo unattended-upgrade -d

Configurar actualizaciones automáticas:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Comprobar CVEs de paquetes instalados:

  • Debsecan (Debian).
  • Ubuntu Security Notices.
  • NVD (National Vulnerability Database).

Kernel Livepatch (Ubuntu Pro) para aplicar parches sin reiniciar.

13.4 Análisis de logs

Los logs son tu mejor fuente de información sobre intentos de ataque.

Ubicaciones:

  • /var/log/auth.log: autenticación.
  • /var/log/syslog: sistema.
  • /var/log/kern.log: kernel.
  • /var/log/nginx/access.log: accesos web.

Buscar intentos de login fallidos:

sudo grep "Failed password" /var/log/auth.log
sudo grep "Invalid user" /var/log/auth.log

Top IPs atacantes:

sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head

Herramientas:

  • Logwatch: resumen diario por email.
  • GoAccess: análisis de logs web en tiempo real.
  • journalctl: logs del sistema systemd.
  • Fail2ban: bloqueo automático.

Guía: Análisis de registros en Linux: Cómo Detectar Comportamientos Sospechosos

13.5 Detección de rootkits y malware

Rootkits: software malicioso que oculta su presencia.

Herramientas:

  • rkhunter: busca rootkits.
  • chkrootkit: alternativa.
  • ClamAV: antivirus open source.
  • Lynis: auditoría general.
sudo apt install rkhunter chkrootkit clamav
sudo rkhunter --check
sudo chkrootkit
sudo freshclam && sudo clamscan -r /home

Verificación de integridad:

  • AIDE: detecta cambios en archivos críticos.
  • Tripwire: alternativa comercial.
sudo apt install aide
sudo aideinit
sudo aide --check

13.6 Forense básico

Cuando sospechas de un compromiso:

1. Aislar el sistema (desconectar de red).

2. Preservar evidencia:

# Copia bit a bit del disco
sudo dd if=/dev/sda of=/mnt/externo/imagen.dd bs=4M conv=noerror,sync

3. Analizar procesos:

ps auxf                             # árbol de procesos
sudo lsof -i                        # conexiones abiertas
sudo lsof -p PID                    # archivos abiertos por proceso

4. Ver conexiones:

ss -tulpn
sudo netstat -antp

5. Ver persistencia:

  • /etc/cron*
  • /etc/systemd/system/
  • ~/.bashrc, ~/.profile
  • /etc/rc.local
  • Systemd user services.

6. Analizar logs:

journalctl --since "2026-01-01"

Guías:

13.7 Amenazas específicas en Linux

Aunque Linux es más seguro por diseño, existen amenazas:

  • Servidores SSH mal configurados: atacados 24/7 por bots.
  • Aplicaciones web vulnerables: WordPress, Joomla, PHP.
  • Contenedores mal configurados.
  • Cryptojacking: minar criptomonedas con tu CPU.
  • Ransomware específico: aunque menos común, existe.
  • Ataques a la cadena de suministro: paquetes maliciosos en repos.

Referencia: Aumento de Amenazas Cibernéticas en Linux y Cómo Combatirlas

13.8 Buenas prácticas de seguridad

  1. Mínimo privilegio: nadie debe tener más permisos de los que necesita.
  2. Autenticación multifactor siempre que sea posible.
  3. Contraseñas robustas y gestor.
  4. Backups cifrados y probados.
  5. Segmentación de red.
  6. Monitorización continua.
  7. Plan de respuesta a incidentes.
  8. Formación del equipo.
  9. Auditorías periódicas.
  10. Actualizaciones disciplinadas.

Guía: Guía Completa de Ciberseguridad 2026: Protege tu Empresa, tu Red y tus Datos

13.9 Herramientas de seguridad para Linux

  • Firewall: ufw, firewalld, nftables.
  • IDS/IPS: Suricata, Snort, Zeek.
  • SIEM: Wazuh, ELK.
  • Escaneo: Nmap, OpenVAS, Nikto.
  • Hacking: Metasploit, Burp Suite.
  • Antivirus: ClamAV.
  • Rootkit: rkhunter, chkrootkit.
  • Integridad: AIDE, Tripwire.
  • Auditoría: Lynis, OpenSCAP.
  • Cifrado: LUKS, GPG.

Guía: Cómo instalar herramientas de ciberseguridad en Debian 12: Guía completa


14. Linux en el mundo real

Linux no es solo un sistema operativo: es la infraestructura sobre la que funciona internet. Aquí tienes los principales escenarios.

14.1 Linux en servidores web

El 96% de los servidores web del mundo funcionan con Linux (según W3Techs). Razones:

  • Estabilidad extrema (uptime de años).
  • Rendimiento superior bajo carga.
  • Seguridad robusta.
  • Coste cero de licencias.
  • Escalabilidad.
  • Ecosistema de herramientas.

Stack típico:

  • LAMP: Linux + Apache + MySQL + PHP.
  • LEMP: Linux + Nginx + MySQL + PHP.
  • MERN/MEAN: con Node.js.

Guías:

14.2 Linux en la nube

Todos los grandes proveedores cloud basan su infraestructura en Linux:

  • AWS: EC2 con Amazon Linux, Ubuntu, Debian.
  • Azure: VMs Linux, AKS (Kubernetes).
  • Google Cloud: Compute Engine, GKE.
  • Oracle Cloud.
  • DigitalOcean, Linode, Vultr.

Ventajas:

  • Flexibilidad.
  • Escalabilidad.
  • Costes optimizados.
  • Amplia oferta de distros.

14.3 Linux en móviles (Android)

Android está basado en el kernel Linux. Sus componentes:

  • Kernel Linux modificado.
  • Runtime ART (Android Runtime).
  • Librerías propias.
  • Framework de aplicaciones.

Con más de 3.000 millones de dispositivos activos, Android es la mayor distribución Linux del mundo.

Otros móviles Linux:

  • Ubuntu Touch.
  • postmarketOS.
  • PinePhone, Librem 5.

14.4 Linux en IoT y Raspberry Pi

Linux es el sistema dominante en IoT:

  • Raspberry Pi OS (Debian adaptado).
  • Ubuntu Core.
  • Yocto Project para embebidos.
  • OpenWrt para routers.

Raspberry Pi ha democratizado la electrónica y el IoT:

Guías:

14.5 Linux en supercomputadoras

El 100% de las top 500 supercomputadoras usan Linux. Ejemplos:

  • Frontier (Oak Ridge, EE.UU.): primera en superar 1 exaFLOPS.
  • Fugaku (Japón).
  • LUMI (Finlandia).
  • MareNostrum (Barcelona).

Razones:

  • Escalabilidad masiva.
  • Rendimiento.
  • Personalización.
  • Coste.

14.6 Linux en el espacio

Linux está en el espacio:

  • Estación Espacial Internacional: usa Linux en múltiples sistemas.
  • Robots Curiosity y Perseverance: basados en Linux (VxWorks + Linux).
  • Falcon 9 de SpaceX: sistema de vuelo con Linux.
  • Satélites: muchos usan Linux.
  • Drones: ArduPilot, PX4.

Referencia: El Asistente con IA en la ISS cumple su primera jornada laboral de 90 minutos

14.7 Linux en el escritorio

Aunque el escritorio sigue dominado por Windows y macOS, Linux tiene una cuota creciente:

  • ~4-5% de cuota global en escritorio (2026).
  • Mucho mayor en desarrollo y ciencia.
  • Estándar en universidades técnicas.
  • Creciendo en gaming (Steam Deck + Proton).

Perfiles típicos:

  • Desarrolladores.
  • Administradores de sistemas.
  • Científicos e investigadores.
  • Usuarios preocupados por privacidad.
  • Entusiastas de la tecnología.

14.8 Linux en empresas

Grandes empresas usan Linux masivamente:

  • Google: servidores, Android, Chrome OS.
  • Facebook/Meta: infraestructura completa.
  • Amazon: AWS + servidores.
  • Netflix: streaming en servidores Linux.
  • Twitter/X, Reddit, Wikipedia.
  • Bancos, aseguradoras, gobiernos.

Razones:

  • Coste.
  • Flexibilidad.
  • Seguridad.
  • Personalización.
  • Soporte (Red Hat, SUSE, Canonical).

14.9 Linux en el desarrollo de software

Linux es el sistema preferido de los desarrolladores:

  • Mejor soporte de herramientas (Docker, Kubernetes, compiladores).
  • Terminal potente.
  • Control total del entorno.
  • Sistemas de archivos rápidos.
  • Gestión de paquetes.
  • Ideal para servidores.

Stacks típicos:

  • Python, Node.js, Go, Rust, Ruby.
  • Bases de datos: PostgreSQL, MySQL, MongoDB, Redis.
  • Contenedores y orquestación.

Referencias:

  • [ENLACE: /linux-para-desarrolladores-entorno-de-desarrollo/]
  • [ENLACE: /sistema-linux-para-el-desarrollo-web/]

14.10 Linux en ciberseguridad

Prácticamente todas las herramientas de seguridad son Linux-first:

  • Kali, Parrot, BlackArch para pentesting.
  • Wireshark, Nmap, Metasploit.
  • Análisis forense.
  • Respuesta a incidentes.

Referencias:

  • [ENLACE: /guia-completa-kali-linux/]
  • [ENLACE: /guia-completa-de-ethical-hacking-para-principiantes/]
  • [ENLACE: /mejores-herramientas-de-hacking-2026/]

15. Aprender Linux: rutas y recursos {#aprender}

15.1 Ruta para principiantes (0-3 meses)

Mes 1: Fundamentos

  • Instala Linux en VM o dual boot.
  • Familiarízate con el escritorio.
  • Aprende comandos básicos: ls, cd, cp, mv, rm, mkdir.
  • Configura tu entorno.

Mes 2: Terminal y sistema

  • Dominar grep, find, sed, awk.
  • Entender permisos y usuarios.
  • Gestión de paquetes.
  • Editor de texto (nano, vim).

Mes 3: Administración básica

  • Servicios con systemd.
  • Logs.
  • Redes básicas.
  • Scripts Bash simples.

Recursos:

  • Linux Journey: https://linuxjourney.com/
  • The Linux Command Line (William Shotts, gratis).
  • Curso de Linux en YouTube (Píldoras Informáticas, Pelado Nerd).

15.2 Ruta para administradores de sistemas (3-12 meses)

Fase 1: Profundizar (meses 3-6)

  • Networking avanzado.
  • Servicios: web, DNS, DHCP, correo.
  • Seguridad básica.
  • Backups y monitorización.

Fase 2: Automatización (meses 6-9)

  • Bash avanzado.
  • Python para administración.
  • Ansible.
  • Terraform.

Fase 3: Contenedores y cloud (meses 9-12)

  • Docker.
  • Kubernetes.
  • Cloud (AWS, Azure, GCP).
  • CI/CD.

Certificaciones:

  • LPIC-1 (Linux Professional Institute).
  • RHCSA (Red Hat).
  • CompTIA Linux+.
  • RHCE (avanzado).

15.3 Ruta para desarrolladores

Enfoque:

  • Terminal potente.
  • Git y control de versiones.
  • Docker para entornos aislados.
  • Editores (VSCode, Neovim).
  • Configuración de dotfiles.
  • Automatización de tareas.

Recursos:

  • [ENLACE: /linux-para-desarrolladores-entorno-de-desarrollo/]
  • [ENLACE: /sistema-linux-para-el-desarrollo-web/]
  • [ENLACE: /guia-basica-para-usar-tmux-multiplexa-tu-terminal-como-un-profesional/]

15.4 Ruta para hackers éticos

Fase 1: Fundamentos Linux + redes + programación.
Fase 2: Kali Linux y herramientas.
Fase 3: Plataformas de práctica.
Fase 4: Certificaciones.

Recursos:

  • [ENLACE: /guia-completa-de-ethical-hacking-para-principiantes/]
  • [ENLACE: /guia-completa-kali-linux/]
  • [ENLACE: /platforms-to-practice-pentesting/]
  • [ENLACE: /mi-laboratorio-de-ciberseguridad-profesional-con-proxmox-y-pfsense-guia-paso-a-paso-2026/]

Certificaciones:

  • CompTIA Security+.
  • CEH.
  • OSCP.
  • CISSP.

15.5 Certificaciones Linux

CertificaciónNivelOrientación
Linux Essentials (LPI)PrincipianteFundamentos
LPIC-1IntermedioAdministración básica
LPIC-2AvanzadoAdministración de redes
LPIC-3ExpertoEspecialización
CompTIA Linux+IntermedioAdministrador junior
RHCSAIntermedioRed Hat
RHCEAvanzadoRed Hat avanzado

15.6 Recursos gratuitos

  • The Linux Command Line (libro).
  • Linux Journey (web interactiva).
  • Linux From Scratch (construir tu propia distro).
  • Arch Wiki (la mejor documentación de Linux).
  • YouTube: Pelado Nerd, Píldoras Informáticas, DistroTube.
  • Reddit: r/linux, r/linuxquestions, r/linuxadmin.
  • Foros: Stack Overflow, Ask Ubuntu, Unix StackExchange.

15.7 Práctica: laboratorios y VMs

La mejor manera de aprender es practicando:

  1. Instala Linux en VM (VirtualBox, VMware, Proxmox).
  2. Monta un laboratorio casero con Proxmox.
  3. Practica en plataformas online (TryHackMe, HackTheBox).
  4. Contribuye a open source.
  5. Automatiza tus tareas diarias.
  6. Rompe cosas y arréglalas (backup antes).

Guía para montar tu laboratorio:
[ENLACE: /mi-laboratorio-de-ciberseguridad-profesional-con-proxmox-y-pfsense-guia-paso-a-paso-2026/]

15.8 Errores comunes al aprender Linux

  1. Instalar directamente en el PC principal sin backup.
  2. Copiar y pegar comandos sin entenderlos.
  3. No practicar (solo ver vídeos).
  4. Rendirse en el primer error.
  5. No leer los mensajes de error.
  6. No usar el manual (man).
  7. No participar en comunidades.
  8. No automatizar tareas.
  9. No documentar lo aprendido.
  10. No romper cosas (es la mejor forma de aprender).

15.9 Consejos finales

  • Usa Linux a diario. Solo así se interioriza.
  • Aprende a leer documentación.
  • Practica en VM antes de producción.
  • Documenta tus configuraciones.
  • Únete a comunidades.
  • Aprende haciendo.
  • No tengas miedo a romper cosas.
  • Sé curioso.

16. Conclusión {#conclusion}

Linux ha pasado de ser un proyecto personal de un estudiante finlandés a convertirse en la infraestructura invisible del mundo digital. Está en el 96% de los servidores web, en el 100% de las supercomputadoras, en tu móvil Android, en tu router, en los satélites que orbitan la Tierra y en la Estación Espacial Internacional. Y todo ello siendo gratuito, open source y accesible para cualquiera.

Pero lo más importante es que Linux es tu sistema operativo también. Puedes instalarlo hoy en tu ordenador, recuperar hardware antiguo, montar tu propio servidor, aprender a administrar sistemas, automatizar tareas o dar tus primeros pasos en ciberseguridad. Todo sin coste y con una comunidad mundial dispuesta a ayudar.

Los 10 puntos clave de esta guía

  1. Linux es el kernel, no el sistema completo. GNU/Linux es el conjunto.
  2. Existen más de 600 distribuciones, pero con conocer 4-5 familias tienes suficiente.
  3. La instalación es sencilla en 2026, incluso en dual boot con Windows.
  4. La terminal es tu mejor herramienta: más rápida y potente que cualquier GUI.
  5. El sistema de archivos FHS tiene lógica y una vez lo entiendes, todo encaja.
  6. Los permisos y usuarios son la base de la seguridad de Linux.
  7. Cada familia tiene su gestor de paquetes, pero el concepto es el mismo.
  8. La administración de servidores gira en torno a SSH, systemd, logs y backups.
  9. Bash y los contenedores son las dos habilidades más demandadas.
  10. La seguridad no es opcional: hardening, cifrado, monitorización y respuesta a incidentes.

Próximos pasos

Según tu perfil, esto es lo que te recomiendo hacer ahora:

Si eres principiante:

  1. Instala Linux Mint o Ubuntu en una VM (VirtualBox).
  2. Practica los 20 comandos básicos durante una semana.
  3. Lee el libro «The Linux Command Line» (gratis).
  4. Configura tu entorno poco a poco.

Si ya usas Linux:

  1. Monta un servidor casero con Debian o Ubuntu Server.
  2. Aprende systemd, cron y rsync a fondo.
  3. Configura un firewall y fail2ban.
  4. Empieza con scripts Bash.

Si eres desarrollador:

  1. Configura tu entorno de desarrollo completo en Linux.
  2. Domina tmux, git y Docker.
  3. Automatiza tus tareas repetitivas con Bash.
  4. Explora contenedores y Kubernetes.

Si quieres orientarte a servidores:

  1. Aprende administración avanzada.
  2. Practica con Proxmox y contenedores.
  3. Estudia para LPIC-1 o RHCSA.
  4. Monta tu propio laboratorio.

Si te interesa la ciberseguridad:

  1. Instala Kali Linux en VM.
  2. Practica en TryHackMe y HackTheBox.
  3. Aprende Nmap, Wireshark y Metasploit.
  4. Lee nuestra [ENLACE: /guia-completa-de-ethical-hacking-para-principiantes/].

Reflexión final

Linux no es solo un sistema operativo: es una filosofía basada en la libertad, la colaboración y el conocimiento compartido. Aprender Linux no es memorizar comandos: es entender cómo funcionan los sistemas, cómo se comunican, cómo se aseguran y cómo se automatizan.

En un mundo cada vez más dependiente de la tecnología, saber Linux te da una ventaja enorme: entiendes la infraestructura sobre la que funciona todo. Y esa comprensión te abre puertas en desarrollo, administración, ciberseguridad, cloud, IoT y prácticamente cualquier disciplina técnica.

Así que no lo dudes: instala Linux, rompe cosas, arréglalas, aprende. La comunidad te espera con los brazos abiertos.


17. Preguntas frecuentes sobre Linux {#faq}

17.1 ¿Qué es Linux y en qué se diferencia de Windows o macOS?

Linux es un kernel de sistema operativo creado por Linus Torvalds en 1991, liberado bajo licencia GPL. Junto con herramientas del proyecto GNU forma el sistema operativo GNU/Linux, comúnmente llamado «Linux».

Diferencias clave:

  • Código abierto: el código fuente es público y modificable.
  • Gratuito: la mayoría de distribuciones no cuestan nada.
  • Personalizable: puedes modificar absolutamente todo.
  • Seguridad: arquitectura de permisos robusta y menos malware.
  • Estabilidad: servidores funcionan durante años sin reiniciar.
  • Sin telemetría forzada: no envía datos sin tu consentimiento.

Semejanzas: en 2026, usar Ubuntu o Linux Mint es tan fácil como usar Windows para tareas cotidianas (navegar, ofimática, multimedia).

17.2 ¿Cuál es la mejor distribución para principiantes?

Depende de tu perfil, pero las más recomendadas son:

  • Linux Mint: la más amigable, especialmente si vienes de Windows.
  • Ubuntu: la más popular, enorme comunidad y soporte.
  • Pop!_OS: excelente para desarrollo y gaming.
  • Zorin OS: diseñada para ex-usuarios de Windows.
  • Fedora: innovadora, con software reciente.

Mi recomendación: empieza por Linux Mint o Ubuntu. Cuando tengas experiencia, explora otras.

Si dudas entre Debian y Ubuntu, consulta [ENLACE: /debian-o-ubuntu-en-2023-que-sistema-operativo-linux-es-mejor-para-ti/].

17.3 ¿Es seguro Linux?

Sí, Linux es intrínsecamente más seguro que otros sistemas, por varias razones:

  • Arquitectura de permisos: usuarios sin privilegios no pueden modificar el sistema.
  • Menos malware: la cuota de escritorio es baja, por lo que hay menos malware dirigido.
  • Repositorios oficiales: el software viene verificado.
  • Código abierto: cualquiera puede auditar vulnerabilidades.
  • Actualizaciones rápidas: los parches llegan en horas.
  • Aislamiento: contenedores y namespaces.

Pero no es invulnerable. Un servidor mal configurado puede ser comprometido. Requiere:

  • Firewall activo.
  • SSH endurecido.
  • Actualizaciones al día.
  • Contraseñas robustas.
  • MFA.
  • Monitorización.

17.4 ¿Puedo usar Linux para gaming?

Sí, cada vez más. En 2026, la situación ha mejorado muchísimo:

  • Steam Proton: ejecuta la mayoría de juegos de Windows.
  • Steam Deck: consola con Linux que ha impulsado el gaming.
  • NVIDIA y AMD ofrecen buenos drivers.
  • Anti-cheats: muchos ya funcionan (EAC, BattlEye con soporte).
  • Distros gaming: Pop!_OS, Nobara, Garuda, SteamOS.

Juegos nativos: hay catálogo creciente (Cyberpunk 2077, Elden Ring, etc.).

Limitaciones: algunos juegos con anti-cheat estricto (Valorant, Fortnite) aún no funcionan. Pero el panorama mejora cada año.

Guía: [ENLACE: /como-optimizar-el-rendimiento-de-tu-sistema-linux-para-gaming-guia-completa/] y [ENLACE: /guia-completa-sobre-como-instalar-steam-en-linux/]

17.5 ¿Cómo aprendo a usar la terminal?

Práctica diaria y progresiva:

Semana 1: navegación básica (pwd, ls, cd).
Semana 2: archivos (cp, mv, rm, mkdir).
Semana 3: búsqueda (grep, find, locate).
Semana 4: permisos (chmod, chown).
Mes 2: procesos, redes, edición de texto (vim/nano).
Mes 3: scripting Bash.

Consejos:

  • Usa la terminal para todo lo que puedas.
  • Lee el manual (man comando).
  • Practica en VM sin miedo.
  • Sigue tutoriales interactivos (Linux Journey, OverTheWire).
  • Documenta tus comandos frecuentes como alias.

Libro recomendado: «The Linux Command Line» de William Shotts (gratis online).

17.6 ¿Linux es gratis?

El kernel y la mayoría de distribuciones son totalmente gratuitos. Puedes:

  • Descargarlas libremente.
  • Instalarlas en todos los equipos que quieras.
  • Modificarlas y redistribuirlas (según licencia GPL).
  • Usarlas comercialmente sin pagar.

Pero existen versiones de pago con soporte empresarial:

  • Red Hat Enterprise Linux (RHEL).
  • SUSE Linux Enterprise.
  • Ubuntu Pro.

También hay servicios de pago que puedes querer:

  • Soporte técnico.
  • Formación.
  • Certificaciones.
  • Servidores gestionados.

Para uso personal: no necesitas pagar nada.

17.7 ¿Puedo instalar Linux junto a Windows?

Sí, es lo que se llama dual boot. Ambos sistemas conviven en el mismo disco y eliges cuál arrancar.

Pasos generales:

  1. Backup completo.
  2. Desfragmenta Windows.
  3. Libera espacio (mínimo 30 GB).
  4. Desactiva Fast Startup en Windows.
  5. Desactiva Secure Boot en la BIOS.
  6. Instala Linux eligiendo «Instalar junto a Windows».
  7. GRUB gestiona el arranque.

Consejo: instala Windows primero, Linux después.

Alternativa: instala Linux en un disco externo o en una VM.

17.8 ¿Qué es GNU/Linux?

GNU es un proyecto iniciado por Richard Stallman en 1983 para crear un sistema operativo libre tipo Unix. Desarrollaron las herramientas esenciales (compilador GCC, editor Emacs, shell Bash…), pero les faltaba un kernel.

Linux (1991) fue ese kernel. Al combinarlos, nace GNU/Linux:

  • Kernel: Linux.
  • Herramientas: GNU.
  • Aplicaciones: diversas.

Por eso, técnicamente el sistema es GNU/Linux. Coloquialmente se dice «Linux».

Guía: [ENLACE: /gnu-linux/]

17.9 ¿Cómo me convierto en administrador de sistemas Linux?

Ruta recomendada:

Fase 1: Fundamentos (6 meses)

  • Comandos, permisos, usuarios.
  • Gestión de paquetes.
  • Procesos, redes básicas.
  • Editores de texto.

Fase 2: Administración (6-12 meses)

  • Servicios web, DNS, DHCP, correo.
  • Systemd avanzado.
  • Monitorización.
  • Backups y recuperación.
  • Bash scripting.

Fase 3: Especialización (12+ meses)

  • Contenedores (Docker, Kubernetes).
  • Cloud (AWS, Azure, GCP).
  • Automatización (Ansible, Terraform).
  • Seguridad.

Certificaciones útiles:

  • LPIC-1 (entrada).
  • RHCSA (Red Hat).
  • CompTIA Linux+.
  • RHCE (avanzado).

Práctica: monta tu propio laboratorio con Proxmox. [ENLACE: /mi-laboratorio-de-ciberseguridad-profesional-con-proxmox-y-pfsense-guia-paso-a-paso-2026/]

17.10 ¿Linux sirve para diseño gráfico o edición de vídeo?

Sí, cada vez más. Alternativas profesionales:

Diseño gráfico:

  • GIMP: alternativa a Photoshop.
  • Inkscape: alternativa a Illustrator.
  • Krita: pintura digital.
  • Blender: 3D y VFX.

Edición de vídeo:

  • DaVinci Resolve (versión Linux gratuita).
  • Kdenlive.
  • Shotcut.
  • OpenShot.

Diseño UX/UI:

  • Figma (web).
  • Penpot (open source).

Limitaciones:

  • Adobe Creative Suite no está para Linux.
  • Algunas herramientas profesionales solo para Windows/macOS.

Consejo: si trabajas profesionalmente con Adobe, Linux puede no ser tu opción principal. Si trabajas con alternativas, Linux funciona perfectamente.

17.11 ¿Qué es un kernel y por qué importa?

El kernel es el núcleo del sistema operativo. Es la capa que se comunica directamente con el hardware y gestiona:

  • Procesos: qué se ejecuta, cuándo y con qué prioridad.
  • Memoria: asignación de RAM y swap.
  • Sistema de archivos: lectura/escritura en discos.
  • Dispositivos: drivers.
  • Red: pila TCP/IP.
  • Seguridad: permisos, namespaces, cgroups.

Por qué importa:

  • Su rendimiento afecta a todo el sistema.
  • Su seguridad es la base de la seguridad del sistema.
  • Sus actualizaciones requieren reinicio (a menos que uses Livepatch).
  • Sus versiones (LTS vs mainline) determinan soporte y estabilidad.

Comprobar tu versión:

bash

uname -r

17.12 ¿Cuánto tiempo lleva aprender Linux?

Depende del nivel que quieras alcanzar:

NivelTiempo
Usuario básico1-2 semanas
Usuario cómodo con terminal1-3 meses
Administrador junior6-12 meses
Administrador senior2-4 años
Experto / especialista5+ años

Factores que influyen:

  • Horas diarias de práctica.
  • Base previa (redes, programación).
  • Método de aprendizaje (curso, autodidacta).
  • Objetivo (servidor, escritorio, ciberseguridad).

Clave: constancia. 1 hora al día durante 6 meses vale más que 40 horas una semana y parar.

Deja un comentario