Linux / Comando alias: crear y guardar abreviaturas de comandos en Bash

alias es un comando incorporado en Bash que asigna nombres cortos a comandos largos o a combinaciones de opciones que se usan con frecuencia. Se puede verificar los alias definidos actualmente en el shell o crear uno nuevo, siendo útil para reducir la entrada repetitiva y hacer que el trabajo interactivo sea consistente.

Un alias es un mecanismo de sustitución de texto al leer una orden; no es una función de shell ni un programa independiente. Para manejar argumentos posicionales o lógica de varios pasos, suele ser más clara una función.

¿Qué es el comando alias?

Cuando la primera palabra de una orden simple no está entre comillas y coincide con un alias, Bash la sustituye por el texto registrado al leer la orden. Por ejemplo, si define ll como ls -alF, ll /var/log se expande a ls -alF /var/log.

alias en sí es un comando incorporado de Bash. Este texto se basa en Bash; otros shells como Zsh pueden tener reglas de expansión y archivos de configuración diferentes.

Sintaxis básica

alias [-p] [NOMBRE[=VALOR]...]

Sin argumentos, alias muestra las definiciones actuales. Con un nombre consulta esa definición; con NOMBRE=VALOR la crea o cambia. En una shell limpia, la consulta alias ll del bloque siguiente puede fallar antes de que la última línea defina ese nombre: no indica un error de instalación.

alias
alias ll
alias ll='ls -alF'

Verificar alias actuales

Mostrar todos los alias

alias

La salida generalmente está en el formato alias NOMBRE='VALOR', que se puede volver a ingresar. alias -p también se puede usar para el mismo propósito.

Verificar un alias específico

alias ls
alias grep

Si el nombre especificado no está definido como un alias, se mostrará un mensaje de error y se devolverá un estado de fallo. Para comprobar si un nombre de comando es un alias, una función o un archivo ejecutable, use type NOMBRE.

Crear un alias

Dado que el valor puede contener espacios o caracteres meta del shell, generalmente es seguro encerrarlo entre comillas simples.

alias ll='ls -alF'
alias grep='grep --color=auto'
alias ..='cd ..'
alias logs='journalctl -xe'

No agregue espacios antes o después de =. Escribirlo como alias ll = 'ls -alF' no se interpretará como una definición de alias.

Guardar para seguir usando el alias

Los alias definidos en la línea de comandos solo son válidos durante el proceso actual del shell. Para usarlos también en una nueva terminal, deben definirse en el archivo de inicio de Bash.

alias ll='ls -alF'
alias update='sudo apt update && sudo apt upgrade'

En Bash interactivo, generalmente se agrega en ~/.bashrc en el directorio personal del usuario. Según la distribución, a veces se carga ~/.bash_aliases desde ~/.bashrc, por lo que primero verifique la estructura de configuración existente.

Añada únicamente definiciones revisadas al archivo de inicio que ya utiliza. El alias update mostrado está pensado para sistemas con APT, como Ubuntu, y al ejecutarlo modifica los paquetes; no es una abreviatura universal para cualquier distribución. Para cargar las definiciones puede abrir una shell nueva o usar source, que ejecuta todo el archivo y debe aplicarse solo a configuración de confianza.

source ~/.bashrc

Ejemplos prácticos de alias

Ejemplo Propósito
alias la='ls -A' Muestra los nombres ocultos, excepto . y ...
alias c='clear' Limpia la pantalla del terminal con un comando corto.
alias gs='git status' Verifica rápidamente el estado del árbol de trabajo de Git.
alias dfh='df -h' Muestra el uso del sistema de archivos en unidades legibles.
alias mkdir='mkdir -p' Crea todos los directorios superiores necesarios. Cambia el comportamiento del comando existente, por lo que se debe tener precaución en un entorno de equipo.

Cómo ejecutar el comando original

Para omitir temporalmente un alias en un nombre al que se le aplica un alias, puede anteponer una barra invertida al comando.

\ls

command permite omitir la búsqueda de funciones de la shell. La expansión de alias ocurre antes de esa búsqueda; en command ls, si command no es a su vez un alias, la segunda palabra ls normalmente no se expande como alias. También puede indicar una ruta absoluta como /usr/bin/ls para elegir el archivo ejecutable concreto.

Usar funciones del shell cuando se necesitan argumentos

Los alias no tienen la capacidad de insertar el primer argumento recibido en una posición intermedia. Si necesita manejar argumentos posicionales como se muestra a continuación, es más claro definir una función.

mkcd() {
  mkdir -p -- "$1" && cd -- "$1"
}

Los argumentos ingresados después de un alias se agregan tal cual al final del comando expandido. Si solo quiere agregar opciones predeterminadas, un alias es adecuado, pero si necesita condicionales, bucles o validación de argumentos, use una función.

Casos en los que un alias no se expande

Shell no interactiva y scripts

Bash no expande alias por defecto en shells no interactivos. Se puede cambiar a shopt -s expand_aliases, pero en los scripts es mejor usar funciones o comandos explícitos en lugar de alias por razones de portabilidad y previsibilidad.

Definir y ejecutar en la misma línea

Los alias se expanden cuando Bash lee el comando, no en el momento de la ejecución. Por lo tanto, un alias definido en la misma línea o dentro de un comando compuesto puede no aplicarse al comando siguiente.

alias hi='printf "hello\n"'; hi

Para evitar confusiones, coloque las definiciones de alias en líneas separadas y use funciones o comandos en la lógica del script.

Criterios para un uso seguro

  • Evite alias que oculten operaciones peligrosas como borrar o sobrescribir.
  • Cuando use nombres iguales a los de comandos básicos, tenga presente que el comportamiento puede cambiar.
  • Asegúrese de que los procedimientos del servidor o los scripts compartidos no dependan de alias personales.
  • Use funciones cuando necesite manejo complejo de comillas, tuberías y argumentos.
  • Compruebe la definición real del alias en alias NOMBRE o type NOMBRE.

Comparación de alias, funciones y scripts

Método Uso adecuado Precauciones
alias Agregar nombres cortos o opciones predeterminadas en el shell interactivo Difícil administrar argumentos posicionales y lógica compleja directamente
Función de shell Tareas repetitivas que requieren argumentos, declaraciones condicionales y múltiples comandos Se necesita el tipo de shell actual y la definición de funciones.
Script de ejecución Tareas que se pueden reutilizar en otras shells, usuarios o sistemas Se necesita la ubicación de los archivos, permisos de ejecución y PATH.

Preguntas frecuentes

He creado un alias, pero desaparece en la nueva terminal.

El alias creado desde la línea de comandos solo existe en la shell actual. Guárdelo en el archivo de configuración de alias que utiliza ~/.bashrc o su distribución y luego inicie una nueva shell.

¿Se pueden poner argumentos en el nombre del alias?

Los argumentos que se ingresan después del alias se agregan al final del resultado de la expansión, pero no se pueden colocar como $1. Si necesita controlar la posición de los argumentos o realizar validaciones, use funciones de shell.

¿Cómo se elimina un alias?

Actualmente se utiliza unalias NOMBRE en el shell. Si es un alias guardado en el archivo de inicio, también debe eliminarse o comentarse esa definición para que no se recree en un nuevo shell.

Para comparar otras herramientas, consulte la Lista de comandos de uso frecuente en Linux. Para consultar las reglas y opciones, use Manual de GNU Bash: Aliases y Manual de GNU Bash: órdenes incorporadas de Bash.