20 Comandos Linux Esenciales para el Sysadmin Principiante en VPS
Domina los 20 comandos Linux más usados en administración de servidores: navegación, permisos, procesos, red, paquetes y logs con ejemplos prácticos.
Salir de Windows y caer directo en una VPS Linux vía SSH suele ser un choque inicial: sin GUI, sin Explorer, sin Administrador de tareas. La buena noticia es que el terminal Linux tiene una lógica mucho más coherente de lo que parece a primera vista — una vez que dominas unos 20 comandos, cubres el 90% de las tareas que un sysadmin principiante ejecuta a diario.
Esta guía es para quien acaba de aprovisionar su primera VPS (Ubuntu, Debian o similar) y quiere un arsenal mínimo viable para navegar, gestionar procesos, ajustar permisos, diagnosticar red e instalar software. Vamos a cubrir los comandos agrupados por categoría de tarea, con ejemplos listos para copiar y explicación de cuándo cada uno realmente importa.
Tiempo estimado de lectura y práctica: 30 a 45 minutos si vas probando cada comando en tu propia VPS conforme avanzas.
Requisitos previos
Necesitas una VPS Linux accesible vía SSH — Ubuntu 22.04 LTS o 24.04 LTS funcionan idénticos para los ejemplos. Acceso con usuario común + sudo es suficiente; no hace falta iniciar sesión como root. Cliente SSH en tu computadora local (Terminal en macOS/Linux, o PowerShell/WSL en Windows 10+).
Ubuntu 24.04 LTS usuario + sudo bash 5.x Navegación en el sistema de archivos
Antes de nada, necesitas saber dónde estás, ver qué hay alrededor y moverte. Son cuatro comandos que vas a escribir cientos de veces por día.
Descubre el directorio actual y lista su contenido:
pwd
ls -lahpwd (print working directory) muestra la ruta absoluta donde estás — útil cuando te pierdes después de varios cd. ls -lah lista archivos con permisos (l), tamaños humanizados (h) e incluyendo ocultos (a). Es la forma canónica de inspeccionar un directorio.
Cambia de directorio y vuelve rápidamente:
cd /var/log
cd -
cd ~cd /var/log entra a una ruta absoluta. cd - vuelve al directorio anterior — un atajo que ahorra mucho tiempo. cd ~ (o solo cd) va a tu home (/home/tu-usuario).
Crea y elimina directorios y archivos:
mkdir -p proyectos/sitio/logs
touch proyectos/sitio/index.html
rm -ri proyectos/pruebamkdir -p crea el árbol entero de una vez (no falla si los intermedios ya existen). touch crea un archivo vacío o actualiza el timestamp. rm -ri elimina con confirmación interactiva — recomendado mientras todavía no confías 100% en tus rutas.
No existe papelera en Linux. rm -rf / o rm -rf $VAR/ con una variable vacía destruye el sistema. Siempre prefiere rm -ri cuando estés aprendiendo, y nunca ejecutes rm -rf en rutas generadas por scripts sin validarlas antes.
Visualización y edición de archivos
Las configuraciones de Linux son archivos de texto en /etc/. Saber leer y editar sin fricción es esencial.
Mira el contenido de archivos pequeños y grandes:
cat /etc/hostname
less /var/log/syslog
tail -f /var/log/auth.log
head -n 50 /etc/ssh/sshd_configcat vuelca el archivo completo — bueno para archivos cortos. less abre paginación navegable (flechas, / para buscar, q para salir) — úsalo siempre que el archivo pase de una pantalla. tail -f acompaña en tiempo real archivos que se están escribiendo, como logs. head -n 50 muestra solo las primeras 50 líneas.
Edita archivos directamente en el terminal:
sudo nano /etc/ssh/sshd_confignano es el editor más amigable para quien viene de GUI — atajos en la barra inferior (Ctrl+O guarda, Ctrl+X sale). Cuando tengas más experiencia, el estándar profesional es vim o vi, presente en cualquier servidor incluso el más minimalista.
Antes de tocar sshd_config, nginx.conf o cualquier archivo que pueda dejarte fuera, copia: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak. Cuesta cero y salva noches de sueño.
Permisos y propiedad
Linux controla el acceso vía tres niveles (dueño, grupo, otros) y tres permisos (lectura, escritura, ejecución). Los dos comandos siguientes cubren el 95% de los casos.
Ajusta permisos de archivos y directorios:
chmod 644 index.html
chmod 755 /var/www/sitio
chmod +x script.shLos números son en octal: 644 = el dueño lee/escribe, los demás solo leen. 755 = el dueño puede todo, los demás leen y ejecutan (necesario para directorios). +x añade ejecución para todos sin tocar el resto — atajo práctico para scripts.
Cambia el dueño y grupo de archivos:
sudo chown www-data:www-data /var/www/sitio -Rchown usuario:grupo archivo cambia dueño y grupo. La flag -R aplica recursivamente en todo el árbol. Caso clásico: después de hacer git clone como tu usuario, ajustarlo al dueño del servidor web para servir los archivos.
Procesos y recursos del sistema
Saber qué está corriendo, cuánto consume y cómo parar procesos colgados es esencial para mantener la VPS saludable.
Monitoriza procesos en tiempo real:
top
htoptop viene en cualquier Linux — q sale, M ordena por memoria, P por CPU. htop (instálalo con sudo apt install htop) es la versión moderna: colores, navegación por flechas, F9 para matar el proceso. Para VPS de producción, deja htop instalado como estándar.
Lista y mata procesos específicos:
ps aux | grep nginx
sudo kill 1234
sudo kill -9 1234ps aux lista todos los procesos del sistema; combinado con grep, filtra por nombre. kill PID envía SIGTERM (cierre educado). kill -9 PID envía SIGKILL (fuerza bruta) — úsalo solo cuando SIGTERM no resuelve, porque no le da chance al proceso de limpiar su estado.
Mira el uso de disco y memoria:
df -h
du -sh /var/log/*
free -hdf -h muestra el espacio libre por partición en formato humano. du -sh /ruta/* muestra el tamaño de cada elemento dentro de la ruta — invaluable para descubrir quién está llenando el disco. free -h muestra la RAM total, usada y disponible.
En el 80% de los casos de disco lleno en VPS, el culpable es /var/log/. Ejecuta sudo du -sh /var/log/* | sort -h y ve si algún log está en gigabytes — generalmente es falta de logrotate o un error en bucle generando spam.
Red y conectividad
Diagnosticar problemas de red es la mitad del trabajo de sysadmin. Estos tres comandos resuelven la mayoría.
Mira interfaces, IPs y puertos en escucha:
ip addr
ss -tulpnip addr (o ip a) muestra los IPs configurados en cada interfaz — reemplaza al antiguo ifconfig. ss -tulpn lista todos los puertos TCP/UDP abiertos y qué proceso está escuchando — reemplaza al antiguo netstat. Memoriza este comando: tcp, udp, listen, process, numeric.
Prueba conectividad y DNS:
ping -c 4 hostini.com.br
curl -I https://hostini.com.br
dig hostini.com.brping -c 4 envía 4 paquetes ICMP — confirma que la máquina alcanza el destino. curl -I hace un request HEAD HTTP — confirma que la aplicación web responde, mostrando los headers. dig resuelve DNS detalladamente — útil cuando ping funciona por IP pero falla por nombre.
Gestión de paquetes
En Ubuntu y Debian, apt instala, actualiza y elimina software de los repositorios oficiales.
Actualiza el índice e instala paquetes:
sudo apt update
sudo apt upgrade -y
sudo apt install -y nginx git curl
sudo apt remove --purge paquete-viejoapt update baja la lista actualizada de paquetes — no instala nada aún. apt upgrade aplica las actualizaciones disponibles. apt install baja e instala; -y confirma automáticamente. remove --purge desinstala incluyendo los archivos de configuración.
En VPS de producción, automatiza apt update && apt upgrade -y vía cron semanal o habilita unattended-upgrades para los parches de seguridad. Un servidor desactualizado es la puerta de entrada más común de compromiso.
Logs y diagnóstico
Cuando algo se rompe, el camino es siempre el mismo: leer los logs.
Consulta logs del sistema con journalctl:
journalctl -p err -n 50
journalctl -u nginx -f
journalctl --since "1 hour ago"journalctl es la interfaz unificada de logs en distros con systemd. -p err filtra solo errores, -n 50 muestra las últimas 50 líneas. -u nginx -f sigue en tiempo real el servicio nginx. --since acepta expresiones naturales (“yesterday”, “2 hours ago”).
Gestiona servicios del sistema:
sudo systemctl status nginx
sudo systemctl restart nginx
sudo systemctl enable nginxstatus muestra si el servicio está corriendo + las últimas líneas del log. restart reinicia (úsalo después de cambiar la config). enable hace que el servicio inicie automáticamente en el boot — olvidarse de esto es causa común de “el sitio no volvió después del reboot”.
Verificación
Para confirmar que asimilaste lo esencial, ejecuta esta secuencia de diagnóstico — usa los 20 comandos cubiertos y te da un snapshot completo de la VPS:
pwd && whoami && hostname
df -h && free -h
ss -tulpn | grep LISTEN
systemctl --failed
journalctl -p err -n 20 --no-pager
Si la salida tiene sentido para ti — sabes en qué directorio estás, cuánto recurso hay libre, qué servicios están escuchando, si alguno falló, y qué errores recientes existen — tienes la base operativa para administrar una VPS Linux con tranquilidad.
Próximos pasos
A partir de aquí, tres direcciones valen la pena:
- SSH con clave pública: reemplaza el login por contraseña por clave SSH y desactiva password authentication en
sshd_config— primer hardening obligatorio. - Firewall con ufw: aprende
ufw allow,ufw deny,ufw statuspara controlar exactamente qué puertos quedan expuestos. - Automatización con cron y systemd timers: programa backups, actualizaciones y tareas recurrentes sin depender de que inicies sesión manualmente.
- Configuración de Nginx o Caddy: sirve sitios y APIs con HTTPS automático vía Let’s Encrypt.
Si estás poniendo estos fundamentos en práctica, una VPS Hostini ya viene con acceso SSH root listo, consola web para emergencias cuando el SSH falle, e imágenes limpias de Ubuntu/Debian/Rocky para empezar sin sorpresas.
Preguntas frecuentes
¿Cuál es la diferencia entre apt y apt-get?
apt es la interfaz moderna, más amigable, con salida coloreada y barra de progreso, pensada para uso interactivo. apt-get es la versión tradicional, más estable para scripts y automatización — la sintaxis interna casi no cambia. En scripts de producción, prefiere apt-get; en el terminal del día a día, usa apt.
¿Por qué debo evitar usar root directamente y preferir sudo?
Iniciar sesión como root deja cualquier comando sin red de seguridad — un rm equivocado borra el sistema sin confirmación. sudo exige tu contraseña, registra cada llamada en /var/log/auth.log y permite revocar privilegios de un usuario específico sin tocar al root. En VPS de producción, lo estándar es desactivar el login directo de root vía SSH.
¿Cómo saber qué proceso está consumiendo toda la memoria de la VPS?
Ejecuta top o htop y ordena por uso de memoria (en htop, F6 → PERCENT_MEM). Para un snapshot instantáneo vía script, usa ps aux --sort=-%mem | head -10. Si un proceso específico está perdiendo memoria con el tiempo, combínalo con watch -n 5 'ps -p PID -o %mem,rss,cmd' para observar la curva.
¿Cuál es la diferencia entre chmod 644 y chmod 755?
644 da lectura+escritura al dueño y lectura a los demás — estándar para archivos comunes (HTML, configs, textos). 755 añade permiso de ejecución para todos — necesario para directorios (sin x no se puede entrar) y para scripts/binarios. Nunca uses 777 en producción; expone escritura a cualquier usuario del sistema.
¿Cómo ver los últimos errores del sistema rápidamente?
En distros con systemd (Ubuntu 20.04+, Debian 12, Rocky 9), usa journalctl -p err -n 50 para ver los 50 errores más recientes. Para seguir en tiempo real, journalctl -f. Los logs antiguos no-systemd están en /var/log/ — syslog, auth.log, kern.log son los más útiles.
¿Cómo verificar si un puerto está abierto y quién está escuchando en él?
ss -tulpn lista todos los puertos TCP/UDP en escucha con el proceso dueño. Para chequear un puerto específico, ss -tulpn | grep :443. Si quieres probar desde fuera si el puerto responde, usa nc -zv ip-del-servidor 443 o curl -v telnet://ip:443 desde otra máquina.