Todo el que pasa el día en el terminal trabaja de una de dos maneras. En el modo lento, escribes cada comando completo, intentas recordar el nombre exacto de esa flag y rezas para no equivocarte con un rm. En el modo rápido, la máquina parece adivinar lo que quieres antes de que termines de pensarlo. La diferencia rara vez es talento: es un puñado de hábitos que, sumados, se convierten en velocidad. Estos son los que más resultados ofrecen.

Aliases y funciones: escríbelo una vez y úsalo para siempre
La primera regla es sencilla: si te dolió escribir algo dos veces, conviértelo en un atajo. Los comandos que repites durante todo el día merecen un alias.
bash alias gs='git status -sb' alias ll='ls -lah' alias ..='cd ..'
Cuando el comando necesita argumentos, un alias no es suficiente: usa una función.
bash
crea la carpeta y entra en ella
mkcd() { mkdir -p "$1" && cd "$1"; }
git commit rápido con mensaje
gc() { git commit -m "$*"; }
Ponlo todo en tu ~/.bashrc o ~/.zshrc y recarga con source ~/.zshrc. Con el paso de los meses, esos segundos ahorrados se convierten en horas y, lo que es más importante, eliminan fricción entre la idea y la ejecución.
Nunca escribas el mismo comando dos veces
Ayer ya ejecutaste ese comando enorme. No lo escribas de nuevo: Ctrl-R abre la búsqueda inversa del historial. Empieza a escribir una parte y el shell completará el comando con la coincidencia más reciente; pulsa Ctrl-R otra vez para retroceder por las coincidencias.
Si instalas fzf, Ctrl-R se convierte en una lista fuzzy navegable de todo tu historial; la diferencia es enorme. Dos comodines del día a día:
bash !! # repite el último comando sudo !! # repite el último, ahora con sudo
El segundo resuelve el clásico «ah, necesitaba permisos» sin tener que escribir nada de nuevo.
Componer comandos: pipes y xargs
La filosofía de Unix consiste en usar herramientas pequeñas que hacen una cosa bien y se combinan entre sí. El pipe (|) pasa la salida de un comando como entrada del siguiente; xargs toma esas líneas y las transforma en argumentos de otro comando.
bash
cuántas líneas tienen todos los archivos que mencionan TODO?
grep -rl TODO . | xargs wc -l
comprime cada .log encontrado, uno por uno
find . -name '*.log' | xargs -I{} gzip {}
Dominar esta composición vale más que memorizar cien flags: puedes montar la herramienta adecuada en el momento, encajando piezas que ya conoces.
Comandos destructivos sin sobresaltos
La velocidad sin una red de seguridad se convierte en desastre. Antes de borrar, comprueba qué vas a eliminar: ejecuta primero find o ls, revisa la lista y solo después cambia el comando por rm. Usa -i para confirmar archivo por archivo y prefiere --dry-run siempre que la herramienta lo ofrezca.
El mayor peligro es rm -rf con una variable vacía: un $DIR sin definir puede convertirse en rm -rf /. Protégelo con una expansión que falle si la variable está vacía:
bash rm -rf "${BUILD_DIR:?debe estar definida}/dist"
Si BUILD_DIR no existe, el comando se detendrá con un mensaje claro en lugar de empezar a borrar. Un pequeño hábito que evita una catástrofe.
Scripts que no te traicionan: set -euo pipefail
En el momento en que pegas comandos en un archivo .sh, te conviertes en autor de software, y un software silencioso es un software peligroso. Empieza todos tus scripts así:
bash
!/usr/bin/env bash
set -euo pipefail
En otras palabras: -e hace que el script se detenga ante el primer comando que falla, en vez de seguir cavando; -u convierte una variable no definida en un error —adiós a los errores tipográficos silenciosos—; y pipefail hace que un error en medio de un pipe cuente realmente como un fallo, en lugar de quedar oculto por el último comando. Son tres palabras que separan un script confiable de una bomba de tiempo.
Cambia el kit antiguo por rg, fd y jq
grep y find funcionan, pero el ecosistema ha evolucionado. Vale la pena adoptar:
- ripgrep (
rg) — busca texto respetando.gitignore, con salida en color y mucha más velocidad. - fd — encuentra archivos con una sintaxis más humana, sin la gimnasia de comillas y
-namedefind. - jq — corta y filtra JSON como un bisturí; es esencial para trabajar con APIs desde el terminal.
bash rg 'TODO' --type py fd '.env' curl -s https://api.exemplo.com/itens | jq '.items[].name'
No hace falta cambiarlo todo de una vez: instala una herramienta, úsala durante una semana y no querrás volver atrás.
No intentes asimilar los seis hábitos hoy. Elige uno —probablemente Ctrl-R o un par de aliases— y úsalo hasta que se convierta en un reflejo. Un terminal rápido no es un don que algunos tienen y otros no: es sedimentación. Una capa por semana y, en un mes, tus manos irán más rápido que tu cabeza.

