Alias (comando)
En informática, alias es un comando en varios intérpretes de línea de comandos (shells), que permite reemplazar una palabra por otra cadena. Se utiliza principalmente para abreviar un comando del sistema o para agregar argumentos predeterminados a un comando utilizado habitualmente. alias
está disponible en shells Unix, AmigaDOS, 4DOS/4NT, FreeDOS, KolibriOS, Windows PowerShell, ReactOS y el shell EFI. La funcionalidad de alias en los sistemas operativos MS-DOS y Microsoft Windows la proporciona la utilidad de línea de comandos DOSKey.
Un alias durará toda la vida de la sesión de shell. Los alias utilizados habitualmente se pueden configurar desde el archivo rc del shell (como .bashrc
) para que estén disponibles al inicio de la sesión de shell correspondiente. Los comandos de alias pueden escribirse directamente en el archivo de configuración o obtenerse de un archivo separado.
Historia
En Unix, los alias se introdujeron en el shell C y sobreviven en shells descendientes como tcsh y bash. Los alias del shell C estaban estrictamente limitados a una línea. Esto fue útil para crear comandos de acceso directo simples, pero no construcciones más complejas. Las versiones anteriores del shell Bourne no ofrecían alias, pero sí proporcionaban funciones que son más poderosas que el concepto de alias csh. El concepto de alias de csh se importó a Bourne Again Shell (bash) y Korn Shell (ksh). Con shells que admiten funciones y alias pero sin scripts de shell en línea parametrizados, se recomienda el uso de funciones siempre que sea posible. Los casos en los que se necesitan alias incluyen situaciones en las que se requieren alias encadenados (bash y ksh). El comando alias también se ha trasladado al sistema operativo IBM i.
Uso
Crear alias
Shells comunes de Unix
Se pueden crear alias no persistentes proporcionando pares de nombre/valor como argumentos para el comando alias. En shells de Unix la sintaxis es:
alias gc='git commit '
Cáscara C
La sintaxis correspondiente en el shell C o tcsh es:
alias gc "git commit"
Este alias significa que cuando el comando gc
se lee en el shell, será reemplazado por git commit
y ese comando se ejecutará en su lugar.
4DOS
En el shell 4DOS/4NT se utiliza la siguiente sintaxis para definir cp
como un alias para el comando copia
de 4DOS:
alias cp copy
Windows PowerShell
Para crear un nuevo alias en Windows PowerShell, se puede utilizar el cmdlet new-alias
:
new-alias ci copy-item
Esto crea un nuevo alias llamado ci
que será reemplazado por el cmdlet copy-item
cuando se ejecute.
En PowerShell, no se puede utilizar un alias para especificar argumentos predeterminados para un comando. En su lugar, esto se debe hacer agregando elementos a la colección $PSDefaultParameterValues, una de las variables de preferencia de PowerShell.
Ver alias definidos actualmente
Para ver los alias definidos se pueden utilizar los siguientes comandos:
alias # Utilizado sin argumentos; muestra una lista de todos los alias actualesalias -p # List alias de una manera que permite la re-creación mediante la obtención de la salida; no disponible en 4DOS/4NT y PowerShellalias myAlias # Muestra el comando para un alias definido
Anular alias
En shells de Unix, es posible anular un alias citando cualquier carácter en el nombre del alias cuando se utiliza el alias. Por ejemplo, considere la siguiente definición de alias:
alias Is='s -la '
Para anular este alias y ejecutar el comando ls
tal como se definió originalmente, se puede utilizar la siguiente sintaxis:
's '
o
ls
En el shell 4DOS/4NT es posible anular un alias anteponiéndolo con un asterisco. Por ejemplo, considere la siguiente definición de alias:
alias dir = *dir /2/p
El asterisco en la segunda instancia de dir
hace que se invoque el dir
sin alias, lo que evita la expansión recursiva del alias. Además, el usuario puede obtener el comportamiento sin alias de dir
en la línea de comando usando la misma sintaxis:
*dir
Cambiar alias
En Windows PowerShell, el verbo set
se puede usar con el cmdlet alias
para cambiar un alias existente:
set-alias ci cls
El alias ci
ahora apuntará al comando cls
.
En el shell 4DOS/4NT, el comando eset
proporciona una línea de comando interactiva para editar un alias existente:
eset /a cp
/a
hace que se edite el alias cp
, a diferencia de una variable de entorno del mismo nombre.
Eliminar alias
En shells Unix y 4DOS/4NT, los alias se pueden eliminar ejecutando el comando unalias
:
unalias Copia # Elimina el alias de la copiaunalias -a # El -un interruptor eliminará todos los alias; no está disponible en 4DOS/4NTunalias * # 4DOS/4NT equivalent of `unalias -a` - wildcards are supported
En Windows PowerShell, el alias se puede eliminar de la unidad alias: usando remove-item
:
Tema eliminado alias:ci # Quita el alias ci
Características
Encadenamiento
Un alias normalmente reemplaza solo la primera palabra. Pero algunos shells, como bash
y ksh
, permite reemplazar una secuencia o palabras. Esta característica particular no está disponible a través del mecanismo de función.
La sintaxis habitual es definir el primer alias con un carácter de espacio al final. Por ejemplo, usando los dos alias:
alias lista='Es ' # note the trailing space to trigger chainingalias largo='-Flas ' # options to ls for a long listing
permite:
lista largo myfile # se convierte en "ls -Flas myfile" cuando corre
para una lista larga, donde "long" también se evalúa como un alias.
Argumentos del comando
En C Shell, los argumentos se pueden incrustar dentro del comando usando la cadena !*. Por ejemplo, con este alias:
alias ls-more 's ! '
ls-more /etc /usr
se expande a ls /etc /usr | more
para enumerar el contenido de los directorios /etc y /usr, haciendo una pausa después de cada pantalla completa. Sin !*,
alias ls-more Es más que vivir '
en su lugar se expandiría a ls | more /etc /usr
que intenta incorrectamente abrir los directorios en more.
En cambio, los shells Bash y Korn utilizan funciones de shell; consulte § Alternativas a continuación.
Alternativas
Los alias normalmente deben mantenerse simples. Cuando no sea sencillo, la recomendación suele ser utilizar uno de los siguientes:
- Los scripts Shell, que esencialmente proporcionan la plena capacidad de crear nuevos comandos del sistema.
- Enlaces simbólicos en el usuario
PATH
(como/bin
). Este método es útil para proporcionar una forma adicional de llamar al comando, y en algunos casos puede permitir el acceso a una función de comando enterrada para el pequeño número de comandos que utilizan su nombre de invocación para seleccionar el modo de operación. - Funciones de Shell, especialmente si el comando que se crea necesita modificar el entorno de tiempo de funcionamiento interno de la propia cáscara (como variables ambientales), necesita cambiar el directorio de trabajo actual de la cáscara, o debe ser implementado de una manera que garantice que aparezca en la ruta de búsqueda de comandos para cualquier cosa excepto una concha interactiva (especialmente cualquier versión "salida" de la cáscara)
rm
,cp
,mv
y así sucesivamente).
La forma más común de alias, que simplemente agrega algunas opciones a un comando y luego incluye el resto de la línea de comando, se puede convertir fácilmente en funciones de shell siguiendo este patrón:
alias ll='ls -Flas ' # largo listado, aliasll () {} Is -Flas "$@" ; } # larga lista, función
Para evitar que una función se llame a sí misma de forma recursiva, utilice comando
:
Is () {} comando Is --color=auto "$@" ; }
En shells Bourne más antiguos, utilice /bin/ls
en lugar de command ls
.