Aprender Linux puede ser la base que necesitas para convertirte en desarrollador Web Backend, DevOps, o aprender Seguridad informatica asi que en este video voy a mostrarte una ruta de conecptos que debes saber en Linux si quieres dominarlo
Por supuesto mi idea no es que sepas todo, pero con que puedas tener una idea de por donde empezar, te va a servir para poder saber que aprender luego de este genial Sistema.
si quieres dominar docker, kubernetes, devops, backend debes concoer oncepto sde linux
🐧 Roadmap Completo para Aprender Linux (Explicado de Forma Sencilla)
Este roadmap está pensado para alguien que ya programa, pero quiere aprender Linux desde cero de forma práctica.
Está dividido en fases progresivas, con explicaciones claras y ejercicios concretos.
🔧 Fase 0 – Preparar el Entorno
🎯 Objetivo
Tener un Linux donde puedas practicar sin miedo a romper nada.
Opciones recomendadas
- WSL2 (Windows) → Ubuntu es lo ideal.
- Máquina virtual → VirtualBox o VMware con Ubuntu o Linux Mint.
- Dual boot / hardware real (opcional).
Tareas
- Instalar Ubuntu.
- Aprender a abrir la terminal.
- Aprender a copiar/pegar en terminal (
Ctrl+Shift+C / Ctrl+Shift+V).
🟣 Nivel 1 – Sobrevivir en la Terminal
1.1. Entender la terminal
Conceptos:
- Shell: programa que interpreta comandos (Bash, Zsh).
- Prompt: la línea donde escribes comandos.
Comandos básicos:
pwdwhoamiclearhistoryctrl + c→ cancelar procesos
Ejercicio:
Ejecuta pwd, whoami, history | tail.
1.2. Rutas y sistema de archivos
Conceptos simples:
/→ raíz del sistema/home→ usuarios/etc→ configuraciones/var→ logs y archivos del sistema/tmp→ temporales
Símbolos importantes:
.→ este directorio..→ directorio padre~→ tu home
Comandos:
ls,ls -l,ls -acd,cd ..,cd ~
Ejercicio:
Explora /, /home, usa cd para moverte.
1.3. Crear, mover y borrar archivos/carpetas
Comandos clave:
mkdir,touch,cp,mv,rm,rm -r,rm -rf
Ejercicio:
- Crea una carpeta
practice/day1. - Crea un archivo
notes.txt. - Copia y renombra.
- Borra
day2.
1.4. Ver contenido de archivos
Comandos (y para qué sirve cada uno):
cat→ Muestra todo el contenido de un archivo de una vez (útil para archivos pequeños).less→ Abre el archivo en un visor donde puedes navegar arriba/abajo sin saturar la terminal.head→ Muestra las primeras líneas de un archivo (por defecto 10).tail→ Muestra las últimas líneas de un archivo (por defecto 10); contail -fves los cambios en tiempo real.
Ejercicio:
Crea un archivo con echo "Hola" > hola.txt, muéstralo y añade líneas.
🟡 Nivel 2 – Empezar a “Pensar en Linux” (versión mejorada con gestor de paquetes incluido)
2.1. Redirecciones y pipes (cómo conectar comandos)
Conceptos clave:
>→ Envía la salida de un comando a un archivo (lo sobrescribe).>>→ Igual que arriba, pero añade al final.|(“pipe”) → Toma la salida de un comando y la pasa como entrada al siguiente.
Ejemplos útiles:
ls > lista.txt→ guarda la salida delsen un archivo.ls | less→ lista archivos con navegación cómoda.history | grep ssh→ busca “ssh” dentro del historial.
Ejercicio:
Guarda la lista de /etc en etc.txt y cuenta las líneas con wc -l.
2.2. Buscar archivos y contenido (lo más importante para no perderte)
Herramientas principales:
find→ Busca archivos por nombre, extensión, tamaño, etc.find . -name "*.txt"
grep→ Busca texto dentro de archivos.grep "error" log.txtgrep -r "cadena" carpeta/(recursivo)
Ejercicio:
Busca una palabra dentro de múltiples .txt con grep.
2.3. ¿Qué es un gestor de paquetes? (explicación antes de instalar)
Un gestor de paquetes es una herramienta que se encarga de:
- instalar programas,
- actualizarlos,
- resolver dependencias,
- eliminar software limpio y ordenadamente.
En Linux, cada distro tiene su propio sistema o formato.
Gestores de paquetes más comunes
| Gestor | Distros que lo usan | Descripción |
|---|---|---|
| APT | Ubuntu, Debian | Sencillo, muy usado en servidores. |
| DNF / YUM | Fedora, CentOS, RHEL | Repos estables, usado en empresas. |
| Pacman | Arch Linux | Ligero, rápido y muy directo. |
| Zypper | openSUSE | Fuerte en entornos empresariales. |
| APK | Alpine Linux | Ultra ligero, ideal para contenedores Docker. |
Idea sencilla:
APT = el “App Store” de Ubuntu, pero en terminal.
DNF = el de Fedora.
Pacman = el de Arch.
2.4. Instalar programas (gestión de paquetes con APT)
Ahora que sabes qué es un gestor de paquetes, puedes usarlo.
Comandos esenciales (Ubuntu/Debian):
sudo apt update→ actualiza la lista de paquetes.sudo apt upgrade→ actualiza lo instalado.sudo apt install nombre→ instala un programa.sudo apt remove nombre→ desinstala.
Ejercicio:
Instala htop y ejecútalo.
2.5. Permisos básicos (entender “quién puede hacer qué”)
🧩 ¿Qué significa “Dueño – Grupo – Otros”?
En Linux, cada archivo y carpeta tiene 3 niveles de acceso:
Dueño (user) → normalmente es la persona que creó el archivo.
Ejemplo: si tú creasscript.sh, tú eres el dueño.Grupo (group) → un conjunto de usuarios que comparten permisos.
Ejemplo: el grupodeveloperspodría tener acceso común a ciertos archivos.Otros (others) → cualquier persona en el sistema que no sea ni el dueño ni parte del grupo.
Cuando ejecutas ls -l, verás algo así:
-rwxr-xr-- 1 fazt developers 1200 script.sh
Se lee así:
rwx→ permisos del dueñor-x→ permisos del grupor--→ permisos de otros
✔️ Permisos posibles:
r→ leerw→ escribir o modificarx→ ejecutar
🛠️ Comandos:
ls -l→ muestra permisos del archivo.chmod +x script.sh→ le da permiso de ejecución.chown usuario archivo→ cambia el dueño.chgrp grupo archivo→ cambia el grupo.
🧪 Ejercicio:
- Crea un archivo
script.sh. - Escribe dentro:
echo "Hola Linux" - Dale permisos de ejecución:
chmod +x script.sh - Ejecútalo:
./script.sh
2.6. Ver y filtrar contenido de archivos
Comandos (y para qué sirve cada uno):
cat→ Muestra todo el archivo de golpe (ideal para archivos pequeños).less→ Abre un visor navegable arriba/abajo.head→ Muestra las primeras líneas.tail→ Muestra las últimas líneas;tail -fpara ver cambios en tiempo real.
Ejercicio:
Crea un archivo con varias líneas y practícalos todos.
3.2. Editores de texto
Nano (fácil)
nano archivoCtrl+OguardarCtrl+Xsalir
Vim (básico)
vim archivoipara escribir:wqguardar/salir:q!salir sin guardar
Ejercicio:
Edita un archivo en ambos editores.
3.3. Systemd (servicios)
¿Qué es systemd?
Systemd es el sistema de inicio y gestión de servicios utilizado por la mayoría de distribuciones modernas de Linux.
Su nombre viene de “system daemon”, donde daemon (d) se refiere a procesos que corren en segundo plano —por eso termina en “d”.
Systemd se encarga de:
- iniciar servicios cuando el sistema arranca,
- detenerlos o reiniciarlos,
- monitorearlos,
- y mantener el orden de arranque del sistema.
Comandos esenciales:
systemctl status servicio→ muestra su estadosystemctl start servicio→ lo iniciasystemctl stop servicio→ lo detienesystemctl restart servicio→ lo reiniciasystemctl enable servicio→ se inicia automáticamente al arrancarsystemctl disable servicio→ evita que se inicie al arrancar
Ejercicio:
Comprueba el estado del servicio ssh o sshd usando:
systemctl status ssh
o
systemctl status sshd
🔵 Nivel 4 – Bash Scripting
4.1. Primer script
#!/usr/bin/env bash
echo "Hola desde un script"
4.2. Variables y argumentos
$1,$2argumentos- Condicionales
if
4.3. Bucles
for f in *.log; do
echo "Procesando $f"
done
Otras cosas que podrías aprender en Bash Scripting
- Funciones (
function nombre { ... }) - Arrays y manejo de listas
- Operadores aritméticos (
$(( ))) - Expresiones regulares y
grep - Manejo de strings (cortes, reemplazos, longitud)
- Comandos avanzados:
awk,sed,cut,tr - Control de errores (
exit,$?) - Uso de
trappara capturar señales - Manejo de archivos y directorios (crear, leer, borrar)
- Procesamiento de logs y filtrado avanzado
- Lectura interactiva con
read - Paralelismo básico con
& - Scripts con colores en terminal (ANSI)
- Uso de variables de entorno
- Automatización avanzada con
cron - Escritura de instaladores sencillos
- Modularización de scripts (incluir otros archivos con
source)
4.4. Cron
crontab -e- Ejecutar tareas automáticas
🟠 Nivel 5 – Networking, Logs y Monitoreo
5.1. Networking
ip addrpingcurlss -tulpn
5.2. SSH y transferencia
ssh user@hostscp origen destinorsync -av
5.3. Logs
/var/log/tail -fjournalctl -u servicio
5.4. Recursos del sistema
df -hdu -shfree -htop,htop
🔴 Nivel 6 – Usuarios, Seguridad y Entorno Dev
6.1. Usuarios y grupos
idadduserpasswdgroupsvisudo
6.2. Firewall (UFW)
ufw statusufw enableufw allow
6.3. Variables de entorno
echo $PATHexport VAR=valor- Alias en
~/.bashrc
6.4. Linux para Desarrollo
- Instalar herramientas: Git, build-essential
- Crear un directorio de proyectos
🧪 Proyectos para Practicar
1. Servidor web simple
Instalar nginx, servir HTML, revisar logs.
2. Script de backups
Usar tar, cron, directorio /backups.
3. Entorno de desarrollo completo
Git + SSH + editor + servicio Node/Go/Python con systemd.
Recursos
- Linux Journet: https://labex.io/es/linuxjourney
- banding linux - esto es basicamente un CTF para aprender Linux: https://overthewire.org/wargames/bandit/
- https://roadmap.sh/linux