Saltar al contenido
DevOps

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
[imagen de referencia: terminal mostrando ls -l con columnas de permisos, usuarios y fechas]

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.sh
ls -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.md
ls -a — incluye “dotfiles”

Incluye archivos y carpetas que empiezan con . (ocultos).

$ ls -a
.  ..  .gitignore  .env  arquivo1.txt  pasta1  script.sh
ls -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.md
ls -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.sh
ls -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.sh
Consejos, aliases y trampas
  • Muchas distros ya traen un alias: alias ls='ls --color=auto'.
  • ls no suma el tamaño de los directorios (use du -sh o ls -ld para el directorio en sí).
  • Para nombres con espacios, use comillas: ls "Minha Pasta".
  • Globs: ls *.log, ls **/*.md (si globstar está 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
[imagen de referencia: terminal con un ejemplo de permisos rwx]

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 regular
  • d directorio
  • l enlace simbólico
  • c dispositivo de caracteres • b dispositivo de bloque
  • p pipe con nombre (FIFO) • s socket
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 x del propietario): se ejecuta con el UID del propietario.

    -rwsr-xr-x (minúscula = tiene x + setuid) • -rwSr-xr-x (mayúscula = sin x).

  • setgid (s/S en la posición de x del grupo): hereda el grupo en archivos nuevos; en directorios, los ítems nuevos reciben el mismo grupo.
  • sticky (t/T en la posición de x de “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     # sticky
Nú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 inode
Propietario (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 grupo
Tamaño (bytes) y variaciones
  • Use -h para 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,minor
Fecha/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/hosts
Có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 acesso
ACL (+) y atributos extendidos
  • Un + después de los permisos indica una ACL adicional: -rw-r--r--+. Véala con getfacl arquivo.
  • En algunas distros/sistemas, @ indica atributos extendidos (p. ej.: macOS).
  • Para atributos en ext*, use lsattr / chattr (p. ej.: inmutable i).

⚙️ 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
[imagen de referencia: captura de terminal mostrando la salida de ps aux]

Linux • Procesos

Pasos: encontrar y terminar procesos

Use con cuidado ⚠️ terminar procesos críticos puede bloquear el sistema.

  1. 1

    Listar los procesos en ejecución

    $ ps aux        # visão geral
    $ top           # monitor interativo
    $ htop          # versão avançada (se instalado)
  2. 2

    Localizar por nombre

    $ pidof firefox        # retorna PID
    $ pgrep -l nginx       # lista PIDs + nomes
    $ ps aux | grep python # filtra manualmente
  3. 3

    Terminar por PID

    $ kill 1234       # encerra com SIGTERM (educado)
    $ kill -9 1234    # encerra forçado (SIGKILL)
  4. 4

    Terminar por nombre

    $ killall firefox   # encerra todos os processos firefox
    $ pkill -f script.py # encerra por padrão ou comando
  5. 5

    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
[imagen de referencia: terminal mostrando el estado detallado de un servicio con systemctl status]

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.

[imagen de referencia: salida de ip addr show con las interfaces de red listadas]

🌐 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 interfaces
  • ifconfig eth0 up → activar la interfaz
  • ifconfig eth0 192.168.1.10 → asignar IP

⚡ ip (moderno)

  • ip addr → listar interfaces
  • ip link set eth0 up → activar la interfaz
  • ip 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
[imagen de referencia: terminal mostrando la salida de ss -tulnp]

🔗 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 conexionesnetstat -ass -a
Listar conexiones TCPnetstat -atss -t -a
Listar conexiones UDPnetstat -auss -u -a
Mostrar estadísticasnetstat -sss -s
Listar procesos y PIDnetstat -pss -p
Listar puertos en escuchanetstat -lntpss -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
[imagen de referencia: ejemplo del tutorial presentado]

🎯 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

🚀 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. 😉

Sigue leyendo

Protocolos de red esenciales: TCP vs UDP, DNS, DHCP, FTP, SSH y HTTP/HTTPS

¿Alguna vez te has preguntado qué sucede entre bastidores cuando accedes a un sitio web, inicias sesión en un servidor remoto o simplemente conectas tu computadora al Wi-Fi? Todo esto es posible gracias a un conjunto de protocolos de red, que funcionan como reglas y lenguajes universales para que distintos…

Active Directory vs LDAP: diferencias, conceptos y cómo usarlos en la práctica

Si trabajas con administración de redes, servidores o desarrollo de sistemas que necesitan integrarse con la autenticación corporativa, seguramente has oído hablar de Active Directory (AD) y LDAP. Aunque muchas veces aparecen juntos, no son lo mismo. Mucha gente todavía los confunde,…

¿Tienes un proyecto en mente? Hagámoslo realidad.

Sitios web, sistemas e integraciones a la medida, enfocados en resultados. Cuéntanos qué necesitas y el equipo de Forcoder se pondrá en contacto.