Ruta

Cómo aprender Linux desde cero: plan desde el primer comando hasta la administración de un servidor

Actualizado: · Skillaria.Top

Para aprender Linux desde cero lo más eficaz es avanzar por capas: primero la terminal y el sistema de archivos, luego usuarios y permisos, scripts bash, paquetes, procesos y systemd, y después discos, registros, red, SSH y seguridad del servidor. Cada etapa requiere práctica en una máquina virtual propia o un VPS económico; el objetivo final es un servidor montado y protegido por usted mismo, con un servicio funcionando.

Aprender Linux desde cero es más sencillo de lo que parece si se sigue el orden correcto y se practica desde el principio. El error más común de los principiantes es leer sobre comandos sin escribirlos, o saltar directamente a Docker y Kubernetes sin entender qué es un proceso ni para qué sirven los permisos. A continuación se presenta un plan de nueve etapas: qué estudiar, qué practicar y cómo saber que una etapa está superada.

Como referencia aproximada, cuente con dos o cuatro meses dedicando una hora al día, aunque el ritmo varía de una persona a otra. Más importante que la velocidad es que, al terminar cada etapa, pueda hacer algo concreto con sus propias manos.

Etapa 0. Prepare su entorno de práctica

Linux se aprende en Linux. Las opciones, de la más sencilla a la más realista:

  • WSL2 en Windows — una terminal Ubuntu en pocos minutos. Sirve bien para comandos y scripts, pero systemd y la red no se comportan como en un servidor real.
  • Máquina virtual (VirtualBox, VMware, UTM en Mac) con Ubuntu Server o Debian. Puede romper cosas sin consecuencias y volver a las instantáneas.
  • Un VPS económico de un proveedor de nube. Un servidor real con IP pública es el mejor campo de pruebas para las etapas de red y seguridad.

Para empezar, elija Ubuntu Server o Debian: son las distribuciones con más documentación y con más respuestas a las preguntas. No necesita un escritorio gráfico: los servidores se administran desde la terminal, así que acostúmbrese a ella desde el primer día.

Etapa 1. Terminal y sistema de archivos

El objetivo es moverse por el sistema y trabajar con archivos sin usar el ratón.

  • Navegación: pwd, ls -la, cd, rutas absolutas y relativas, ~, . y ...
  • Archivos: cp, mv, rm, mkdir -p, touch, visualización con cat, less, head, tail -f.
  • Búsqueda: find, which, locate.
  • Ayuda: man, --help. Saber leer las páginas de manual es una habilidad que rinde toda la vida.
  • Estructura de directorios: qué hay en /etc, /var/log, /home, /usr, /proc, /dev; qué son el montaje y los inodos.
  • Un editor de texto en la terminal: nano al principio, y después los comandos básicos de vim, que está en casi todos los servidores.

Práctica: busque todos los archivos .conf de /etc modificados en la última semana (find /etc -name "*.conf" -mtime -7). Abra /etc/os-release y averigüe la versión de su sistema. Mire qué escribe el sistema en /var/log.

Etapa 2. Usuarios, grupos y permisos

Los permisos son la base de la seguridad en Linux y el origen de la mitad de los errores «Permission denied».

  • Leer la salida de ls -l: tipo, permisos, propietario, grupo.
  • chmod en forma simbólica y numérica, chown, umask.
  • Bits especiales: SUID, SGID, sticky bit — y por qué /tmp es escribible por todos, pero allí no se pueden borrar archivos ajenos.
  • Usuarios y grupos: useradd, usermod -aG, passwd, los archivos /etc/passwd, /etc/shadow, /etc/group.
  • sudo, las reglas de sudoers y su edición mediante visudo.

Práctica: cree dos usuarios y una carpeta de proyecto compartida en la que ambos puedan crear archivos, mientras que los demás no vean nada. Pista: un grupo, chmod 2770 y SGID para heredar el grupo.

Etapa 3. Bash y utilidades de texto

La administración consiste en buena parte en procesar texto: registros, configuraciones, salidas de comandos. En esta etapa la terminal deja de ser un conjunto de comandos y se convierte en una herramienta.

  • Redirecciones y tuberías: >, >>, 2>&1, |, xargs.
  • Filtros: grep (con expresiones regulares), sort, uniq -c, wc, cut, sed, awk.
  • JSON y HTTP desde la consola: curl y jq.
  • Scripts: shebang, variables, comillas, condiciones if y [[ ]], bucles, funciones, códigos de salida, set -euo pipefail.

Práctica: con una sola línea, cuente las diez direcciones IP con más peticiones en el registro de un servidor web:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Después escriba un script que haga una copia de un directorio en un archivo con la fecha en el nombre, borre las copias de más de siete días y devuelva un código distinto de cero si hay un error.

Etapa 4. Paquetes, entorno y planificador

  • Gestor de paquetes: apt update, apt install, apt remove, apt search, dpkg -l. En sistemas tipo RHEL — dnf. Entienda qué es un repositorio y para qué sirven las claves de firma.
  • Variables de entorno: env, export, PATH, los archivos ~/.bashrc, ~/.profile, /etc/environment — y cuál se lee en cada caso.
  • Programación: crontab -e, la sintaxis de los cinco campos, y por qué en cron «no funciona» un comando que sí funciona en la terminal (entorno y PATH distintos).

Práctica: instale nginx desde el repositorio, añada su directorio de scripts al PATH y configure la ejecución del script de copias de la etapa 3 cada noche mediante cron, guardando la salida en un registro.

Etapa 5. Procesos y systemd

Aquí empieza a entender qué ocurre realmente en el sistema.

  • Procesos: ps aux, top/htop, PID y PPID, estados, prioridades (nice), señales y kill.
  • Carga: load average, memoria y swap (free -h), qué significa un «proceso en estado D».
  • Depuración: lsof — qué archivos y puertos tiene abiertos un proceso; strace — qué llamadas al sistema realiza y dónde se bloquea.
  • systemd: unidades, systemctl status/start/enable, un archivo de unidad propio con Restart=on-failure, temporizadores en lugar de cron.
  • Registros: journalctl -u, -f, -b, -p err, rotación, rsyslog; estadísticas de rendimiento con sysstat (sar, iostat).

Práctica: configure una aplicación pequeña (como mínimo python3 -m http.server) como servicio systemd con un usuario propio, mate el proceso con kill -9 y compruebe que systemd lo volvió a levantar. Localice la entrada del reinicio en el journal.

Etapa 6. Discos, LVM y RAID

  • Dispositivos y particiones: lsblk, blkid, fdisk o parted, los sistemas de archivos ext4 y XFS, mkfs.
  • Montaje: mount, /etc/fstab con UUID, comprobación con mount -a.
  • Espacio: df -h, df -i, du -sh, búsqueda de lo que ocupa el disco.
  • LVM: volúmenes físicos, grupos de volúmenes, volúmenes lógicos y ampliación de una partición sin detener el sistema.
  • RAID por software con mdadm — comprender los niveles 0, 1, 5, 10 y que RAID no es una copia de seguridad.

Práctica: añada dos discos a una máquina virtual, cree LVM sobre ellos, un volumen, móntelo mediante fstab y después amplíelo con lvextend -r.

Etapa 7. Red

  • El modelo TCP/IP al nivel necesario para diagnosticar: IP, máscara, puerta de enlace, puerto, TCP y UDP.
  • Comandos: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: cómo funciona la resolución, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Configuración de red en su distribución (netplan en Ubuntu, NetworkManager en otras).
  • Captura de tráfico: tcpdump, para cuando nada más ha funcionado.

Práctica: averigüe qué proceso escucha en cada puerto abierto de su servidor. Analice por qué un servicio que escucha en 127.0.0.1 es inaccesible desde fuera, y corríjalo.

Etapa 8. Trabajo remoto: SSH y transferencia de archivos

  • SSH: claves (ssh-keygen -t ed25519, ssh-copy-id), archivo ~/.ssh/config, ssh-agent, reenvío de puertos (ssh -L), bastión mediante ProxyJump.
  • Copia: scp y rsync -avz --delete — y por qué rsync es mejor para sincronizar.
  • Sistemas de archivos de red: NFS entre servidores Linux, SMB (Samba) para intercambiar archivos con Windows.

Práctica: configure en un VPS el acceso solo con clave, descríbalo en ~/.ssh/config con un nombre corto y ponga en marcha una sincronización diaria de un directorio con el servidor mediante rsync.

Etapa 9. Seguridad del servidor

  • Cortafuegos: el principio «denegar todo lo que no está permitido», ufw para casos sencillos, nftables — para entender qué ocurre por debajo.
  • fail2ban: bloqueo de una IP tras una serie de accesos fallidos, comprobación con fail2ban-client status sshd.
  • Configuración de sshd: desactivar el acceso por contraseña y como root.
  • Actualizaciones de seguridad y su instalación automática (unattended-upgrades en Debian y Ubuntu).
  • GPG: verificación de firmas de paquetes y archivos, cifrado de copias de seguridad.

Práctica: abra en el cortafuegos solo los puertos 22, 80 y 443, active fail2ban y, al cabo de un día, mire su estado para ver cuántas direcciones se han bloqueado ya.

Proyecto final: monte un servidor completo

La mejor prueba de que realmente ha aprendido Linux es montar un servidor desde cero, sin ayudas:

  1. Un VPS nuevo, su propio usuario con sudo, acceso por clave SSH, contraseñas y root desactivados.
  2. Cortafuegos y fail2ban, actualizaciones de seguridad automáticas.
  3. Servidor web y aplicación como servicio systemd con reinicio automático.
  4. Un disco o volumen aparte para los datos, montado mediante fstab.
  5. Copia de seguridad programada (cron o temporizador de systemd) a otro equipo mediante rsync, con registro y prueba de restauración.
  6. Una breve guía: cómo volver a levantar todo esto desde cero.

Si puede recorrer esta lista y explicar cada paso, tiene la base para trabajar como administrador o ingeniero DevOps. Los siguientes pasos naturales son los contenedores, la automatización de la configuración y la monitorización.

Cómo aprender con más eficacia

  • Escriba los comandos usted mismo. Lo copiado de un artículo no se recuerda; lo escrito, con sus errores, sí.
  • Rompa cosas y arréglelas. Estropee fstab o los permisos de ~/.ssh en una máquina virtual y restaure el sistema. Esa experiencia se valora mucho en las entrevistas.
  • Tome notas. Su propio cuaderno de comandos con ejemplos es más útil que cualquier chuleta ajena.
  • Lea los registros. Casi cualquier problema en Linux lo explica el registro: acostúmbrese a mirar allí primero.

Resumen

La respuesta a cómo aprender Linux desde cero es avanzar por capas: terminal y archivos, permisos, bash, paquetes, procesos y systemd, discos, red, SSH, seguridad — y en cada etapa resolver una tarea práctica en su propio entorno. El objetivo final es montar y proteger por sí mismo un servidor con un servicio en marcha. Precisamente ese es el recorrido, desde la lección introductoria hasta el proyecto final, que sigue nuestro curso de Linux en la plataforma.

Preguntas frecuentes

¿Cuánto tiempo se necesita para aprender Linux desde cero?

Dedicando alrededor de una hora al día, la mayoría domina en unos pocos meses lo básico para trabajar con un servidor. La seguridad llega con la práctica en tareas reales, así que la regularidad importa más que el número total de horas.

¿Hace falta saber programar para aprender Linux?

No, se puede empezar sin ello. Pero en la etapa de los scripts bash ya estará programando, y esas habilidades le serán útiles después en la automatización.

¿Se puede aprender Linux en Windows?

Sí, mediante WSL2 o una máquina virtual. Para los temas de systemd, discos y red, es mejor una máquina virtual completa o un VPS.

¿Conviene instalar Linux como sistema principal en el ordenador?

Puede ser útil, pero no es obligatorio. Para la administración es más importante trabajar con un Linux de servidor desde la terminal que usar un escritorio gráfico.

¿Qué distribución debe elegir un principiante?

Ubuntu Server o Debian: tienen mucha documentación, y los conocimientos se transfieren con facilidad a otras distribuciones. La principal diferencia de los sistemas tipo RHEL es el gestor de paquetes dnf.

Aprende este tema en vídeo

Este tema se explica a fondo y con práctica en el curso «Linux: с нуля до уверенного администрирования».

Ir al curso