32blogby StudioMitsu

El kit de herramientas CLI del desarrollador: un mapa completo

Desde operaciones con archivos hasta búsqueda de texto, descargas y personalización del shell. Todas las herramientas CLI que los desarrolladores deberían conocer, organizadas como clásicas vs alternativas modernas.

9 min read
Contenido

Cuando abres una terminal por primera vez, tu vocabulario puede limitarse a ls y cd. Pero el mundo CLI está repleto de herramientas que pueden cambiar drásticamente la velocidad a la que trabajas — si sabes que existen.

Este artículo organiza las herramientas CLI que todo desarrollador debería conocer, por categoría. Las herramientas clásicas que llevan desde los 90 están junto a sus reemplazos modernos escritos en Rust, para que puedas ver qué ha cambiado y por qué.

Operaciones con archivos y navegación

Los fundamentos. Listar archivos, moverte, copiar, eliminar — todo empieza aquí.

Clásico: ls / cd / cp / mv / rm

Parte de GNU coreutils (última versión: 9.10, febrero 2026). Preinstalado en todas las distribuciones Linux.

bash
ls -alh          # Listado detallado con tamaños legibles
cd ~/projects    # Cambiar de directorio
cp -r src/ dst/  # Copiar directorio recursivamente
mv old.txt new.txt  # Renombrar / mover
rm -rf build/    # Eliminar directorio (usar con precaución)

Moderno: eza + zoxide

eza (v0.23.4) es un reemplazo en Rust de ls. Salida en color, integración con estado de Git y vista de árbol vienen integrados.

bash
eza -la --git          # Listar con estado de Git
eza --tree --level=2   # Vista de árbol (2 niveles de profundidad)

zoxide (v0.9.9) reemplaza cd. Recuerda los directorios que has visitado y te permite saltar a ellos escribiendo un fragmento de la ruta.

bash
z proj     # Salta a ~/projects (si has hecho cd ahí antes)
zi         # Selección interactiva
powershell
# Dentro de WSL, sigue los pasos de Linux
# O directamente en PowerShell:
winget install eza-community.eza
winget install ajeetdsouza.zoxide

Búsqueda y procesamiento de texto

Buscar en logs, editar archivos de configuración, procesar JSON. La manipulación de texto es el pan de cada día del desarrollador.

Clásico: grep / sed / awk

bash
grep -rn "TODO" src/           # Búsqueda recursiva con números de línea
sed -i 's/old/new/g' file.txt  # Buscar y reemplazar en el archivo
awk '{print $1, $3}' data.tsv  # Extraer columnas 1 y 3

grep es uno de los comandos más usados, pero se ralentiza notablemente en bases de código grandes.

→ Detalles: Guía completa de grep: desde lo básico hasta ripgrep / Guía práctica de sed y awk

Moderno: ripgrep + fd + bat + jq

ripgrep (v15.1.0) es un reemplazo en Rust de grep. Respeta .gitignore por defecto y es significativamente más rápido en repositorios grandes.

bash
rg "TODO" --type js          # Buscar solo archivos JS
rg "function \w+" -c         # Contar coincidencias

fd (v10.4.0) reemplaza find. Sintaxis más simple y respeto de .gitignore por defecto.

bash
fd "\.mdx$" content/         # Encontrar archivos .mdx
fd -e json -x jq '.version' # Encontrar archivos JSON y procesar con jq

bat (v0.26.1) reemplaza cat. Resaltado de sintaxis, números de línea e integración de diff de Git de serie.

bash
bat src/index.ts             # Mostrar con resaltado de sintaxis
bat -d file.txt              # Mostrar solo cambios de Git

jq (v1.8.1) es la navaja suiza para JSON. Esencial para trabajar con respuestas de API.

bash
curl -s https://api.github.com/repos/jqlang/jq | jq '.stargazers_count'
cat package.json | jq '.dependencies | keys'

→ Detalles: Guía completa de jq / Herramientas CLI modernas en Rust

powershell
# Dentro de WSL, sigue los pasos de Linux
# En PowerShell:
winget install BurntSushi.ripgrep.MSVC
winget install sharkdp.fd
winget install sharkdp.bat
winget install jqlang.jq

Descarga y red

Descargar archivos, llamar APIs, comunicarse con servidores remotos.

wget — El caballo de batalla de las descargas por lotes

Destaca en descargas recursivas, reanudación de transferencias interrumpidas y espejado de sitios. La herramienta de referencia para descargar archivos en un servidor.

bash
wget -c https://example.com/large.iso    # Reanudar descarga interrumpida
wget -i urls.txt -P ~/downloads/         # Descarga por lotes desde lista de URLs
wget --mirror --convert-links https://example.com/  # Espejar un sitio

Últimas versiones: wget 1.25.0 / wget2 2.2.1. wget2 incluye una corrección para CVE-2025-69194 (CVSS 8.8) — actualiza si lo usas.

→ Detalles: Guía completa de wget

curl — La herramienta HTTP universal

Donde wget se especializa en descargas, curl maneja toda la comunicación HTTP. Llamadas API, inspección de cabeceras, subida de archivos — hace de todo.

bash
curl -s https://api.example.com/data | jq '.'   # Obtener API y formatear JSON
curl -I https://example.com                       # Obtener solo cabeceras
curl -X POST -d '{"key":"value"}' -H "Content-Type: application/json" https://api.example.com

Última versión: curl 8.18.0 (enero 2026). Incluye correcciones para 3 CVEs descubiertos por IA. Ejecuta curl --version para verificar la tuya.

→ Detalles: Guía completa de curl


Personalización del shell

alias — Atajos de comandos

Acorta comandos largos que escribes repetidamente. La eficiencia del shell empieza aquí.

bash
alias gs='git status'
alias dc='docker compose'
alias ll='ls -alh --color=auto'

→ Detalles: Guía completa de alias

Elegir un shell: bash vs zsh vs fish

ShellCaracterística clave
bashDisponible en todas partes. Mejor compatibilidad de scripts
zshCompatible con bash + autocompletado potente. Por defecto en macOS
fishFunciona genial de entrada. No compatible con bash

Si usas zsh, el plugin git de oh-my-zsh solo añade más de 150 alias.

fzf — Buscar todo de forma difusa

fzf (v0.70.0) es un buscador difuso interactivo. Selección de archivos, búsqueda del historial de comandos, cambio de ramas de Git — se integra con todo.

bash
# Buscar difusamente un archivo y abrirlo en vim
vim $(fzf)

# Buscar historial de comandos (Ctrl+R mejorado)
# Después de instalar fzf, Ctrl+R lo usa automáticamente

→ Detalles: Guía completa de fzf

powershell
# Dentro de WSL, sigue los pasos de Linux
winget install junegunn.fzf

Flujo de trabajo de desarrollo

tmux — Multiplexación de terminal

tmux (v3.6a) gestiona múltiples paneles y ventanas dentro de una sola terminal. Mantiene las sesiones vivas por SSH, haciéndolo esencial para el trabajo en servidores.

bash
tmux new -s work           # Iniciar una sesión llamada "work"
# Ctrl+b % — Dividir horizontalmente
# Ctrl+b " — Dividir verticalmente
# Ctrl+b d — Desconectar de la sesión
tmux attach -t work        # Readjuntar a la sesión

→ Detalles: Guía completa de tmux

powershell
# Dentro de WSL, sigue los pasos de Linux
# No disponible nativamente en Windows

ssh / rsync — Operaciones con servidores remotos

bash
ssh user@server             # Conexión remota
ssh -L 8080:localhost:3000 user@server  # Reenvío de puertos
rsync -avz ./dist/ user@server:/var/www/  # Sincronizar solo archivos modificados

→ Detalles: Guía práctica de ssh y rsync

Git — Control de versiones

Git no necesita presentación, pero hay herramientas que hacen el Git por CLI más rápido.

bash
# lazygit — TUI de Git dentro de tu terminal
# delta — git diff con resaltado de sintaxis
git diff | delta

Alternativas modernas (la generación Rust)

Hay una ola creciente de proyectos que reescriben las herramientas clásicas de GNU en Rust. En 2026, Ubuntu avanza con planes de reemplazar GNU coreutils con la implementación en Rust uutils.

ClásicoModernoLenguajeMejora clave
lsezaRustColor, integración Git, vista de árbol
catbatRustResaltado de sintaxis, números de línea, paginador
grepripgrepRustVelocidad, soporte .gitignore
findfdRustSintaxis simple, rápido
cdzoxideRustSalto basado en aprendizaje
sedsdRustSintaxis regex más simple
dudustRustUso de disco visual
topbottomRustMonitor de sistema moderno

No necesitas todas. Empieza con ripgrep + fd + bat — esas tres te mostrarán la diferencia inmediatamente. Las instrucciones de instalación para cada herramienta están en las secciones relevantes de arriba.

→ Detalles: Herramientas CLI modernas en Rust: eza, bat, fd, zoxide y más


Conclusión

CategoríaAprende primeroPrueba después
Operaciones con archivosls, cd, cp, mveza, zoxide
Búsqueda de textogrep, findripgrep, fd, bat
Procesamiento JSONjq
Descargaswget, curl
Configuración del shellalias, .bashrcfzf, oh-my-zsh
Desarrollogit, sshtmux, lazygit

Las habilidades CLI se transfieren entre sistemas operativos. Las aplicaciones GUI van y vienen, pero los comandos permanecen.

Guarda esta página en marcadores y vuelve cuando quieras probar algo nuevo.