32blogby StudioMitsu

Guía completa de alias en Linux: haz tu shell 10 veces más rápido

Desde los fundamentos de alias hasta configuraciones persistentes, atajos de git/docker, plugins de oh-my-zsh y funciones de shell — todo para potenciar tu terminal.

8 min read
Contenido

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:

bash
alias

Salida típica en Ubuntu:

bash
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

bash
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:

bash
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:

bash
echo $SHELL
  • bash~/.bashrc (shell interactivo) o ~/.bash_profile (shell de login)
  • zsh~/.zshrc

Abre el archivo en tu editor preferido:

bash
# 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:

bash
# ===========================
# 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:

bash
source ~/.bashrc
# o
. ~/.bashrc

Colecciones útiles de alias

Git

Si usas Git a diario, estos te ahorrarán una cantidad significativa de escritura:

bash
# 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

bash
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

bash
# 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

bash
# 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:

bash
# 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:

bash
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:

bash
z proj   # salta a ~/projects si has estado ahí antes

Gestionar tus alias

Verificar qué hace un alias específico

bash
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 \:

bash
# Aunque ls tenga alias, esto ejecuta el ls real sin color
\ls

Eliminar un alias

bash
unalias gs        # eliminar el alias gs
unalias -a        # eliminar TODOS los alias (usar con precaución)

Flujo seguro para editar .bashrc

bash
# 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 =.

bash
alias | grep nombredelias

Rutas con espacios causan errores

Siempre pon entre comillas las rutas que contienen espacios:

bash
# 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:

  1. Ejecuta alias para ver qué ya está definido
  2. Abre ~/.bashrc o ~/.zshrc y añade tu propia sección de alias
  3. Ejecuta source ~/.bashrc para 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.