Este documento explora herramientas y conceptos esenciales para la administración de sistemas Linux, abarcando desde la manipulación de archivos hasta la gestión de procesos y servicios.
Edición de Texto en la Terminal
La manipulación directa de archivos desde la línea de comandos es fundamental. Dos editores ampliamente utilizados son nano y vim.
nano es intuitivo. Para crear o modificar un archivo, se ejecuta:
nano mi_documento.txt
Sus controles se basan en combinaciones con la tecla Ctrl (indicada como ^), como ^O para guardar y ^X para salir.
vim es más potente y configurable, ofreciendo resaltado de sintaxis y un modo de operación basado en comandos. Es una herramienta estándar para desarrolladores y administradores de sistemas.
Transferencia y Alojamiento de Archivos
Descarga con Wget
Para obtener un archivo de un servidor web, se utiliza wget con la URL completa del recurso.
wget https://ejemplo.com/datos/archivo.zip
Copia Segura con SCP
El comando scp permite transferir archivos entre hosts a través de SSH de manera cifrada.
Para enviar un archivo local a un servidor remoto:
scp reporte_local.pdf usuario@192.168.1.50:/home/usuario/documentos/
Para recuperar un archivo de un servidor remoto:
scp usuario@192.168.1.50:/var/log/app.log ./copia_local.log
Servidor Web Básico con Python
El módulo http.server de Python 3 crea rápidamente un servidor para archivos del directorio actual.
python3 -m http.server 8080
Este servidor registra las peticiones entrantes. Los archivos alojados se pueden descargar desde otra máquina usando wget o curl.
curl -O http://direccion_ip_servidor:8080/archivo_compacto.tar.gz
Administración de Procesos
Un proceso es una instancia de un programa en ejecución. Cada uno tiene un Identificador de Proceso (PID) único.
Mnoitoreo
ps aux lista todos los procesos en ejecución, mostrando el usuario, PID, uso de CPU y el comando.
top o htop proporcionan una vista dinámica y actualizada del consumo de recursos del sistema por los procesos.
Control y Señales
Los procesos se pueden controlar enviándoles señales con kill.
kill -15 1234 # Envía SIGTERM (terminación ordenada) al PID 1234
kill -9 5678 # Envía SIGKILL (terminación forzada) al PID 5678
Otras señales útiles incluyen SIGSTOP (-19, pausar) y SIGCONT (-18, reanudar).
Tareas Progrmaadas con Cron
El demonio cron ejecuta comandos o scripts en horarios específicos. Se configura mediante crontab.
La sintaxis de una entrada en la crontab es:
# minuto hora día_del_mes mes día_de_la_semana comando
30 3 * * * /usr/bin/backup_db.sh
El ejemplo anterior ejecuta el script backup_db.sh a las 3:30 AM cada día. El asterisco (*) actúa como comodín para cualquier valor en ese campo.
Se edita la crontab del usuario actual con:
crontab -e
Gestión de Paquetes de Software
Los sistemas basados en Debian/Ubuntu utilizan el gestor de paquetes apt.
Para actualizar la lista de paquetes disponibles desde los repositorios configurados:
sudo apt update
Para instalar un paquete nuevo:
sudo apt install nombre_paquete
Para eliminar un paquete:
sudo apt remove nombre_paquete
Los repositorios se gestionan en archivos dentro de /etc/apt/sources.list.d/. Para añadir un repositorio de terceros, normalmente se requiere importar su clave GPG y luego agregar el archivo de lista correspondiente.
Inspección de Registros del Sistema (Logs)
Los archivos de registro, ubicados comúnmente en /var/log/, son cruciales para el diagnóstico y la auditoría de seguridad.
/var/log/syslog o /var/log/messages contienen mensajes generales del sistema.
Los servicios tienen sus propios archivos de log. Por ejemplo, el servidor web Apache almacena registros de acceso en /var/log/apache2/access.log y errores en /var/log/apache2/error.log.
El comando journalctl se utiliza para consultar los logs del sistema gestionados por systemd, ofreciendo potentes opciones de filtrado.