Si trabajas en la terminal regularmente, seguro has escrito los mismos comandos docenas de veces. git status. docker-compose up -d. cd /home/user/projects/myapp/frontend/src.
Todo eso puede convertirse en un alias. Esta guía cubre todo lo que necesitas saber sobre el comando alias — desde lo básico hasta patrones avanzados, colecciones de atajos del mundo real e integración con oh-my-zsh.
¿Qué es un alias?
Un alias es un atajo: le das un nombre más corto a un comando largo o complejo, y usas ese nombre en su lugar. macOS y la mayoría de distribuciones Linux vienen con varios alias ya definidos. Ejecuta alias sin argumentos para verlos:
alias
Salida típica en Ubuntu:
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
Así que ll es un atajo para ls -alF. Dos caracteres en lugar de ocho, y obtienes un listado detallado con colores e indicadores.
Sintaxis básica
alias nombre='cadena de comando'
Algunas cosas a tener en cuenta:
- Sin espacios alrededor de
=— eso es un error de sintaxis - Envuelve el comando entre comillas simples o dobles si contiene espacios u opciones
- Las comillas simples evitan la expansión de variables; las dobles la permiten
Ejemplos rápidos para empezar:
alias ll='ls -alh --color=auto'
alias la='ls -A'
alias ..='cd ..'
alias ...='cd ../..'
alias gs='git status'
Ejecuta estos en tu terminal y funcionan inmediatamente — pero solo para la sesión actual. Cierra la terminal y desaparecen.
Hacer alias permanentes: .bashrc y .zshrc
Para mantener tus alias entre sesiones, escríbelos en el archivo de configuración de tu shell.
Primero, verifica qué shell estás usando:
echo $SHELL
- bash →
~/.bashrc(shell interactivo) o~/.bash_profile(shell de login) - zsh →
~/.zshrc
Abre el archivo en tu editor preferido:
# vim
vim ~/.bashrc
# nano (más fácil para principiantes)
nano ~/.bashrc
# VS Code
code ~/.bashrc
Añade tus alias al final. Personalmente me resulta útil agruparlos con un comentario:
# ===========================
# Mis Alias
# ===========================
# Navegación
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias home='cd ~'
alias proj='cd ~/projects'
# Atajos de ls
alias ll='ls -alh --color=auto'
alias la='ls -A --color=auto'
alias lt='ls -lt --color=auto' # ordenar por tiempo
alias lz='ls -lS --color=auto' # ordenar por tamaño
# Atajos comunes
alias c='clear'
alias h='history'
alias q='exit'
alias reload='source ~/.bashrc' # o source ~/.zshrc para zsh
Después de guardar, aplica los cambios a la sesión actual:
source ~/.bashrc
# o
. ~/.bashrc
Colecciones útiles de alias
Git
Si usas Git a diario, estos te ahorrarán una cantidad significativa de escritura:
# Git básico
alias gs='git status'
alias ga='git add'
alias gaa='git add .'
alias gc='git commit -m'
alias gca='git commit -am'
alias gp='git push'
alias gpl='git pull'
alias gd='git diff'
alias gl='git log --oneline --graph --decorate'
alias gb='git branch'
alias gco='git checkout'
alias gcb='git checkout -b'
alias gst='git stash'
alias gstp='git stash pop'
# Operaciones compuestas
alias gpush='git push origin $(git branch --show-current)'
alias gundo='git reset --soft HEAD~1' # deshacer último commit, conservar cambios
alias gclean='git restore .' # descartar todos los cambios del árbol de trabajo (sintaxis moderna, Git 2.23+)
Docker y Docker Compose
alias d='docker'
alias dc='docker compose'
alias dcu='docker compose up -d'
alias dcd='docker compose down'
alias dcr='docker compose restart'
alias dcl='docker compose logs -f'
alias dps='docker ps'
alias dpsa='docker ps -a'
alias dclean='docker system prune -f'
# Entrar a un contenedor en ejecución
dexec() {
docker exec -it "$1" bash
}
Administración del sistema
# Red
alias myip='curl -s ifconfig.me'
alias localip='ip addr show | grep "inet " | grep -v 127.0.0.1'
# Disco y memoria
alias df='df -h'
alias du='du -sh'
alias free='free -h'
# Búsqueda de procesos
alias psg='ps aux | grep' # uso: psg nginx
# Verificar qué proceso usa un puerto
portcheck() {
lsof -i :"$1"
}
# Búsqueda de archivos
alias ff='find . -name' # uso: ff "*.log"
Desarrollo
# Node.js / npm
alias ni='npm install'
alias nid='npm install --save-dev'
alias nr='npm run'
alias ns='npm start'
alias nt='npm test'
alias nb='npm run build'
# Python
alias py='python3'
alias pip='pip3'
alias venv='python3 -m venv venv && source venv/bin/activate'
alias activate='source venv/bin/activate'
# Servidor HTTP local rápido
alias serve='python3 -m http.server 8080'
Funciones de shell: cuando los alias no son suficientes
Los alias no manejan bien los argumentos. Cuando necesitas pasar argumentos, usa una función de shell en su lugar. Van en el mismo archivo .bashrc / .zshrc:
# Crear un directorio y entrar en él inmediatamente
mkcd() {
mkdir -p "$1" && cd "$1"
}
# Buscar contenido de archivos recursivamente
# (nombrado rgfind para no sobreescribir el comando del sistema fgrep)
rgfind() {
grep -r "$1" . --include="$2"
}
# uso: rgfind "TODO" "*.js"
# Crear un respaldo con fecha de un archivo
bak() {
cp "$1" "$1.bak_$(date +%Y%m%d_%H%M%S)"
}
# uso: bak config.json → crea config.json.bak_20260227_143022
# Terminar lo que esté corriendo en un puerto
killport() {
lsof -t -i:"$1" | xargs kill -9
}
# uso: killport 3000
oh-my-zsh: obtén cientos de alias al instante
Si usas zsh con oh-my-zsh, puedes activar plugins que añaden una gran cantidad de alias bien diseñados sin tener que escribirlos tú mismo.
Edita la línea plugins=(...) en ~/.zshrc:
plugins=(
git
docker
docker-compose
npm
python
z
)
El plugin git solo añade más de 150 alias — gst para git status, gco para git checkout, y así sucesivamente. Ejecuta alias | grep ^g para ver la lista completa.
El plugin z te permite saltar a cualquier directorio previamente visitado escribiendo parte de su nombre. Una alternativa más potente es zoxide, que también está disponible como plugin de oh-my-zsh:
z proj # salta a ~/projects si has estado ahí antes
Gestionar tus alias
Verificar qué hace un alias específico
alias gs
# salida: alias gs='git status'
Evitar temporalmente un alias
Si un comando está reemplazado por un alias y quieres ejecutar el original, precédelo con \:
# Aunque ls tenga alias, esto ejecuta el ls real sin color
\ls
Eliminar un alias
unalias gs # eliminar el alias gs
unalias -a # eliminar TODOS los alias (usar con precaución)
Flujo seguro para editar .bashrc
# Hacer respaldo primero
cp ~/.bashrc ~/.bashrc.backup
# Editar
vim ~/.bashrc
# Verificar errores de sintaxis (solo bash)
bash -n ~/.bashrc
# Aplicar si no hay errores
source ~/.bashrc
Problemas comunes
"command not found" después de añadir un alias
Probablemente olvidaste ejecutar source ~/.bashrc. También verifica errores tipográficos — asegúrate de que no haya espacios alrededor del signo =.
alias | grep nombredelias
Rutas con espacios causan errores
Siempre pon entre comillas las rutas que contienen espacios:
# Mal
alias mydir='cd /home/user/My Projects'
# Bien
alias mydir='cd "/home/user/My Projects"'
Usar un alias dentro de otro
Los alias solo se expanden un nivel de profundidad por defecto. Si necesitas referenciar otro alias dentro de un alias, usa una función en su lugar.
Conclusión
Los alias sirven para dos cosas: comandos que escribes constantemente y opciones que nunca recuerdas. Empieza con solo unos pocos, y añade más cada vez que te pilles escribiendo lo mismo repetidamente.
Empieza ahora mismo:
- Ejecuta
aliaspara ver qué ya está definido - Abre
~/.bashrco~/.zshrcy añade tu propia sección de alias - Ejecuta
source ~/.bashrcpara aplicar los cambios
Una vez que tengas un buen conjunto de alias, pasa a las funciones de shell para todo lo que necesite argumentos. Con el tiempo, tu configuración de shell se convierte en una herramienta de productividad adaptada exactamente a tu forma de trabajar.