🐧 Linux Desde Cero

Guía completa para aprender Linux desde fundamentos hasta administración avanzada.

📖 Temas del Curso

Haz clic en cualquier tema para ver el contenido detallado

📌 Introducción a Linux

Linux es un sistema operativo de código abierto basado en Unix, creado por Linus Torvalds en 1991.

Historia:

  • 1991: Linus Torvalds crea el kernel Linux
  • 1992: Primera versión pública bajo licencia GPL
  • 2000s: Linux domina servidores y dispositivos móviles
  • Hoy: Powers el 90% de servidores web del mundo

Distribuciones Populares:

  • 🟠 Ubuntu - Ideal para principiantes
  • 🔴 Fedora - Orientada a desarrolladores
  • 🟡 Debian - Estabilidad y libertad
  • 🔵 Arch - Máxima personalización
💡 ¿Sabías qué?

Android está basado en el kernel de Linux. Tu teléfono usa Linux sin saberlo.

← Volver a temas

⚙️ Instalación de Linux

Opciones de Instalación:

  1. Máquina Virtual (VirtualBox/VMware) - Prueba sin modificar tu sistema
  2. WSL (Windows Subsystem for Linux) - Linux dentro de Windows
  3. Dual Boot - Arrancar con Windows o Linux
  4. Instalación directa - Reemplazar el SO actual

Instalar Ubuntu:

# Descargar ISO desde ubuntu.com
# Crear USB booteable con Rufus o Etcher
# Arrancar desde USB y seguir el asistente

WSL en Windows:

wsl --install -d Ubuntu
# Reiniciar y crear usuario
← Volver a temas

📦 Comandos Básicos

Navegación:

ls              # Listar archivos
cd carpeta      # Cambiar directorio
pwd             # Mostrar directorio actual
mkdir nom       # Crear directorio

Archivos:

cp origen dest  # Copiar
mv origen dest  # Mover/renombrar
rm archivo      # Eliminar
cat archivo     # Ver contenido

Permisos:

chmod 755 archivo    # Cambiar permisos
chown user:group archivo  # Cambiar propietario
← Volver a temas

💻 Gestión del Sistema

Usuarios:

sudo adduser nombre      # Crear usuario
sudo deluser nombre      # Eliminar usuario
su - usuario            # Cambiar de usuario

Procesos:

ps aux                 # Ver procesos
top                    # Monitor en tiempo real
kill PID               # Terminar proceso

Paquetes (Ubuntu/Debian):

sudo apt update         # Actualizar lista
sudo apt upgrade        # Actualizar paquetes
sudo apt install nombre # Instalar paquete
← Volver a temas

✅ Redes y Seguridad

Configuración de Red:

ip addr                # Ver IPs
ping google.com         # Probar conexión
curl ifconfig.me        # Ver IP pública

Firewall (ufw):

sudo ufw enable        # Activar firewall
sudo ufw allow 80       # Permitir puerto 80
sudo ufw status         # Ver estado

SSH:

ssh usuario@servidor    # Conectar
ssh -p 2222 usuario@IP  # Puerto personalizado
← Volver a temas

🚀 Servidores

Apache:

sudo apt install apache2
sudo systemctl start apache2

Nginx:

sudo apt install nginx
sudo systemctl start nginx

Docker:

curl -fsSL https://get.docker.com | sh
sudo docker run -d -p 80:80 nginx
← Volver a temas

📋 Scripting Bash

Los scripts de Bash permiten automatizar tareas repetitivas en Linux.

Ejemplo de Script:

#!/bin/bash
echo "Iniciando backup..."
tar -czf backup.tar.gz /home/usuario
echo "Backup completado"

Tareas Programadas (cron):

crontab -e
# Cada día a las 2am
0 2 * * * /home/scripts/backup.sh
← Volver a temas

📁 Gestión de Archivos y Directorios

Búsqueda de Archivos:

find /home -name "*.txt"       # Buscar por nombre
find / -type f -size +100M   # Archivos mayores a 100MB
locate archivo               # Búsqueda rápida

Compresores:

tar -czf archivo.tar.gz /carpeta  # Comprimir
tar -xzf archivo.tar.gz       # Descomprimir
zip -r archivo.zip carpeta     # Zip
unzip archivo.zip              # Descomprimir zip

Enlaces:

ln -s archivo enlace_simbolico   # Enlace simbólico
ln archivo enlace_duro         # Enlace duro
← Volver a temas

⚡ Procesos y Servicios

Gestión de Procesos:

ps aux | grep nginx           # Buscar proceso
kill -9 PID                    # Matar proceso
pkill -f nombre               # Matar por nombre
nice -n 10 comando            # Prioridad

Systemd (Servicios):

systemctl status nginx        # Estado
systemctl start nginx         # Iniciar
systemctl enable nginx        # Habilitar al arranque
systemctl restart nginx       # Reiniciar

Crontab:

crontab -e                   # Editar
# Formato: minuto hora día mes día_semana comando
0 2 * * * /scripts/backup.sh  # Diario a las 2am
← Volver a temas

📊 Monitorización y Logs

Monitorización:

htop                    # Monitor interactivo
iotop                    # E/S de disco
nethogs                 # Ancho de banda por proceso
dmesg                   # Mensajes del kernel

Logs del Sistema:

tail -f /var/log/syslog     # Ver logs en tiempo real
journalctl -xe           # Logs de systemd
cat /var/log/auth.log    # Intentos de login

Espacio en Disco:

df -h                     # Uso de disco
du -sh /home/*           # Tamaño de carpetas
ncdu                     # Navegador de disco interactivo
← Volver a temas

🐳 Docker y Contenedores

Imágenes y Contenedores:

docker images              # Ver imágenes
docker ps                  # Contenedores activos
docker run -d -p 80:80 nginx  # Crear contenedor
docker exec -it contenedor bash  # Entrar

Docker Compose:

docker-compose up -d       # Iniciar servicios
docker-compose down        # Detener
docker-compose logs -f     # Ver logs

Dockerfile:

FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
← Volver a temas

🔒 Seguridad Avanzada

Gestión de Permisos:

chmod 755 archivo          # Permisos rwx r-x r-x
chmod +x script.sh        # Ejecutable
chattr +i archivo          # Inmutable
lsattr archivo             # Ver atributos

Usuarios y Grupos:

groupadd desarrolladores   # Crear grupo
usermod -aG sudo usuario   # Agregar a grupo
visudo                     # Editar sudoers

SELinux/AppArmor:

getenforce                # Ver estado
setenforce 0              # Desactivar temporalmente
sestatus                  # Estado completo
← Volver a temas

💻 Ejemplos de Comandos

📁 Archivos

ls -la
touch archivo.txt
cat archivo.txt

🔧 Sistema

uname -a
df -h
free -h

🌐 Red

ifconfig
netstat -tuln
ss -tuln

👨‍💻 Desarrollado por Isaac Esteban Haro Torres

Ingeniero en Sistemas · Full Stack · Automatización · Data

📧 Email: zackharo1@gmail.com

📱 WhatsApp: 098805517

💻 GitHub: github.com/ieharo1

🌐 Portafolio: ieharo1.github.io/portafolio-isaac.haro/