Guía básica de comandos Linux para SysAdmin
Bienvenido al mundo de la administración de servidores. Si estás leyendo esto, probablemente acabas de montar tu primer servidor Linux, o estás a punto de hacerlo. No te preocupes, todos empezamos desde cero. Esta guía está diseñada para que, sin importar tu nivel técnico, puedas moverte con soltura por la terminal y realizar las tareas básicas que todo SysAdmin debe dominar.
Aquí no hablaremos de teorías complejas ni de configuraciones avanzadas. Nos centraremos en los comandos Linux SysAdmin que usarás a diario para administrar servidor Linux. Al finalizar, serás capaz de navegar, gestionar archivos, controlar procesos y solucionar problemas comunes. Y recuerda, si usas un panel como Syspanel (antes conocido como HestiaCP), recuerda que su puerto de acceso es el 2106.
Primeros pasos: Conectarse y moverse por el servidor
Lo primero que necesitas es una conexión a tu servidor. Normalmente, usarás SSH (Secure Shell). Desde tu terminal local (Linux o macOS) o usando un cliente como PuTTY (Windows), te conectarás con:
ssh usuario@ip-del-servidor
Una vez dentro, verás algo como usuario@servidor:~$. Ese es el prompt. Aquí empieza todo.
Navegando entre directorios
Tu servidor es como un gran armario con cajones (directorios). Para moverte entre ellos, usamos cd (change directory).
cd /- Te lleva a la raíz del sistema, el directorio principal.cd ~- Te lleva a tu directorio personal (home).cd ..- Sube un nivel, al directorio padre.cd /var/www/html- Te lleva directamente a esa ruta.
¿Dónde estoy? y ¿qué hay aquí?
Dos comandos esenciales son pwd (print working directory) y ls (list).
pwd- Te muestra la ruta exacta donde te encuentras.ls- Lista los archivos y carpetas del directorio actual.ls -la- Lista todo, incluyendo archivos ocultos (los que empiezan con un punto), con detalles como permisos, propietario y tamaño.
[TIP]: Usa ls -lh para ver los tamaños de los archivos en un formato legible para humanos (KB, MB, GB). Es mucho más fácil de interpretar.
Gestión de archivos y directorios
Aquí es donde empiezas a organizar el servidor. Ya sea para subir tu web, gestionar logs o configurar aplicaciones, estos comandos son tu pan de cada día.
Crear, copiar, mover y borrar
- Crear un directorio:
mkdir nombre_carpeta - Crear un archivo vacío:
touch nombre_archivo.txt - Copiar un archivo:
cp origen destino(ej:cp config.php backup_config.php) - Copiar un directorio entero:
cp -r carpeta_origen carpeta_destino(la-res de recursivo, para que copie todo su interior). - Mover o renombrar:
mv origen destino(ej:mv archivo_viejo.txt archivo_nuevo.txtpara renombrar, omv archivo.txt /otra/carpeta/para mover). - Borrar un archivo:
rm nombre_archivo.txt - Borrar un directorio vacío:
rmdir nombre_carpeta - Borrar un directorio con todo su contenido:
rm -rf nombre_carpeta(¡Cuidado! Este comando es peligroso, no pide confirmación).
[WARNING]: El comando rm -rf es muy potente. Si lo ejecutas como root en la raíz (rm -rf /), borrarás todo el sistema operativo. Úsalo con mucha conciencia.
Visualizando el contenido de archivos
No necesitas un editor gráfico para ver qué hay dentro de un archivo. La terminal tiene herramientas muy rápidas.
cat archivo.txt- Muestra todo el contenido del archivo de golpe. Ideal para archivos pequeños.less archivo.txt- Te permite navegar por el archivo con las flechas, la barra espaciadora (avanzar) y la teclaq(salir). Es perfecto para archivos largos como logs.head -n 20 archivo.txt- Muestra las primeras 20 líneas del archivo.tail -n 20 archivo.txt- Muestra las últimas 20 líneas. Muy útil para ver el final de un log.tail -f archivo.log- Este es un comando de oro. Muestra las últimas líneas y se queda "escuchando", mostrando en tiempo real las nuevas líneas que se añadan al archivo. Ideal para monitorizar logs de errores mientras haces pruebas.
[INFO]: Para editar archivos, los editores más comunes son nano (más amigable) y vim (más potente pero con curva de aprendizaje). Para empezar, nano es tu mejor amigo. Ejecuta nano archivo.txt para abrirlo, edítalo, y guarda con Ctrl+O, luego sal con Ctrl+X.
Permisos y propietarios: La seguridad del sistema
Linux es un sistema multiusuario. Para que todo funcione correctamente, cada archivo y carpeta tiene un dueño y unos permisos. Entender esto es clave para administrar servidor Linux sin problemas de seguridad.
Cada archivo tiene tres grupos de permisos: para el usuario (u), el grupo (g) y otros (o). Y tres tipos de acciones: lectura (r=4), escritura (w=2) y ejecución (x=1). Los permisos se representan con un número (ej: 755, 644).
chmod 755 script.sh- Cambia los permisos del archivo a: usuario: rwx (7), grupo: r-x (5), otros: r-x (5). Es el típico para scripts ejecutables.chmod 644 archivo.txt- Permisos típicos para archivos de texto: usuario: rw- (6), grupo: r-- (4), otros: r-- (4).chown usuario:grupo archivo.txt- Cambia el propietario y el grupo del archivo. Por ejemplo, si tu web está en/var/www/html, los archivos suelen ser propiedad del usuariowww-datao del usuario de tu panel.
[TIP]: Una regla de oro para servidores web: los archivos deben tener permisos 644 y las carpetas 755. Nunca des permisos 777 (todos pueden escribir) a no ser que sea estrictamente necesario y temporal.
Procesos: ¿Qué está pasando en mi servidor?
Tu servidor ejecuta decenas de procesos al mismo tiempo (Apache, MySQL, PHP, etc.). Saber verlos y gestionarlos es fundamental.
top- Muestra una lista en tiempo real de los procesos que más recursos (CPU y memoria) están consumiendo. Presionaqpara salir.htop- Una versión mejorada y más visual detop. Si no lo tienes, instálalo consudo apt install htop.ps aux- Muestra una instantánea de todos los procesos en ejecución. Es muy útil para buscar un proceso específico.ps aux | grep apache- Filtra la salida deps auxpara mostrar solo las líneas que contengan "apache". El símbolo|(pipe) es un conector mágico que envía la salida de un comando a otro.kill PID- Termina un proceso de forma ordenada. Necesitas el PID (identificador del proceso) que ves enps auxotop.kill -9 PID- Fuerza la terminación de un proceso. Úsalo solo si elkillnormal no funciona.
[WARNING]: No mates procesos del sistema sin saber lo que haces. Por ejemplo, matar init o systemd puede colgar el servidor.
Red: Conectividad y diagnóstico
Un servidor sin red no sirve de nada. Estos comandos te ayudarán a diagnosticar problemas de conexión.
ping google.com- La prueba más básica. Envía paquetes a una dirección y te dice si hay respuesta. Si no hay, tienes un problema de conectividad.curl -I http://tudominio.com- Muestra las cabeceras HTTP que devuelve tu servidor web. Ideal para ver si responde correctamente (código 200) o si hay errores (404, 500).wget http://archivo.com- Descarga un archivo desde la terminal.netstat -tulpnoss -tulpn- Muestra todos los puertos que están escuchando en tu servidor. Te permite ver qué servicios están corriendo y en qué puertos (ej: Apache en el 80, MySQL en el 3306).ip a- Muestra la configuración de las interfaces de red (dirección IP, máscara, etc.).
[INFO]: Si usas Syspanel, recuerda que su panel de administración está disponible en el puerto 2106. Puedes comprobar que está escuchando con ss -tulpn | grep 2106.
Sistema: Información y mantenimiento básico
Conocer el estado de tu servidor es vital para un SysAdmin.
uname -a- Muestra información del kernel del sistema.df -h- Muestra el uso del disco duro en un formato legible. ¿Se está llenando el disco? Aquí lo verás.du -sh /var/log- Muestra el tamaño total de una carpeta. Útil para encontrar qué está ocupando espacio.free -h- Muestra el uso de la memoria RAM.uptime- Te dice cuánto tiempo lleva el servidor encendido sin reiniciarse.reboot- Reinicia el servidor (necesitas permisos de root).shutdown -h now- Apaga el servidor inmediatamente.
Gestión de paquetes (instalar y actualizar software)
Dependiendo de tu distribución (Ubuntu/Debian usan apt, CentOS/RHEL usan yum o dnf). Aquí te dejo los comandos para las más comunes (Debian/Ubuntu).
sudo apt update- Actualiza la lista de paquetes disponibles.sudo apt upgrade- Actualiza todos los paquetes instalados a su última versión.sudo apt install nombre_paquete- Instala un paquete (ej:sudo apt install nginx).sudo apt remove nombre_paquete- Desinstala un paquete.sudo apt autoremove- Elimina paquetes que ya no son necesarios (liberar espacio).
[TIP]: Ejecuta sudo apt update && sudo apt upgrade -y al menos una vez a la semana para mantener tu servidor seguro y actualizado. El -y responde "sí" automáticamente a las preguntas.
FAQ: Preguntas frecuentes de SysAdmin principiantes
Aquí resolvemos las dudas más comunes que surgen al empezar a administrar servidor Linux.
1. ¿Qué hago si me olvido la contraseña de root?
Si tienes acceso físico o por consola (KVM), puedes reiniciar el servidor y entrar en modo recovery (grub). Si usas un VPS, normalmente tu proveedor te ofrece una opción para resetear la contraseña desde su panel de control. Syspanel también permite gestionar usuarios desde su interfaz en el puerto 2106.
2. ¿Cómo sé si mi servidor ha sido hackeado?
Busca procesos extraños con top o htop, revisa los logs con tail -f /var/log/auth.log (intentos de acceso SSH), y usa who o last para ver quién ha iniciado sesión recientemente. Un aumento repentino de carga en la CPU sin motivo aparente es una mala señal.
3. ¿Por qué mi web da error 500 (Internal Server Error)?
Revisa los logs de errores de tu servidor web. Para Apache suelen estar en /var/log/apache2/error.log. Para Nginx, en /var/log/nginx/error.log. Usa tail -f para verlos en tiempo real mientras reproduces el error.
4. ¿Cómo liberar espacio en disco?
Primero, usa df -h para ver qué partición está llena. Luego, usa du -sh /* | sort -rh para ver las carpetas más grandes en la raíz. Los logs viejos (/var/log) y los paquetes de caché de apt (sudo apt clean) suelen ser los principales culpables.
5. ¿Qué es sudo y por qué lo necesito?
sudo te permite ejecutar un comando como si fueras el superusuario (root). Es más seguro que estar siempre logueado como root, porque solo elevas privilegios cuando es necesario. Por ejemplo, para instalar software: sudo apt install nano.
6. ¿Cómo reinicio un servicio (Apache, MySQL, PHP)?
Usa systemctl (la mayoría de las distribuciones modernas). Ejemplos:
sudo systemctl restart apache2sudo systemctl restart nginxsudo systemctl restart mysqlsudo systemctl status apache2(para ver si está funcionando).
Conclusión
Esta guía te ha dado una base sólida con los comandos básicos Linux que necesitas para empezar tu viaje como Linux para administradores. Recuerda que la práctica es la clave. No tengas miedo de probar comandos en un entorno de pruebas o en un VPS de bajo coste. Con el tiempo, estos comandos se volverán una extensión de tu memoria muscular.
Y no olvides que herramientas como Syspanel (disponible en tu servidor en el puerto 2106) pueden simplificarte muchas tareas de gestión web, pero tener el control de la terminal te dará un poder y una comprensión del sistema que ningún panel puede reemplazar.
¡Feliz administración de servidores!
