Linux / Comando unalias: eliminar alias de Bash en la sesión y al iniciar
unalias es un comando incorporado que elimina los alias registrados en el shell actual de Bash. Se pueden eliminar alias específicos o todos los alias con la opción -a, pero no borra automáticamente las definiciones guardadas en los archivos de inicio.
Es útil cuando los alias aplican opciones inesperadas o dificultan la ejecución del comando original. Es esencial entender la diferencia entre eliminación temporal y permanente.
¿Qué es el comando unalias?
Si alias registra un nombre de comando y una cadena de sustitución, unalias elimina ese registro en la sesión actual de Bash. Después de la eliminación, si se ingresa el mismo nombre, Bash buscará nuevamente entre la función, los comandos incorporados o el archivo ejecutable de PATH, entre otros candidatos.
Este artículo se basa en Bash. Otros shell pueden tener un comando con el mismo nombre, pero las opciones de soporte y los archivos de configuración pueden diferir.
Sintaxis básica
unalias [-a] [NOMBRE...]
Si se especifica uno o más nombres, se eliminarán esos alias. -a elimina todos los alias del shell actual.
Eliminar alias específicos
alias ll='ls -alF'
unalias ll
Los bloques son ejemplos independientes: antes del siguiente, vuelva a definir ll con la orden alias mostrada arriba. Después de retirarlo, type ll puede fallar si no queda ningún comando con ese nombre; ese fallo es el resultado esperado en una shell limpia.
alias ll
unalias ll
type ll
Después de eliminar los alias, si existen funciones o archivos ejecutables con el mismo nombre, esos objetivos pueden ser seleccionados. No suponga simplemente que "el comando ha desaparecido"; es recomendable verificar los candidatos restantes con type -a NOMBRE.
Eliminar varios alias a la vez
unalias ll la grep
Si hay un alias no definido entre los nombres especificados, unalias puede devolver un estado de fallo. Tenga esto en cuenta al usar el resultado en código automatizado.
Eliminar todos los alias
unalias -a
-a elimina todos los alias del shell actual. Esto puede eliminar no solo configuraciones personales, sino también alias proporcionados por la distribución por conveniencia o seguridad, por lo que se debe usar con precaución si no se trata de un shell temporal para acotar la causa del problema.
Para conservar la lista actual antes de eliminar, puede mostrarla de la siguiente manera.
alias -p
Diferencia entre eliminación temporal y permanente
Solo se elimina en el terminal actual
unalias solo modifica la tabla de alias del proceso Bash actual. Si cierra el terminal y abre un nuevo shell, los alias en archivos de inicio como ~/.bashrc se volverán a definir.
Eliminar también en un nuevo terminal
Para eliminar un alias de manera permanente, debe localizar el archivo de configuración donde se definió el alias y eliminar esa línea o comentarla.
grep -n "alias ll=" ~/.bashrc ~/.bash_aliases 2>/dev/null
Después de retirar o comentar la definición, abra una shell nueva y compruebe el resultado con type -a ll. Para borrar también el alias que ya está en la sesión actual, ejecute unalias ll. Volver a cargar un archivo del que se ha eliminado una línea no borra por sí solo el alias anterior; source ejecuta el contenido completo del archivo y solo debe aplicarse a configuración revisada.
source ~/.bashrc
También puede definirse en /etc/bash.bashrc o /etc/profile.d/, que son configuraciones de todo el sistema. Antes de cambiar archivos del sistema, revise primero cómo redefinir desde la configuración del usuario o eliminar solo en la sesión necesaria.
Evitar un alias solo una vez sin eliminarlo
Si solo desea ejecutar el comando original una vez, no es necesario eliminar el alias. Puede anteponer una barra invertida al nombre del comando o usar la ruta absoluta del ejecutable.
\ls
/usr/bin/ls
La barra invertida evita la expansión como alias, pero no evita una función con el mismo nombre. Una ruta absoluta ejecuta ese archivo sin buscarlo en PATH ni seleccionar una función de igual nombre. Compruebe que el ejecutable exista en esa ruta en su sistema.
Los alias, funciones y variables tienen diferentes métodos de eliminación
| Objetivo | Comando de eliminación | Método de verificación |
|---|---|---|
| Alias | unalias NOMBRE |
alias NOMBRE o type NOMBRE |
| Función de shell | unset -f NOMBRE |
declare -F NOMBRE o type NOMBRE |
| Variable de shell | unset NOMBRE |
declare -p NOMBRE |
| Archivo ejecutable | Uso de comandos de gestión de archivos | type -a NOMBRE o command -v NOMBRE |
unalias no elimina funciones o archivos con el mismo nombre. Si se juzga incorrectamente el tipo de comando, el objetivo deseado puede permanecer, así que primero verifíquelo con type.
Uso seguro en scripts
Para eliminar solo si está definido, primero se puede verificar el estado de finalización de alias.
if alias ll >/dev/null 2>&1; then
unalias ll
fi
Sin embargo, Bash no interactivo no expande alias por defecto, por lo que en la mayoría de los casos un script normal no necesita eliminar alias de usuario. Es preferible escribir scripts que no dependan de configuraciones personales de la shell interactiva.
Problemas comunes
Después de unalias, los alias reaparecen en una nueva terminal.
Esto se debe a que ~/.bashrc, ~/.bash_aliases, o archivos de inicio del sistema se redefinen. Debe encontrar la ubicación de la definición y modificarla.
aparece el error unalias: not found.
Es muy probable que el nombre especificado no sea actualmente un alias en el shell. Verifique si es una función, un comando incorporado o un archivo ejecutable con type -a NOMBRE.
El comportamiento del comando todavía parece diferente.
Puede que exista una función de shell con el mismo nombre o que el archivo ejecutable esté en varias rutas. Verifique todos los candidatos con type -a NOMBRE y, si es necesario, vacíe la caché de rutas de comandos de Bash con hash -r y luego revise nuevamente.
Selección según la situación de uso
| Situación | Método recomendado |
|---|---|
| Ejecutar el comando original solo una vez | Use \NOMBRE o la ruta absoluta. |
| Eliminar alias en el terminal actual | Se utiliza unalias NOMBRE. |
| Eliminar temporalmente los efectos de todos los alias | Después de verificar la lista, use unalias -a. |
| Eliminar también en un nuevo terminal | Modificar el archivo de inicio donde se definen los alias. |
| Eliminar funciones con el mismo nombre | Se utiliza unset -f NOMBRE. |
Preguntas frecuentes
¿Se puede recuperar al ejecutar unalias -a?
No hay una función para revertir directamente la definición de alias del shell actual. Los alias guardados en los archivos de inicio se pueden volver a cargar con source ~/.bashrc, pero los alias creados solo desde la línea de comandos deben redefinirse.
¿Afecta unalias a otros terminales?
No. Cada proceso de shell de cada terminal tiene su propia tabla de alias, por lo que unalias ejecutado en el shell actual no afecta directamente a otros shells.
¿Qué se ejecuta si se introduce un nombre de alias que se ha eliminado?
Bash busca funciones restantes, comandos internos y archivos ejecutables de PATH según las reglas de búsqueda de comandos. El resultado de la selección real se puede confirmar con type NOMBRE.
Para identificar otras herramientas, consulte la Lista de comandos de uso frecuente en Linux. Las reglas de expansión y las opciones se detallan en el Manual de GNU Bash: Aliases y en el Manual de GNU Bash: órdenes incorporadas.




