Linux: Comandos básicos de administración para SysAdmins novatos
Bienvenido al mundo de la administración Linux
Si acabas de aterrizar en el mundo de los servidores, seguramente te sientes como si estuvieras frente a un panel de navegación de una nave espacial. No te preocupes, es completamente normal. La administración de sistemas Linux no es difícil, solo es diferente a lo que estás acostumbrado en entornos gráficos como Windows o macOS. Aquí no hay un botón de "reiniciar" visible, pero sí hay una herramienta mucho más poderosa: la línea de comandos.
Este artículo es tu mapa de ruta. Vamos a recorrer juntos los comandos Linux imprescindibles que todo SysAdmin básico debe dominar. No necesitas ser un hacker de película para empezar. Solo necesitas paciencia, una buena conexión SSH y ganas de experimentar. Al final de esta guía, serás capaz de navegar por el sistema, gestionar archivos, monitorear procesos y diagnosticar problemas básicos de tu servidor. Y lo mejor de todo, lo harás con la confianza de quien sabe lo que está haciendo.
Antes de empezar: Conectándote a tu servidor
Lo primero que necesitas es acceder a tu máquina. En el 99% de los casos, esto se hace a través de SSH (Secure Shell). Es un protocolo que te permite controlar tu servidor de forma remota y segura.
### Conexión inicial
Desde tu terminal local (en Windows puedes usar PowerShell o Git Bash, en Mac o Linux la terminal nativa), escribe:
ssh usuario@ip-de-tu-servidor
Te pedirá la contraseña. Si es tu primera vez, verás un mensaje sobre la autenticidad del host. Escribe yes y presiona Enter. Ya estás dentro.
[TIP] Si tienes un panel de control como Syspanel (el puerto de acceso es el 2106), puedes usarlo para gestionar archivos y bases de datos visualmente. Pero para administración avanzada, la terminal es tu mejor amiga.
Navegando por el sistema de archivos
Tu servidor Linux es un árbol de directorios enorme. Aprender a moverte por él es el primer paso para dominar la administración Linux.
### ¿Dónde estoy? (pwd)
El comando pwd (print working directory) te dice en qué carpeta te encuentras. Es tu GPS personal.
pwd
Salida típica: /home/tu_usuario
### Listando archivos (ls)
Para ver qué hay en tu directorio actual, usa ls. Es el equivalente a abrir el explorador de archivos.
ls
Para ver archivos ocultos (los que empiezan con un punto), usa el modificador -a:
ls -a
Y para ver detalles como permisos, propietario, tamaño y fecha de modificación, usa -l:
ls -l
Puedes combinar opciones: ls -la te dará una lista detallada de todo, incluidos los ocultos. Esto es esencial para un SysAdmin básico.
### Cambiando de directorio (cd)
Para moverte entre carpetas, usa cd (change directory).
cd /var/log
Para ir a tu carpeta personal, simplemente escribe cd sin argumentos. Para subir un nivel (al directorio padre), usa cd ...
[INFO] En Linux, la raíz del sistema se representa con
/. Todo cuelga de ahí. A diferencia de Windows (C:), aquí no hay letras de unidad.
Gestión de archivos y directorios
Ahora que sabes moverte, es hora de crear, copiar, mover y eliminar. Estos son los comandos servidor que usarás a diario.
### Crear directorios (mkdir)
Para crear una nueva carpeta:
mkdir mi_proyecto
Para crear una estructura de directorios anidada, usa el modificador -p:
mkdir -p proyectos/2024/enero
### Crear archivos vacíos (touch)
El comando touch crea un archivo vacío o actualiza la fecha de modificación si ya existe.
touch index.html
### Copiar archivos (cp)
Para copiar un archivo:
cp index.html index_backup.html
Para copiar un directorio completo, necesitas el modificador -r (recursivo):
cp -r /home/usuario/mi_proyecto /home/usuario/backup_proyecto
### Mover o renombrar (mv)
Este comando es doble propósito. Mueve archivos y también los renombra.
mv index.html index_antiguo.html
mv /home/usuario/archivo.txt /var/www/html/
### Eliminar (rm)
Ten mucho cuidado con este comando. No hay papelera de reciclaje en la terminal.
rm archivo_inutil.txt
Para eliminar un directorio y todo su contenido:
rm -rf carpeta_peligrosa
[WARNING] El comando
rm -rf /borrará TODO tu sistema. Jamás lo ejecutes. Revisa siempre dos veces qué estás eliminando. Un SysAdmin básico debe ser precavido, no temerario.
Permisos y propietarios
En Linux, todo es un archivo y cada archivo tiene un propietario y un grupo. Además, tiene permisos de lectura (r), escritura (w) y ejecución (x) para tres categorías: el propietario (u), el grupo (g) y otros (o).
### Ver permisos con ls -l
Cuando ejecutas ls -l, la primera columna muestra algo como -rw-r--r--. El primer carácter indica si es un archivo (-) o un directorio (d). Los siguientes 9 caracteres son los permisos en grupos de tres.
### Cambiar permisos (chmod)
El comando chmod te permite modificar estos permisos. Puedes usar números (octal) o letras.
Con números:
- 4 = lectura (r)
- 2 = escritura (w)
- 1 = ejecución (x)
Suma los valores para cada categoría. Por ejemplo, para dar lectura, escritura y ejecución al propietario, y solo lectura al grupo y a otros:
chmod 744 archivo.sh
Con letras:
Para añadir ejecución al propietario:
chmod u+x archivo.sh
Para quitar escritura a otros:
chmod o-w archivo.sh
### Cambiar propietario (chown)
Para cambiar el propietario de un archivo:
sudo chown usuario:grupo archivo.txt
[TIP] Si no sabes qué usuario usar, el usuario
www-dataes el que ejecuta el servidor web Apache o Nginx en muchas distribuciones. Esto es útil cuando un sitio web no puede escribir archivos.
Procesos y monitoreo del sistema
Un servidor es un organismo vivo. Hay procesos que se ejecutan, memoria que se consume y discos que se llenan. Como SysAdmin básico, debes aprender a escuchar a tu sistema.
### Listar procesos (ps)
El comando ps muestra los procesos en ejecución. Para ver todos los procesos de todos los usuarios, usa:
ps aux
La salida es larga. Puedes filtrarla con grep:
ps aux | grep apache
### Monitoreo en tiempo real (top o htop)
top es el clásico. Muestra una tabla dinámica de procesos, consumo de CPU y memoria. Para salir, presiona q.
top
Si quieres algo más visual, instala htop (si no lo tienes):
sudo apt install htop
Y luego:
htop
### Matar procesos (kill)
Si un proceso se cuelga, puedes terminarlo. Primero necesitas su PID (Process ID). Lo encuentras con ps aux. Luego:
kill PID
Si no responde, usa kill -9 PID (fuerza bruta). Úsalo solo como último recurso.
[WARNING] Matar procesos del sistema (como
kernelosystemd) puede dejar tu servidor inestable o inaccesible. Asegúrate de saber qué estás matando.
Gestión de servicios
Los servicios son programas que corren en segundo plano (como Apache, MySQL o SSH). En sistemas modernos con systemd, se gestionan con el comando systemctl.
### Comandos básicos de systemctl
Para ver el estado de un servicio:
sudo systemctl status apache2
Para iniciar, detener o reiniciar:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
Para habilitar un servicio para que arranque con el sistema:
sudo systemctl enable apache2
Para deshabilitarlo:
sudo systemctl disable apache2
[INFO] En distribuciones más antiguas (sin systemd), se usaba
service apache2 startoservice apache2 restart. Aún funciona en muchos sistemas.
Redes y conectividad
¿Tu servidor no responde? ¿No carga el sitio web? Estos comandos te ayudarán a diagnosticar problemas de red.
### Ping
Prueba de conectividad básica:
ping google.com
Presiona Ctrl + C para detener.
### Ver interfaces de red (ip a)
Para ver las direcciones IP de tu servidor:
ip a
O el clásico (aunque obsoleto):
ifconfig
### Puertos abiertos (ss o netstat)
Para ver qué puertos están escuchando:
ss -tulpn
Si no tienes ss, puedes usar:
netstat -tulpn
Esto es crucial para verificar si tu servidor web está escuchando en el puerto 80 o 443.
### Descargar archivos desde la terminal (wget o curl)
Para bajar un archivo desde una URL:
wget https://ejemplo.com/archivo.zip
O con curl:
curl -O https://ejemplo.com/archivo.zip
Almacenamiento y espacio en disco
Un disco lleno puede provocar fallos catastróficos. Revisa el espacio regularmente.
### Ver uso de disco (df)
df -h
El modificador -h hace que la salida sea legible para humanos (GB, MB).
### Ver tamaño de directorios (du)
Para ver cuánto ocupa una carpeta:
du -sh /var/www
El -s resume el total, el -h lo hace legible.
Actualización del sistema
Mantener el sistema actualizado es vital para la seguridad. En distribuciones basadas en Debian/Ubuntu:
sudo apt update
Esto actualiza la lista de paquetes disponibles. Luego:
sudo apt upgrade
Esto instala las actualizaciones.
[TIP] Si usas un panel como Syspanel (puerto 2106), suele tener un botón para actualizar el sistema, pero hacerlo por terminal te da más control y te enseña cómo funciona por dentro.
Lectura de logs: el diario del sistema
Los logs son archivos que registran todo lo que pasa en tu servidor. Son la primera línea de diagnóstico.
### Logs principales
/var/log/syslogo/var/log/messages: Eventos generales del sistema./var/log/auth.log: Intentos de inicio de sesión y autenticación./var/log/apache2/access.logyerror.log: Accesos y errores del servidor web./var/log/mysql/error.log: Errores de la base de datos.
### Ver logs en tiempo real (tail -f)
Para ver las últimas líneas de un log y seguir las nuevas en tiempo real:
tail -f /var/log/apache2/error.log
Presiona Ctrl + C para salir.
### Buscar en logs (grep)
Para buscar un error específico:
grep "error" /var/log/apache2/error.log
Puedes combinar con tail para buscar en las últimas líneas:
tail -100 /var/log/syslog | grep "error"
Preguntas frecuentes (FAQ)
### ¿Qué hago si olvido la contraseña de root?
Si tienes acceso físico o por consola (como VNC), puedes reiniciar en modo de rescate (single-user mode) y restablecerla. Si usas un proveedor de VPS, casi todos ofrecen un "modo de rescate" desde el panel de control. Si tienes Syspanel, revisa las opciones de recuperación en el puerto 2106.
### ¿Cómo sé si mi servidor fue hackeado?
Revisa los logs de autenticación (/var/log/auth.log), busca procesos desconocidos con ps aux, y verifica los usuarios del sistema con cat /etc/passwd. Si ves algo raro, desconecta el servidor de internet y contacta a tu proveedor.
### ¿Puedo deshacer un rm -rf?
No. Una vez borrado, no hay vuelta atrás. Por eso se insiste tanto en las copias de seguridad. Programa backups automáticos con herramientas como rsync o tar.
### ¿Cuál es la diferencia entre apt y apt-get?
apt es el comando más moderno y amigable. apt-get es el clásico. Ambos hacen lo mismo para operaciones básicas. Usa apt si tu sistema lo soporta.
### ¿Cómo reinicio el servidor de forma segura?
sudo reboot
Asegúrate de haber guardado todo y de que no haya procesos críticos en ejecución.
Conclusión: La práctica hace al maestro
Hemos cubierto una base sólida de comandos Linux para administración. Desde navegar el sistema hasta gestionar servicios y diagnosticar problemas. No intentes memorizarlo todo de una vez. Crea una chuleta, ten esta guía abierta y practica en un entorno de prueba (puedes usar una máquina virtual con VirtualBox o un VPS barato).
La administración Linux es una habilidad que se construye con el tiempo. Cada error es una lección, cada comando es una herramienta. Y recuerda, la documentación está a un comando de distancia:
man comando
Por ejemplo, man ls te mostrará el manual completo de ls.
[WARNING] Nunca ejecutes comandos que no entiendas o que encuentres en internet sin saber qué hacen. Un comando aparentemente inofensivo puede ser destructivo. Siempre pregunta, investiga y, sobre todo, haz copias de seguridad.
Ahora ve, abre tu terminal y empieza a explorar. El servidor es tuyo. ¡Bienvenido al club de los SysAdmins!
