15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
15.04.2026

Tu primera semana en un servidor Linux — Más de 35 comandos esenciales

Palabras clave: Referencia rápida antes de comenzar

Antes de comenzar, aquí están los términos que verás a lo largo de esta guía. No necesitas memorizarlos, solo saber que existen, y el contexto los hará comprensibles.

TérminoQué significa
Terminal 💻La interfaz basada en texto donde escribes comandos
Shell 🐚El programa (generalmente Bash) que interpreta tus comandos
Bash ⚙️El shell más común; el “lenguaje” que habla tu terminal
Sudo 🔑Un comando que te permite ejecutar otros comandos con privilegios de administrador
Gestor de paquetes 📦Una herramienta (como apt) que instala y actualiza software por ti
Daemon / Servicio 👻Un programa en segundo plano que se ejecuta continuamente (como un servidor web)
Permisos 🔒Reglas que controlan quién puede leer, escribir o ejecutar un archivo
Root 👑La cuenta de administrador del sistema todopoderosa

Con esos términos en tu bolsillo, estás listo. Comencemos.


Introducción: Comenzando el viaje del servidor

Acabas de conectarte a tu nuevo servidor. Tal vez lo aprovisionaste de un proveedor como AlexHost, que ofrece despliegue instantáneo de Ubuntu con un solo clic. Abres tu terminal, escribes: ssh root@your-server-ip, y presionas Enter. La pantalla se limpia. Un cursor parpadeante te mira desde una línea que dice algo como root@vps:~#

¿Y ahora qué?

Ese momento — el espacio entre “tengo un servidor” y “sé qué hacer con él” — es donde la mayoría de las personas se detienen. Cierran el terminal, se dicen a sí mismos que lo resolverán más tarde, y vuelven a hacer clic a través de interfaces gráficas. Pero aquí está la cosa: Linux ejecuta más del 90% de los servidores en la nube del mundo. Alimenta teléfonos Android, dispositivos integrados, supercomputadoras, y la infraestructura detrás de casi todos los servicios que usas a diario. Las personas que realmente controlan estos sistemas no usan clics de ratón. Usan la línea de comandos.

El terminal no es un relicto. Es la forma más directa, componible y confiable de decirle a una computadora qué hacer. No hay sobrecarga gráfica, no hay menús que navegar, no hay que esperar a que se cargue una interfaz de usuario. Escribes un comando, algo sucede, y encadenas el siguiente comando a él. A través de SSH, funciona de manera idéntica ya sea que tu servidor esté en la habitación contigua o al otro lado del océano.

Este artículo no te dará una lista de memorización. En cambio, vas a vivir un viaje realista de 7 días en un nuevo VPS de Linux — la misma progresión que seguirías si realmente te sentaras con un nuevo servidor hoy. Al final, no solo conocerás los comandos. Sabrás cuándo recurrir a cada uno.


Día 1: Conectándose y explorando

Acabas de conectarte a tu servidor. El terminal muestra algo como root@vps:~#. Estás conectado, pero ¿dónde estás? ¿Qué hay aquí? Vamos a averiguarlo.

Paso 1: Conéctate con “ssh”

Todo comienza con ssh — Secure Shell. Es el comando de puerta de entrada que te lleva de tu máquina local al servidor remoto.

ssh username@server-ip

En la mayoría de los proveedores de VPS, usarás la dirección IP de tu panel de control de alojamiento y el nombre de usuario que te asignen (a menudo root o ubuntu). Si es la primera vez que te conectas, se te pedirá que confirmes la huella digital del servidor — escribe yes y presiona Enter.

Ahora estás conectado a tu servidor.

Paso 2: Confirma tu identidad con “whoami”

Antes de hacer cualquier cosa, verifica con qué usuario estás conectado.

whoami

Si ves root, estás operando como el administrador todopoderoso. Eso es común en un VPS nuevo, pero también significa que cada comando que escribas tiene acceso completo al sistema, así que presta atención.

Sabes quién eres en este sistema.

Paso 3: Encuentra tu ubicación con: “pwd”

El comando pwd — Print Working Directory — te dice exactamente dónde estás en el sistema de archivos.

pwd
En un VPS nuevo conectado como root, normalmente aterrizarás en /root. Si estás usando una cuenta de usuario regular, verás /home/username en su lugar. Piensa en esto como tu “base de operaciones” — el punto de partida para todo lo que harás.

Sabes dónde estás.

Paso 4: Ve lo que hay presente con “ls”

Ahora echemos un vistazo alrededor del servidor. El comando ls lista archivos y directorios en tu ubicación actual.

ls
Una salida vacía significa que no hay nada aquí todavía, lo cual es normal para un servidor nuevo. Pero el verdadero poder viene con las banderas. Prueba:

ls -la
Esto te permite ver todo, incluidos los archivos ocultos (aquellos que comienzan con un punto) e información detallada:

La bandera -l te da el formato largo (permisos, propietario, tamaño, fecha), y -a muestra todos los archivos, incluidos los ocultos. Usarás ls -la constantemente.

Puedes ver todo en tu directorio actual.

Paso 5: Muévete con “cd”

El comando cd — Change Directory — es cómo navegas por el sistema de archivos.

cd /var/log
#Check new dir location
pwd
/var/log

Tres variaciones que usarás constantemente:

cd ..      # Go up one directory level
cd ~       # Go back to your home directory
cd -       # Go back to the previous directory you were in

El truco “cd -“ es especialmente útil — es como un “deshacer” para tu último cambio de directorio.

Puedes moverte a cualquier parte del sistema de archivos.

Paso 6: Limpia con “clear”

Después de ejecutar varios comandos, tu terminal se llena de desorden. El comando clear limpia la pantalla y te da un nuevo comienzo.

clear
Consejo profesional: también puedes presionar Ctrl+L para el mismo efecto — es más rápido una vez que se convierte en memoria muscular.

Tu terminal está limpia y lista para el próximo comando.

Paso 7: Busca cosas con “man”

No necesitas memorizar cada bandera para cada comando. El comando man — Manual — abre la documentación incorporada para cualquier comando.

man ls
Esto abre la página del manual completo para ls, mostrando cada bandera disponible, lo que hace y ejemplos. Navega con las teclas de flecha o la barra espaciadora, y presiona q para salir.
Piensa en man como tu red de seguridad. Cuando no estás seguro de lo que hace un comando o qué opciones admite, man tiene la respuesta.

Tienes acceso a la documentación incorporada para cada comando.

Paso 8: Revisa tu pasado con “history”

El comando history muestra cada comando que has escrito en esta sesión.

history

    1  whoami
    2  pwd
    3  ls -la
    4  cd /var/log
    5  clear
    6  history

Aquí está la parte útil: puedes volver a ejecutar cualquier comando escribiendo “!” seguido de su número.

!3
Esto vuelve a ejecutar el comando número 3 (ls -la). Te ahorra tener que volver a escribir comandos largos y de cometer errores tipográficos cuando tienes prisa.

Puedes revisar y volver a ejecutar cualquier comando anterior.


Día 2: Creando y gestionando tu espacio de trabajo

Sabes dónde estás y cómo moverte. Ahora es el momento de construir algo: una estructura de directorios para tu proyecto.

Paso 1: Crea directorios con “mkdir”

El comando mkdir — Make Directory — crea nuevas carpetas.

mkdir projects
# Check dir
ls
projects

Pero la verdadera estrella es mkdir -p, que crea directorios anidados de un solo golpe, incluidos los directorios principales que no existen aún.

mkdir -p projects/myapp/logs

Sin -p, tendrías que crear projects, luego projects/myapp, luego projects/myapp/logs por separado. Con él, un comando hace todo.

Has creado una estructura de directorios para tu proyecto.

Paso 2: Crea archivos vacíos con “touch”

El comando touch crea un archivo vacío instantáneamente.

touch projects/myapp/notes.txt
Verifica el nuevo archivo:


ls projects/myapp/
# logs notes.txt

Si el archivo ya existe, touch actualiza su marca de tiempo en su lugar. Es una forma rápida de crear archivos de marcador de posición o marcar que has trabajado en algo.

Has creado tu primer archivo en el servidor.

Paso 3: Copia archivos con “cp”

El comando cp — Copy — duplica archivos y directorios.

cp projects/myapp/notes.txt projects/myapp/notes-backup.txt

Para directorios, necesitas la bandera -r (recursiva), que copia todo dentro del directorio también:

cp -r projects/myapp projects/myapp-backup

Puedes duplicar archivos y árboles de directorios enteros.

Paso 4: Mueve o renombra archivos con “mv”

El comando mv hace dos trabajos: mueve archivos y los renombra. Mismo comando, diferente contexto.

mv projects/myapp/notes.txt projects/myapp/readme.txt

Esto renombra notes.txt a readme.txt en el mismo directorio. Para mover realmente un archivo a una ubicación diferente:

mv projects/myapp/readme.txt projects/

Puedes mover y renombrar archivos con un solo comando.

Paso 5: Elimina archivos con “rm”

El comando rm — Remove — elimina archivos permanentemente.

rm projects/myapp-backup/readme.txt

Para directorios, usa -r (recursivo):

rm -r projects/myapp-backup

⚠️ ADVERTENCIA: rm -rf es la opción nuclear. La bandera -f fuerza la eliminación sin pedir confirmación, y combinada con -r, eliminará árboles de directorios enteros en silencio. No hay deshacer. Verifica dos veces la ruta antes de presionar Enter. Nunca ejecutes rm -rf / — intentará eliminar todo tu sistema de archivos.

Puedes eliminar archivos y directorios que ya no necesitas.

Paso 6: Imprime y escribe texto con “echo”

El comando echo imprime texto en el terminal, pero su verdadero poder viene cuando se combina con operadores de redirección.

echo "Hello, server"

Hello, server

Ahora redirige esa salida a un archivo usando “>” (sobrescribir) o “>>” (añadir):

echo "Server setup started" > projects/myapp/notes.txt

echo "Added a log entry" >> projects/myapp/notes.txt

El operador > crea el archivo o lo sobrescribe si existe. El operador >> añade al final sin tocar el contenido existente. Este es tu primer vistazo a la redirección, uno de los superpoderes centrales de Linux.

Puedes escribir texto en archivos directamente desde la línea de comandos.

Paso 7: Lee archivos con “cat”

El comando cat — Concatenate — muestra el contenido de los archivos en el terminal.

cat projects/myapp/notes.txt

Para archivos pequeños, cat es la forma más rápida de inspeccionar el contenido. Para archivos más grandes, querrás less (que te permite desplazarte), pero cat es tu opción para verificaciones rápidas.

Puedes leer el contenido de archivos sin abrir un editor.

Paso 8: Edita archivos con “nano”

Cuando necesitas realmente modificar un archivo, nano es el editor de terminal más amigable para principiantes.

nano projects/myapp/notes.txt

Nano abre el archivo en tu terminal con una interfaz simple. Los atajos de teclado se muestran en la parte inferior de la pantalla.

💡 CONSEJO: Atajos esenciales de Nano: Ctrl+O para guardar (luego Enter para confirmar), Ctrl+X para salir, Ctrl+W para buscar texto. Eso es todo lo que necesitas para comenzar a editar.

También escucharás sobre vim — es más poderoso pero tiene una curva de aprendizaje notoriamente empinada. Quédate con nano por ahora. Puedes explorar vim más tarde cuando te sientas cómodo con el terminal.

Puedes editar archivos directamente en el servidor.


Día 3: Encontrando lo que necesitas

Has creado una docena de archivos en varios directorios. Ahora necesitas encontrar el que editaste ayer. Aquí te mostramos cómo.

Paso 1: Busca archivos con “find”

El comando find busca archivos por nombre, tipo, tamaño y más.

find ./projects -name "*.txt"

Esto busca todo bajo /home para archivos que terminen en .txt. También puedes buscar por tipo — find / -type f -name “config” encuentra todos los archivos llamados “config” en todo el sistema.

find es exhaustivo pero puede ser lento en sistemas de archivos grandes. Para búsquedas diarias, es tu herramienta más confiable.

Puedes localizar cualquier archivo en el sistema por nombre o tipo.

Paso 2: Busca dentro de archivos con “grep”

Si find localiza archivos, grep localiza contenido dentro de ellos. Es el detective de la línea de comandos.

grep "error" /var/log/syslog
Apr 10 12:15:03 server kernel: [error] disk I/O timeout
Apr 10 12:18:22 server nginx: [error] connection refused
Aquí es donde grep se vuelve aún más poderoso — combínalo con otros comandos usando el operador de tubería “|”. La tubería toma la salida de un comando y la alimenta como entrada al siguiente.

cat /var/log/syslog | grep "error"

Esto hace lo mismo que el ejemplo anterior, pero el patrón de tubería te permite encadenar comandos juntos. Usarás tuberías constantemente una vez que hagan clic. Por ejemplo, para buscar errores en las entradas de registro de hoy:

cat /var/log/syslog | grep "Apr 15" | grep "error"

Cada tubería reduce aún más los resultados. Esta componibilidad es lo que hace que la línea de comandos de Linux sea tan poderosa.

Puedes buscar cualquier patrón de texto en cualquier archivo.

Paso 3: Encuentra ubicaciones ejecutables con “which”

El comando which te dice dónde vive el archivo ejecutable de un comando en el sistema.

which python3
/usr/bin/python3
Esto es útil cuando necesitas saber qué versión de un programa estás ejecutando, o cuando un script necesita la ruta completa a un ejecutable.

Sabes exactamente dónde se almacena el ejecutable de cualquier comando.

Paso 4: Encuentra más con “whereis”

El comando whereis va más allá que which — encuentra el binario, el código fuente (si está instalado) y la página del manual.

whereis python3
python3: /usr/bin/python3 /usr/lib/python3 /etc/python3 /usr/share/man/man1/python3.1.gz
Donde which te da una ruta, whereis te da la imagen completa. Usa which cuando solo necesites el ejecutable. Usa whereis cuando quieras ver todo lo relacionado con un comando.

Puedes localizar cada componente de un comando en el sistema.

Paso 5: Obtén una descripción rápida con “whatis”

El comando whatis te da una descripción de una línea de cualquier comando.

whatis grep
grep (1) - print lines that match patterns
Es la forma más rápida de recordarte qué hace un comando sin abrir la página completa de man. Piensa en ello como una consulta rápida de glosario.

Puedes obtener un resumen de una línea del propósito de cualquier comando.


Día 4: Entendiendo tu máquina

Antes de instalar cualquier cosa, deberías saber con qué estás trabajando. ¿Cuánto espacio en disco tienes? ¿Cuánta RAM? ¿Qué ya está funcionando?

Paso 1: Verifica la información del sistema con “uname”

El comando uname — Unix Name — muestra información del sistema.

uname -a
Linux alexserver 6.8.0-110-generic #110-Ubuntu SMP PREEMPT_DYNAMIC Thu Mar 19 15:09:20 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
La bandera -a muestra todo: el nombre del kernel, el nombre del host, la versión del kernel, la arquitectura y el sistema operativo. En un VPS, esto te dice exactamente qué kernel estás ejecutando y si estás en un sistema de 64 bits (casi seguro que lo estás).

Conoces la versión de tu kernel y la arquitectura del sistema.

Paso 2: Verifica el espacio en disco con “df”

El comando df — Disk Free — muestra cuánto almacenamiento tienes y cuánto está usado.

df -h

La bandera -h significa “legible por humanos” — muestra tamaños en GB y MB en lugar de bytes sin procesar. Presta atención a la línea de la partición “/” raíz. Al 7% usado, este servidor tiene mucho espacio. Si alguna vez ves ese número subiendo más del 80%, es hora de limpiar.

Sabes exactamente cuánto espacio en disco está disponible.

Paso 3: Verifica la memoria con “free”

El comando free muestra el uso de tu RAM.

free -h

Nuevamente, -h te da una salida legible por humanos. La columna clave aquí es “available” — esta es la memoria realmente libre para nuevas aplicaciones. “Used” incluye memoria que el kernel está usando para almacenamiento en caché, que se puede liberar si es necesario. En un VPS nuevo con 4GB de RAM, ver 3.3GB disponibles es exactamente lo que quieres.

Sabes cuánta memoria tiene tu servidor y cuánta está libre.

Paso 4: Monitorea procesos con “top”

El comando top muestra monitoreo de procesos en tiempo real — una vista en vivo de lo que está funcionando y qué recursos consume cada proceso.

top

top se actualiza cada pocos segundos. Las columnas más importantes son PID (ID del proceso), %CPU, %MEM y COMMAND. Si tu servidor alguna vez se siente lento, top es el primer lugar para mirar.

💡 CONSEJO: Presiona q para salir de top. Si top está funcionando y no sabes cómo detenerlo, esta es la respuesta.

Puedes monitorear procesos en ejecución en tiempo real.

Paso 5: Toma una instantánea de procesos con “ps”

El comando ps — Process Status — te da una instantánea estática de los procesos en ejecución.

ps aux

Las banderas aux muestran todos los procesos de todos los usuarios con información detallada. Las columnas clave: USER (quién posee el proceso), PID (el ID del proceso que usarías con kill), %CPU y %MEM (uso de recursos), y COMMAND (qué está funcionando). Usa ps cuando necesites una instantánea rápida en lugar de una vista en vivo.

Puedes tomar una instantánea de cada proceso en ejecución.

Paso 6: Verifica el calendario con “cal”

El comando cal muestra un calendario simple.

cal

     April 2026
Su Mo Tu We Th Fr Sa
           1  2  3  4
  5  6  7  8  9 10 11
 12 13 14 15 16 17 18
 19 20 21 22 23 24 25
 26 27 28 29 30

No es esencial, pero es un buen recordatorio de que el terminal puede hacer más que solo gestionar servidores. También es una forma rápida de verificar la fecha sin salir de tu sesión.

Puedes mostrar un calendario directamente en tu terminal.

Paso 7: Verifica la fecha con “date”

El comando date muestra la fecha y hora actuales del sistema.

date
Wed Apr 15 14:32:01 UTC 2026
Esto importa más de lo que piensas. Muchos servicios — especialmente certificados SSL, rotación de registros y tareas programadas — dependen de una hora del sistema precisa. Si la fecha parece incorrecta, querrás corregirla antes de instalar cualquier cosa.

Sabes la fecha y hora actuales de tu servidor.


Día 5: Instalando y ejecutando servicios

Tu servidor está funcionando, conoces sus especificaciones, y ahora es el momento de hacerlo útil. Instalemos software y pongamos servicios en marcha.

Paso 1: Actualiza listas de paquetes con “apt update”

Antes de instalar cualquier cosa, actualiza tus listas de repositorios de paquetes.

sudo apt update
Resultado:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [129 kB]
Fetched 257 kB in 2s (134 kB/s)
Reading package lists... Done
Building dependency tree... Done
Distinción importante: apt update actualiza la lista de paquetes disponibles — no instala nada. apt upgrade realmente descarga e instala versiones más nuevas de los paquetes que ya tienes. Casi siempre van juntos:

sudo apt update && sudo apt upgrade -y

En sistemas basados en Red Hat como CentOS o Fedora, los comandos equivalentes son yum update o dnf update.

Tu lista de paquetes está actualizada y lista para instalaciones.

Paso 2: Instala software con “apt install”

Ahora instalemos algo. Nginx es un servidor web popular — un buen primer servicio para configurar.

sudo apt install nginx -y
Resultado:
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
nginx nginx-common nginx-core
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 582 kB of archives.
Setting up nginx (1.18.0-6ubuntu14.4) ...
Aquí es donde tu servidor comienza a hacer algo real. La bandera -y confirma automáticamente la instalación para que no tengas que escribir yes. Nginx se instalará y típicamente comenzará a funcionar inmediatamente.

Has instalado tu primer servicio en el servidor.

Paso 3: Gestiona servicios con “systemctl”

El comando systemctl — System Control — es cómo inicias, detienes y gestionas servicios.

systemctl status nginx
Resultado:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-04-15 14:35:00 UTC; 2min ago
Main PID: 1234 (nginx)
Tasks: 2 (limit: 4915)
Memory: 3.2M
CGroup: /system.slice/nginx.service
La línea clave es Active: active (running) — eso significa que Nginx está en funcionamiento. Tres comandos systemctl que usarás constantemente:

sudo systemctl start nginx    # Start the service now
sudo systemctl stop nginx     # Stop the service
sudo systemctl enable nginx   # Start automatically on every boot

El comando enable es el que los principiantes pasan por alto. start ejecuta el servicio ahora mismo. enable asegura que se inicie cada vez que el servidor se reinicie. Para un servidor web, casi siempre querrás ambos.

Puedes controlar cualquier servicio en tu servidor.

Paso 4: Detén procesos con “kill”

A veces necesitas terminar un proceso manualmente. El comando kill hace esto por PID.

kill 1234

Esto envía una señal de terminación al proceso 1234, pidiéndole que se cierre de manera ordenada. Si no responde, puedes forzarlo:

kill -9 1234

⚠️ ADVERTENCIA: kill -9 es un forzado de terminación. No permite que el proceso limpie — no guarda el estado, no cierra conexiones correctamente. Úsalo solo cuando un kill normal no funcione.

Encuentra el PID usando ps aux o top, luego elimínalo.

Puedes terminar cualquier proceso por su ID.

Paso 5: Mata por nombre con “pkill”

A veces no es necesario encontrar el PID primero. El comando pkill mata procesos por nombre.

pkill nginx

Esto encuentra todos los procesos que coinciden con “nginx” y los termina. Es más rápido que buscar el PID con ps y luego ejecutar kill. Usa pkill cuando conozcas el nombre del proceso y quieras una terminación rápida.

Puedes matar procesos sin conocer su PID.

Paso 6: Descarga archivos con “wget”

El comando wget — Web Get — descarga archivos de internet.

wget https://example.com/file.zip
Ejemplo de resultado:
--2026-04-15 14:40:00-- https://example.com/file.zip
Resolving example.com (example.com)... 93.184.216.34
Connecting to example.com (example.com)|93.184.216.34|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1048576 (1.0M) [application/zip]
Saving to: 'file.zip'
file.zip 100%[===================>] 1.00M 2.34MB/s in 0.4s
2026-04-15 14:40:01 (2.34 MB/s) - 'file.zip' saved [1048576/1048576]
wget es sencillo: dale una URL, descarga el archivo en tu directorio actual. También admite reanudar descargas interrumpidas con wget -c.

Puedes descargar archivos directamente a tu servidor.

Paso 7: Transfiere datos con “curl”

El comando curl — Client URL — es más versátil que wget. Maneja descargas, solicitudes de API y transferencias de datos con encabezados personalizados.

curl -O https://example.com/file.zip

La bandera -O guarda el archivo con su nombre original (igual que wget). Pero curl puede hacer mucho más:

curl -s https://api.example.com/data

La bandera -s ejecuta en silencio, haciendo que curl sea perfecto para scripting y llamadas a API. Mientras que wget es excelente para descargas simples, curl es la herramienta a la que recurrirás cuando necesites interactuar con servicios web, probar APIs o enviar encabezados HTTP personalizados.

Puedes transferir datos desde cualquier URL — archivos, APIs y más.


Día 6: Asegurando las cosas

Tu servidor está ejecutando un servicio y funciona. Pero ahora mismo, está completamente abierto. Vamos a asegurarlo.

📝 NOTA: Tu usuario necesita permisos de sudo para que estos comandos funcionen. En la mayoría de los proveedores de VPS, el usuario predeterminado ya está configurado con acceso sudo. Si creaste un nuevo usuario, necesitarás agregarlo al grupo sudo primero.

Paso 1: Ejecuta comandos de forma segura con “sudo”

El comando sudo — Superuser Do — te permite ejecutar comandos con privilegios elevados.

sudo apt update

Se te pedirá tu contraseña la primera vez que uses sudo en una sesión. Después de eso, lo recordará por unos minutos. La razón por la que sudo existe es simple: ejecutar como root todo el tiempo es peligroso. Un solo error tipográfico con privilegios de root puede borrar tu sistema. sudo te obliga a escalar conscientemente los privilegios para cada comando — es un mecanismo de seguridad, no solo un escalador de privilegios.

Puedes ejecutar comandos de administrador sin iniciar sesión como root.

Paso 2: Cambia permisos de archivos con “chmod”

El comando chmod — Change Mode — controla quién puede leer, escribir o ejecutar un archivo.

chmod 755 script.sh

Los números representan permisos para tres grupos: propietario, grupo y todos los demás. Cada dígito es una suma de lectura (4), escritura (2) y ejecución (1):

  • 755 significa: el propietario puede hacer todo (4+2+1=7), el grupo puede leer y ejecutar (4+1=5), todos los demás pueden leer y ejecutar (4+1=5). Esto es estándar para scripts y directorios.
  • 644 significa: el propietario puede leer y escribir (4+2=6), el grupo puede leer (4), todos los demás pueden leer (4). Esto es estándar para archivos de configuración y documentos.

chmod 644 config.txt

Si un script no se ejecuta, casi siempre es un problema de permisos. chmod +x script.sh es una forma rápida de hacer que cualquier archivo sea ejecutable sin recordar los números.

Controlas exactamente quién puede acceder a cada archivo.

Paso 3: Cambia la propiedad de archivos con “chown”

El comando chown — Change Owner — establece quién posee un archivo.

sudo chown www-data:www-data /var/www/html/index.html

Esto cambia el propietario a www-data y el grupo a www-data. Se usa comúnmente al configurar servidores web — el proceso del servidor web necesita poseer los archivos que sirve. El formato es user:group, y casi siempre necesitarás sudo para cambiar la propiedad.

Puedes asignar la propiedad de archivos a cualquier usuario o grupo.

Paso 4: Cambia contraseñas con “passwd”

El comando passwd actualiza las contraseñas de los usuarios.

passwd username
En un VPS nuevo, cambiar la contraseña predeterminada debería ser una de tus primeras acciones. Si estás conectado como el usuario cuya contraseña deseas cambiar, simplemente ejecuta passwd sin un nombre de usuario.

Puedes actualizar las contraseñas de cualquier usuario en el sistema.

Paso 5: Crea nuevos usuarios con “useradd”

El comando useradd crea una nueva cuenta de usuario.

sudo useradd -m newuser

La bandera -m es crítica — crea un directorio de inicio en /home/newuser. Sin ella, el usuario existe pero no tiene directorio de inicio, lo que causa problemas con SSH y varias aplicaciones. Después de crear el usuario, establece su contraseña:

sudo passwd newuser

Puedes crear nuevas cuentas de usuario con directorios de inicio.

Paso 6: Cambia de usuario con “su”

El comando su — Switch User — te permite iniciar sesión como otro usuario.

su - newuser
whoami
newuser
La bandera “-“ (o –login) es importante — carga el entorno del nuevo usuario, incluida su ruta y configuración de shell. Sin ella, cambiarías de usuario pero mantendrías el entorno del usuario anterior, lo que lleva a un comportamiento confuso.

Puedes cambiar entre cuentas de usuario en el servidor.

Paso 7: Configura el firewall con “ufw”

El comando ufw — Uncomplicated Firewall — es la forma más sencilla de gestionar el firewall de tu servidor en Ubuntu.

Primero, establece la política predeterminada para denegar todas las conexiones entrantes:

sudo ufw default deny incoming
Luego, permite explícitamente el tráfico SSH. Este paso es crítico.

sudo ufw allow 22/tcp

⚠️ ADVERTENCIA CRÍTICA: Siempre ejecuta sudo ufw allow 22/tcp antes de sudo ufw enable. Si habilitas el firewall sin permitir SSH, te bloquearás del servidor. Tu única opción sería acceder al servidor a través de la consola de tu proveedor de alojamiento — lo cual puede no estar disponible en todos los planes.

Ahora es seguro habilitar el firewall:

sudo ufw enable
Command may disrupt existing SSH connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Puedes verificar el estado en cualquier momento:

sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Tu servidor ahora solo acepta conexiones SSH entrantes en el puerto 22. Todo lo demás está bloqueado. Cuando instales Nginx más tarde, agregarás otra regla: sudo ufw allow 80/tcp para HTTP y sudo ufw allow 443/tcp para HTTPS.

Tu servidor está protegido por un firewall.


Día 7: Verificaciones de red y finalización

Tu servidor está configurado, asegurado y funcionando. Antes de darlo por terminado, verifiquemos que todo funcione desde el exterior y aprendamos cómo apagarlo correctamente.

Paso 1: Prueba la conectividad con “ping”

El comando ping prueba si tu servidor puede alcanzar otras máquinas en la red.

ping -c 4 8.8.8.8
La bandera -c 4 limita el ping a 4 paquetes. Sin ella, ping se ejecuta para siempre hasta que presiones Ctrl+C. Las estadísticas al final te dicen todo: 4 paquetes enviados, 4 recibidos, 0% de pérdida. La red de tu servidor está funcionando.

Has confirmado que tu servidor tiene conectividad de red funcional.

Paso 2: Verifica interfaces de red con “ip”

El comando ip muestra la configuración de red de tu servidor.

ip addr
El comando ip reemplaza al ifconfig obsoleto. La salida muestra tu interfaz de bucle invertido (lo, siempre 127.0.0.1) y tu interfaz de red principal (eth0 en este caso). La línea inet muestra la dirección IP de tu servidor — esta es la dirección que usarías para acceder por SSH o acceder a tu servidor web.

Puedes ver las direcciones IP y las interfaces de red de tu servidor.

Paso 3: Crea enlaces de archivos con “ln”

El comando ln crea enlaces entre archivos — esencialmente accesos directos.

ln -s /var/www/html /home/user/webroot

Esto crea un enlace simbólico en /home/user/webroot que apunta a /var/www/html. Cuando accedes al enlace, en realidad estás accediendo al directorio de destino. Los enlaces simbólicos son útiles para crear rutas de acceso convenientes sin duplicar archivos.

Puedes crear accesos directos a archivos y directorios en cualquier lugar del sistema.

Paso 4: Apaga de forma segura con “shutdown”

El comando shutdown apaga tu servidor de manera controlada.

sudo shutdown -h now

La bandera -h significa “halt” — detener todo y apagar. now significa inmediatamente. Pero también puedes programar un apagado:

sudo shutdown -h +5

Esto te da 5 minutos antes del apagado — suficiente tiempo para guardar trabajo, notificar a los usuarios o cambiar de opinión. Para cancelar un apagado programado:

sudo shutdown -c

La bandera -c cancela cualquier apagado pendiente. Es una pequeña red de seguridad que puede salvarte de un apagado accidental.

Puedes apagar el servidor de forma segura, inmediatamente o en un horario.

Paso 5: Reinicia con “reboot”

El comando reboot reinicia tu servidor.

sudo reboot

Esto es equivalente a shutdown -r now — la bandera -r significa “reiniciar” en lugar de “detener”. Lo usarás después de actualizaciones del kernel o cambios de configuración que requieran un nuevo inicio.

Puedes reiniciar el servidor con un solo comando.


¿Qué sigue?

Hace siete días, estabas mirando un terminal en blanco después de conectarte por SSH a un servidor que no sabías cómo usar. Ahora puedes navegar por el sistema de archivos, crear y gestionar archivos, buscar cualquier cosa en el sistema, verificar la salud de tu servidor, instalar software, ejecutar servicios, asegurar la seguridad y gestionar el ciclo de vida del servidor desde el inicio hasta el apagado.

La verdadera habilidad no es memorizar estos comandos. Es saber cuál usar cuando aparece un problema. Eso viene de usarlos, no de leer sobre ellos.

Abre un terminal hoy. Ejecuta ls, cd y pwd hasta que se sientan naturales. Añade un nuevo comando por día. Dentro de una semana, el terminal no se sentirá como una interfaz extranjera. Se sentirá como la línea directa a tu servidor que es.

Si estás listo para poner estos comandos en práctica en tu propio servidor, AlexHost ofrece planes VPS de Linux asequibles con configuración instantánea y soporte 24/7 — un gran lugar para practicar sin riesgo.


Hoja de trucos: Todos los comandos de un vistazo

Aquí está cada comando de esta guía en un solo lugar. Marca esta página.

 

ComandoSignificaQué hace
ssh
Secure ShellConectar a un servidor remoto de forma segura
whoami
Who Am IMostrar nombre de usuario actual
pwd
Print Working DirectoryMostrar ruta del directorio actual
ls
ListListar archivos y directorios
cd
Change DirectoryNavegar entre directorios
clear
ClearLimpiar la pantalla del terminal
man
ManualAbrir la página del manual para cualquier comando
history
HistoryMostrar comandos ejecutados previamente
mkdir
Make DirectoryCrear nuevos directorios
touch
TouchCrear archivos vacíos o actualizar marcas de tiempo
cp
CopyCopiar archivos y directorios
mv
MoveMover o renombrar archivos y directorios
rm
RemoveEliminar archivos y directorios
echo
EchoImprimir texto o escribir en archivos
cat
ConcatenateMostrar contenido de archivos
nano
NanoEditor de texto basado en terminal
find
FindBuscar archivos por nombre, tipo o atributos
grep
Global Regular Expression PrintBuscar patrones de texto en archivos
which
WhichLocalizar la ruta ejecutable de un comando
whereis
Where IsLocalizar binario, fuente y manual de un comando
whatis
What IsObtener una descripción de una línea de un comando
uname
Unix NameMostrar información del sistema
df
Disk FreeMostrar uso de espacio en disco
free
FreeMostrar uso de memoria/RAM
top
TopMonitoreo de procesos en tiempo real
ps
Process StatusInstantánea de procesos en ejecución
cal
CalendarMostrar un calendario
date
DateMostrar o establecer fecha y hora del sistema
apt update
APT UpdateActualizar listas de repositorios de paquetes
apt install
APT InstallInstalar paquetes de software
systemctl
System ControlIniciar, detener y gestionar servicios
kill
KillTerminar un proceso por PID
pkill
Process KillTerminar procesos por nombre
wget
Web GetDescargar archivos de internet
curl
Client URLTransferir datos desde URLs
sudo
Superuser DoEjecutar comandos con privilegios elevados
chmod
Change ModeCambiar permisos de archivos
chown
Change OwnerCambiar propiedad de archivos
passwd
PasswordCambiar contraseñas de usuario
useradd
User AddCrear una nueva cuenta de usuario
su
Switch UserCambiar a otro usuario
ufw
Uncomplicated FirewallGestionar el firewall del servidor
ping
PingProbar conectividad de red
ip
IPMostrar interfaces de red y direcciones
ln
LinkCrear enlaces de archivos (simbólicos o duros)
shutdown
ShutdownApagar el servidor de forma segura
reboot
RebootReiniciar el servidor

 


15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar