Teoría
Actividades

Objetivos de Aprendizaje

Al finalizar este módulo podrás: Navegar con comodidad por Linux, el sistema operativo que domina el mundo de los servidores y ejecutar comandos básicos de administración.
Dominar: Terminal/línea de comandos, gestión de archivos y directorios, permisos de usuarios, conexiones SSH y automatización básica.
Aplicar: Administración básica de servidores, configuración de servicios, creación de scripts y gestión de usuarios y permisos.

5.1 ¿Qué es un Sistema Operativo?

El Director de Orquesta de la Computadora

Un sistema operativo es como el director de orquesta de una computadora. Coordina todos los recursos (CPU, memoria, disco, red) y permite que los programas funcionen de manera organizada. Sin él, la computadora sería solo una caja con componentes electrónicos sin vida.
Analogía práctica:
Imagina que tu computadora es un edificio de oficinas. El sistema operativo es el administrador del edificio: asigna espacios (memoria), controla el acceso (permisos), mantiene los servicios (procesos) y se asegura de que todo funcione sin problemas.

Componentes Principales

Kernel: El núcleo del sistema, comunica directamente con el hardware.
Procesos: Programas en ejecución que el SO administra.
Memoria: Espacio de trabajo que se asigna dinámicamente.
Sistema de archivos: Organización y acceso a datos en el disco.

¿Por qué Linux Domina en Servidores?

• Estabilidad: Puede funcionar meses o años sin reiniciar
• Seguridad: Sistema de permisos robusto y menos vulnerable
• Eficiencia: Consume menos recursos que otros sistemas
• Gratuito: Sin costos de licencia para empresas
• Personalizable: Se puede modificar según necesidades específicas

5.2 La Terminal: Tu Nueva Mejor Amiga

¿Por qué Texto en vez de Clics?

La terminal puede parecer intimidante al principio, pero es 10 veces más eficiente que la interfaz gráfica para administrar servidores. Permite automatizar tareas, trabajar remotamente y ejecutar operaciones complejas con precisión.

Comandos Básicos de Navegación

# Mostrar directorio actual pwd # Listar archivos y carpetas ls ls -la # Mostrar detalles y archivos ocultos # Cambiar de directorio cd /home/usuario cd .. # Subir un nivel cd ~ # Ir al directorio home # Mostrar contenido de un archivo cat archivo.txt less archivo.txt # Para archivos grandes

Gestión de Archivos y Directorios

# Crear archivos y directorios touch archivo.txt mkdir nueva_carpeta mkdir -p ruta/completa/anidada # Copiar y mover cp archivo.txt copia.txt mv archivo.txt nuevo_nombre.txt mv archivo.txt /otra/carpeta/ # Eliminar (¡Cuidado!) rm archivo.txt rm -r carpeta/ # Eliminar carpeta y contenido rm -rf /ruta/peligrosa/ # Fuerza eliminación
Consejo de seguridad:
Siempre usa ls para verificar que estás en el directorio correcto antes de ejecutar comandos destructivos como rm. Una vez eliminado, no hay papelera de reciclaje en Linux.

5.3 Permisos y Usuarios

Dueños, Grupos y Otros

Linux maneja tres niveles de permisos:
• Usuario (u): El propietario del archivo
• Grupo (g): Usuarios que pertenecen al mismo grupo
• Otros (o): Todos los demás usuarios del sistema

Leer, Escribir, Ejecutar

# Ver permisos de archivos ls -l # Resultado ejemplo: -rw-r--r-- 1 usuario grupo 1024 Oct 15 10:30 archivo.txt drwxr-xr-x 2 usuario grupo 4096 Oct 15 10:31 carpeta/ # Explicación: # - = archivo regular, d = directorio # rw- = usuario puede leer y escribir # r-- = grupo solo puede leer # r-- = otros solo pueden leer

Cambiar Permisos

# Método simbólico chmod u+x archivo.sh # Dar permiso de ejecución al usuario chmod go-w archivo.txt # Quitar escritura a grupo y otros chmod a+r archivo.txt # Dar lectura a todos # Método numérico (más rápido) chmod 755 script.sh # rwxr-xr-x chmod 644 documento.txt # rw-r--r-- chmod 600 archivo_privado # rw-------
Números de permisos:
4 = lectura (r), 2 = escritura (w), 1 = ejecución (x)
Se suman: 7 = rwx, 6 = rw-, 5 = r-x, 4 = r--, 0 = ---

Sudo: El Poder Temporal

sudo permite ejecutar comandos como administrador sin necesidad de cambiar de usuario. Es más seguro que usar la cuenta root directamente.
# Instalar software sudo apt update sudo apt install nginx # Editar archivos de sistema sudo nano /etc/hosts # Cambiar a usuario root temporalmente sudo su -

5.4 Archivos de Configuración

Todo es un Archivo en Linux

En Linux, todo es un archivo: dispositivos, procesos, configuraciones. Esta filosofía hace que el sistema sea consistente y poderoso. Los archivos de configuración suelen estar en /etc/ y controlan el comportamiento de servicios y aplicaciones.

Variables de Entorno

# Ver todas las variables env # Ver variable específica echo $PATH echo $HOME # Definir variable temporal export MI_VARIABLE="valor" # Definir variable permanente (en ~/.bashrc) echo 'export MI_VARIABLE="valor"' >> ~/.bashrc

Archivos de Configuración Importantes

~/.bashrc: Configuración personal del shell
/etc/hosts: Resolución local de nombres
/etc/passwd: Información de usuarios
/etc/crontab: Tareas programadas del sistema
.env: Variables de entorno para aplicaciones

5.5 Conectarse Remotamente

SSH: La Conexión Segura

SSH (Secure Shell) permite conectarse a servidores remotos de forma segura. Es la herramienta estándar para administrar servidores en la nube.
# Conexión básica ssh usuario@servidor.com ssh usuario@192.168.1.100 # Conexión con puerto específico ssh -p 2222 usuario@servidor.com # Copiar archivos remotamente scp archivo.txt usuario@servidor.com:/ruta/destino/ scp -r carpeta/ usuario@servidor.com:/ruta/destino/

Llaves vs Contraseñas

Las llaves SSH son más seguras que las contraseñas porque: • No se pueden adivinar por fuerza bruta
• No viajan por la red en texto plano
• Permiten automatización sin intervención humana
# Generar par de llaves ssh-keygen -t rsa -b 4096 -C "tu@email.com" # Copiar llave pública al servidor ssh-copy-id usuario@servidor.com # Conectar sin contraseña ssh usuario@servidor.com

5.6 Automatización Básica

Scripts: Automatizar Tareas Repetitivas

Los scripts de shell permiten automatizar tareas repetitivas y complejas.
#!/bin/bash # Mi primer script echo "Iniciando backup..." fecha=$(date +%Y%m%d) tar -czf backup_$fecha.tar.gz /home/usuario/documentos/ echo "Backup completado: backup_$fecha.tar.gz"

Cron: El Programador de Tareas

Cron ejecuta comandos automáticamente en horarios específicos.
# Editar tareas programadas crontab -e # Ejemplos de programación: # Cada día a las 2:00 AM 0 2 * * * /ruta/a/mi_script.sh # Cada lunes a las 9:00 AM 0 9 * * 1 /ruta/a/reporte_semanal.sh # Cada 5 minutos */5 * * * * /ruta/a/monitoreo.sh

Logs: Las Bitácoras del Sistema

Los logs registran todo lo que sucede en el sistema. Son esenciales para diagnóstico y auditoría.
# Ver logs del sistema tail -f /var/log/syslog # Logs de autenticación tail -f /var/log/auth.log # Logs de un servicio específico journalctl -u nginx -f # Buscar errores en los últimos 10 minutos journalctl --since "10 minutes ago" -p err