Guía Linux Essentials: domine los comandos esenciales
Por Bruno Hoinacki

Si está comenzando su camino en Linux o ya administra servidores y quiere repasar su base, esta guía es para usted. Dominar los comandos básicos no solo acelera su rutina, sino que también le da más confianza para resolver problemas, automatizar tareas y entender mejor lo que ocurre por debajo.
En este artículo vamos a explorar los comandos esenciales de Linux de forma práctica y didáctica, sin soltar un montón de instrucciones sueltas. Cada comando tendrá contexto, ejemplos reales, escenarios de uso y mini tutoriales prácticos para que lo pruebe directamente en la terminal.
📂 Explorando archivos y carpetas con ls
ls es el comando más usado para listar archivos y directorios. Parece simple, pero con algunos parámetros se vuelve poderoso.
# Listar arquivos e pastas
ls
# Listar em formato detalhado (permissões, dono, tamanho, data)
ls -l
# Incluir arquivos ocultos (aqueles que começam com .)
ls -la
# Ordenar por data de modificação (mais recentes no fim)
ls -lt
💡 Consejo extra: combine ls -lh para ver tamaños legibles (KB, MB, GB).
Mini tutorial:
cd ~ # Vá para sua pasta pessoal
mkdir teste # Crie uma pasta chamada teste
cd teste # Acesse a pasta criada
ls -la # Liste os arquivos e confirme que está vazia

Linux • Comando
Comparativo rápido: ls con diferentes parámetros
Abra los ítems para ver la descripción y la salida típica.
ls — listado simple
Lista archivos y directorios en el directorio actual.
$ ls
arquivo1.txt notas.md pasta1/ script.shls -l — modo largo
Muestra permisos, enlaces, propietario, grupo, tamaño y fecha.
$ ls -l
-rw-r--r-- 1 user user 1240 Jan 21 10:15 script.sh
drwxr-xr-x 3 user user 4096 Jan 20 09:02 pasta1
-rw-r--r-- 1 user user 2789 Jan 18 18:40 notas.mdls -a — incluye “dotfiles”
Incluye archivos y carpetas que empiezan con . (ocultos).
$ ls -a
. .. .gitignore .env arquivo1.txt pasta1 script.shls -lh — tamaños legibles
Se combina con -l para mostrar KB/MB/GB.
$ ls -lh
-rw-r--r-- 1 user user 12K Jan 21 10:15 script.sh
-rw-r--r-- 1 user user 2.7K Jan 18 18:40 notas.mdls -R — recursivo
Lista subdirectorios de forma recursiva.
$ ls -R
.:
arquivo1.txt pasta1
./pasta1:
subpasta dados.csv
./pasta1/subpasta:
notas.md-t, -S, -r — ordenamiento
-t: ordena por fecha (los más recientes primero).-S: ordena por tamaño (los más grandes primero).-r: invierte el orden (p. ej.: los más antiguos primero).
$ ls -lt
-rw-r--r-- 1 user user 2.7K Jan 22 09:10 changelog.md
-rw-r--r-- 1 user user 12K Jan 21 10:15 script.shls -lah y otros atajos
Combinaciones frecuentes:
ls -lah— largo + ocultos + legible.ls -ltr— largo + por fecha ascendente (los antiguos al último).ls -lS— largo + por tamaño.
$ ls -lah
drwxr-xr-x 6 user user 4.0K Jan 22 09:10 .
drwxr-xr-x 18 user user 4.0K Jan 20 08:00 ..
-rw-r--r-- 1 user user 2.7K Jan 18 18:40 .env
-rw-r--r-- 1 user user 12K Jan 21 10:15 script.shConsejos, aliases y trampas
- Muchas distros ya traen un alias:
alias ls='ls --color=auto'. lsno suma el tamaño de los directorios (usedu -shols -ldpara el directorio en sí).- Para nombres con espacios, use comillas:
ls "Minha Pasta". - Globs:
ls *.log,ls **/*.md(siglobstarestá activo).
🔒 Permisos con chmod
En Linux, cada archivo y directorio tiene permisos de lectura, escritura y ejecución para el usuario, el grupo y otros.
# Dar permissão de execução a um script
chmod +x script.sh
# Definir permissões numéricas (r=4, w=2, x=1)
chmod 755 script.sh
755→ el propietario puede todo; el grupo y otros solo pueden leer y ejecutar.644→ el propietario puede leer y escribir; el grupo y otros solo leer.
Mini tutorial:
touch meu_script.sh # Crie um arquivo vazio
ls -l meu_script.sh # Veja as permissões atuais
chmod +x meu_script.sh # Adicione permissão de execução
ls -l meu_script.sh # Confira a mudança

Linux • Permisos y metadatos
Entendiendo cada número y permiso de ls -l
Abra los ítems para ver descripciones, ejemplos y consejos.
Formato básico de una línea de ls -l
$ ls -l
-rw-r--r-- 1 alice dev 2789 Jan 18 18:40 notas.md
^ ^^^^^^^^^ ^ ^^^^^ ^^^^ ^^^ ^^ ^^ ^^^^^^^
| | | | | | | | └─── Nome (+ "→ alvo" se link)
| | | | | | └────── Data/Hora
| | | | | └────────── Tamanho (bytes; use -h p/ KB/MB)
| | | | └─────────────── Grupo
| | | └────────────────────── Dono (usuário)
| | └──────────────────────── Nº de links (hard links / dirs)
| └────────────────────────────────── Permissões (rwx para U/G/O)
└──────────────────────────────────── Tipo de arquivo (-, d, l, c, b, p, s)Columna 1 — tipo de archivo
-archivo regularddirectoriolenlace simbólicocdispositivo de caracteres •bdispositivo de bloqueppipe con nombre (FIFO) •ssocket
Columnas 2–10 — rwxrwxrwx
Tres tríadas: propietario • grupo • otros. Cada letra:
- r (read): leer el archivo / listar el contenido del directorio
- w (write): escribir en el archivo / crear, renombrar y eliminar dentro del directorio
- x (execute): ejecutar el archivo / entrar al directorio
-rw-r--r-- → dono: rw-, grupo: r--, outros: r--setuid, setgid y sticky bit
setuid (s/S en la posición de
xdel propietario): se ejecuta con el UID del propietario.-rwsr-xr-x(minúscula = tienex+ setuid) •-rwSr-xr-x(mayúscula = sinx).- setgid (s/S en la posición de
xdel grupo): hereda el grupo en archivos nuevos; en directorios, los ítems nuevos reciben el mismo grupo. - sticky (t/T en la posición de
xde “otros” en directorios): solo el propietario puede eliminar dentro del directorio (p. ej.:/tmp→drwxrwxrwt).
chmod u+s arquivo # setuid
chmod g+s pasta # setgid
chmod +t pasta # stickyNúmero de enlaces (hard links / directorios)
Archivos: cantidad de hard links que apuntan al mismo inodo. Directorios: al menos 2 (. y ..) + 1 por subdirectorio.
$ ln arquivo a2 && ls -l arquivo a2
-rw-r--r-- 2 alice dev 0 Jan 21 10:00 a2
-rw-r--r-- 2 alice dev 0 Jan 21 10:00 arquivo # “2” = dois nomes p/ o mesmo inodePropietario (usuario) y grupo
Controlan quién recibe la primera y la segunda tríada de permisos.
$ chown alice:dev arquivo # muda dono e grupo
$ chgrp dev arquivo # muda só o grupoTamaño (bytes) y variaciones
- Use
-hpara tamaños legibles (12K,5.3M). - En los enlaces simbólicos, el tamaño es la longitud de la ruta de destino.
- Para dispositivos (
c/b), la columna muestra major:minor en lugar de bytes.
$ ls -lh /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 1 12:00 /dev/null # major,minorFecha/hora mostradas
- Por defecto, muestra el mtime (modificación del contenido).
- Los archivos más antiguos pueden mostrar el año en lugar de la hora.
- Use
--time=atime|ctime|birth(si es compatible) para cambiar el campo.
Nombre del ítem y enlaces simbólicos
Si es un enlace simbólico, aparece nombre → destino.
$ ln -s /etc/hosts hosts-link && ls -l hosts-link
lrwxrwxrwx 1 alice dev 10 Jan 21 10:20 hosts-link → /etc/hostsCómo leer los números (p. ej.: 755, 644)
Cada tríada es un número: r=4, w=2, x=1. Sume los valores:
7 = rwx (4+2+1)
6 = rw- (4+2)
5 = r-x (4+1)
4 = r-- (4)
0 = ---# Exemplos
chmod 644 arquivo # -rw-r--r--
chmod 755 script.sh # -rwxr-xr-x
chmod 770 pasta # rwx para dono e grupo; outros sem acessoACL (+) y atributos extendidos
- Un
+después de los permisos indica una ACL adicional:-rw-r--r--+. Véala congetfacl arquivo. - En algunas distros/sistemas,
@indica atributos extendidos (p. ej.: macOS). - Para atributos en ext*, use
lsattr/chattr(p. ej.: inmutablei).
⚙️ Gestionando procesos con ps y kill
Todo proceso en ejecución en Linux tiene un PID (Process ID). Para encontrar y terminar procesos, usamos ps y kill.
# Listar processos do usuário atual
ps
# Listar todos os processos
ps aux
# Procurar por um processo específico (exemplo: nginx)
ps aux | grep nginx
# Encerrar processo pelo PID
kill 1234
# Encerrar processo à força
kill -9 1234
💡 Buena práctica: antes de usar kill -9, intente terminar el proceso normalmente. La señal -9 fuerza la finalización y puede causar problemas si el proceso está manipulando archivos.
Mini tutorial:
sleep 1000 & # Crie um processo de teste em background
ps aux | grep sleep # Encontre o PID
kill <PID> # Encerre o processo

Linux • Procesos
Pasos: encontrar y terminar procesos
Use con cuidado ⚠️ terminar procesos críticos puede bloquear el sistema.
1
Listar los procesos en ejecución
$ ps aux # visão geral $ top # monitor interativo $ htop # versão avançada (se instalado)2
Localizar por nombre
$ pidof firefox # retorna PID $ pgrep -l nginx # lista PIDs + nomes $ ps aux | grep python # filtra manualmente3
Terminar por PID
$ kill 1234 # encerra com SIGTERM (educado) $ kill -9 1234 # encerra forçado (SIGKILL)4
Terminar por nombre
$ killall firefox # encerra todos os processos firefox $ pkill -f script.py # encerra por padrão ou comando5
Confirmar que el proceso se detuvo
$ pgrep firefox # nada retornado → sucesso $ ps aux | grep nome
🔄 Controlando servicios con systemctl
systemctl se usa para gestionar servicios en distribuciones Linux modernas que utilizan systemd como sistema de inicio (como Ubuntu, Debian y CentOS). Es la herramienta estándar para controlar y monitorear los servicios del sistema.
# Iniciar um serviço
sudo systemctl start nginx
# Parar um serviço
sudo systemctl stop nginx
# Reiniciar um serviço
sudo systemctl restart nginx
# Verificar status
sudo systemctl status nginx
# Habilitar para iniciar automaticamente no boot
sudo systemctl enable nginx
Mini tutorial:
sudo systemctl status ssh # Veja se o SSH está rodando
sudo systemctl stop ssh # Pare o serviço
sudo systemctl start ssh # Inicie novamente

Haga clic aquí para leer más sobre Cómo gestionar un servidor Ubuntu con systemctl y otros comandos esenciales.
🌐 Configuración de red con ifconfig e ip
Históricamente usábamos ifconfig. Hoy lo recomendado es el comando ip.
# Ver interfaces de rede
ifconfig
# Alternativa moderna
ip addr show
# Exibir rotas
ip route
# Subir ou derrubar interface de rede
sudo ip link set eth0 up
sudo ip link set eth0 down
Mini tutorial:
ip addr show # Veja suas interfaces
ping 8.8.8.8 # Teste conectividade com Google DNS
💡 Consejo extra: ip es más completo y es compatible con los sistemas modernos. Úselo siempre que sea posible.

🌐 ifconfig × ip
El comando ifconfig está obsoleto en la mayoría de las distros. ip es la alternativa moderna y más poderosa.
🕹️ ifconfig (antiguo)
ifconfig→ listar interfacesifconfig eth0 up→ activar la interfazifconfig eth0 192.168.1.10→ asignar IP
⚡ ip (moderno)
ip addr→ listar interfacesip link set eth0 up→ activar la interfazip addr add 192.168.1.10/24 dev eth0→ asignar IP
💡 Consejo: use siempre ip para mayor compatibilidad y funcionalidades extra (ip route, ip neigh, etc.).
📡 Monitoreando conexiones con netstat y ss
netstat es un clásico, pero al igual que ifconfig, viene siendo reemplazado por ss.
# Mostrar conexões ativas
netstat -tulnp
# Usando ss (mais rápido e moderno)
ss -tulnp
# Ver portas abertas
ss -ltn
-t→ conexiones TCP-u→ conexiones UDP-l→ servicios en escucha-n→ mostrar IP/puertos numéricos-p→ mostrar el proceso asociado
Mini tutorial:
ss -ltn # Veja portas abertas
ss -tulnp # Veja processos associados

🔗 netstat × ss
netstat está obsoleto en varias distribuciones. Use ss como alternativa más rápida y moderna.
| 📜 Acción | 🕹️ netstat | ⚡ ss |
|---|---|---|
| Listar todas las conexiones | netstat -a | ss -a |
| Listar conexiones TCP | netstat -at | ss -t -a |
| Listar conexiones UDP | netstat -au | ss -u -a |
| Mostrar estadísticas | netstat -s | ss -s |
| Listar procesos y PID | netstat -p | ss -p |
| Listar puertos en escucha | netstat -lntp | ss -lntp |
💡 ss es más eficiente en los sistemas modernos y puede reemplazar prácticamente todos los usos de netstat.
✍️ Creando y editando archivos
Además de gestionar procesos y redes, usted va a necesitar manipular archivos en el día a día. Aquí entran algunos comandos fundamentales:
# Criar um arquivo vazio
touch exemplo.txt
# Adicionar conteúdo com echo
echo "Olá Linux!" > exemplo.txt
# Visualizar conteúdo com cat
cat exemplo.txt
# Editar com nano
nano exemplo.txt
# Editar com vim
vim exemplo.txt
# Renomear arquivo
mv exemplo.txt novo_nome.txt
# Apagar arquivo
rm novo_nome.txt
Mini tutorial:
cd ~
mkdir projeto
cd projeto
touch notas.txt
nano notas.txt # Escreva algo e salve (CTRL+O, ENTER, CTRL+X)
cat notas.txt # Veja o conteúdo
mv notas.txt ideia.txt
rm ideia.txt

🎯 Consejos extra para el día a día
Atajos listos para copiar y pegar
Use man <comando> para obtener ayuda • combine pipes | para filtros poderosos • cree aliases para agilizar.
📂 Básicos de ls
# Listagem detalhada + ocultos + tamanhos legíveis
alias ll='ls -lah'
# Listagem leve com colunas
alias l='ls -CF'
# Apenas ocultos inclusos (sem . e ..)
alias la='ls -A'
# Ordenar por tempo (mais recentes no fim) e tamanhos legíveis
alias lt='ls -lht'
💡 Consejo: agréguelos en ~/.bashrc o ~/.zshrc y ejecute source.
🧭 Navegación rápida
# Subir diretórios rápido
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# Voltar ao diretório anterior
alias -- -='cd -'
# Criar pasta e entrar
mkcd(){ mkdir -p "$1" && cd "$1"; }
🔁 Use mkcd projeto para crear la carpeta y entrar en ella de una vez.
🌱 Git esencial
# Status curto + branch/graph
alias gs='git status -sb'
# Add tudo e commit rápido
alias ga='git add -A'
alias gc='git commit -m'
# Push/pull diretos
alias gp='git push'
alias gpl='git pull --rebase'
# Log compacto
alias gl='git log --oneline --graph --decorate --all'
✅ Combine: ga → gc "msg" → gp.
🌐 Red e IP
# Meu IP público
alias myip='curl -s https://ifconfig.me'
# Interfaces e endereços
alias ipa='ip -brief addr'
# Portas em escuta (TCP)
alias listen='ss -lnt'
# Rotas rápidas
alias routes='ip route show'
⚡ Prefiera ip/ss en lugar de las utilidades heredadas.
🧵 Procesos
# Buscar processo por nome (case-insensitive)
psg(){ ps aux | grep -i --color=auto "$1"; }
# Encerrar com SIGKILL rapidamente
alias k9='kill -9'
# Top simplificado (se instalado)
alias htop5='htop -d 10'
⚠️ Use k9 con cuidado; intente antes kill sin -9.
💾 Disco y utilidades
# Uso de disco por FS (legível + tipo)
alias dfh='df -hT'
# Espaço por pasta (ordem crescente)
alias duh='du -sh -- * | sort -h'
# Repetir último comando com sudo
please(){ sudo $(fc -ln -1); }
📝 please vuelve a aplicar el último comando con sudo.
⚙️ Mini tutorial
echo "alias ll='ls -la'" >> ~/.bashrc
# Dica: cole também outros aliases acima no mesmo arquivo
source ~/.bashrc
ll # Agora você pode usar ll no lugar de ls -la
📦 Bash: ~/.bashrc • Zsh: ~/.zshrc.
🔗 Referencias externas
- Documentación de Arch Linux Coreutils
- Documentación de systemd
- Guía oficial del comando ip
- Manual del comando ss
🚀 Conclusión
Dominar los comandos esenciales de Linux es como aprender a manejar: al principio parece mucho, pero pronto se vuelve natural. Cada comando presentado aquí, del simple ls al poderoso systemctl, es una herramienta que lo hará más productivo y seguro en el uso del sistema.
👉 Ahora es su turno: abra una terminal y siga los mini tutoriales de este artículo. Pruebe crear archivos, editar con nano, matar procesos y verificar puertos abiertos. Cuanto más practique, más natural será su dominio de Linux.
Y si quiere profundizar sus conocimientos en Linux, automatización y DevOps, siga acompañando el blog de Forcoder. 😉


