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. [1] 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 , KolibriOS , Windows PowerShell , ReactOS y el shell EFI . [2] 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.
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 portado al sistema operativo IBM i . [3]
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'
La sintaxis correspondiente en el shell C o el shell tcsh es:
alias gc "git commit"
Este alias significa que cuando el comando gc
se lee en el shell, será reemplazado git commit
y ese comando se ejecutará en su lugar.
En el shell 4DOS/4NT se utiliza la siguiente sintaxis para definir cp
como alias para el copy
comando 4DOS:
copia de alias cp
Para crear un nuevo alias en Windows PowerShell, new-alias
se puede utilizar el cmdlet:
nuevo-alias ci copiar-elemento
Esto crea un nuevo alias llamado ci
que será reemplazado por el copy-item
cmdlet 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.
Para ver los alias definidos se pueden utilizar los siguientes comandos:
alias # Usado sin argumentos; muestra una lista de todos los alias actuales alias -p # Enumera los alias de una manera que permita la recreación obteniendo la salida; no disponible en 4DOS/4NT y PowerShell alias myAlias # Muestra el comando para un alias definido
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 ls = 'ls -la'
Para anular este alias y ejecutar el ls
comando como se definió originalmente, se puede utilizar la siguiente sintaxis:
'yo'
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 hace que se invoque dir
el alias sin alias , lo que evita la expansión recursiva del alias. dir
Además, el usuario puede obtener el comportamiento sin alias dir
en la línea de comando usando la misma sintaxis:
*directorio
En Windows PowerShell, el set
verbo se puede utilizar con el alias
cmdlet para cambiar un alias existente:
establecer alias ci cls
El alias ci
ahora apuntará al cls
comando.
En el shell 4DOS/4NT, el eset
comando proporciona una línea de comando interactiva para editar un alias existente:
eset /a cp
Esto /a
hace que se edite el alias cp
, a diferencia de una variable de entorno del mismo nombre.
En shells Unix y 4DOS/4NT, los alias se pueden eliminar ejecutando el unalias
comando:
unalias copy # Elimina el alias de copia unalias -a # El modificador -a eliminará todos los alias; no disponible en 4DOS/4NT unalias * # equivalente en 4DOS/4NT de `unalias -a` - se admiten comodines
En Windows PowerShell, el alias se puede eliminar de la unidad alias:\ usando remove-item
:
remove-item alias : ci # Elimina el alias ci
Un alias suele sustituir sólo la primera palabra. Pero algunos shells, como bash
y ksh
, permiten 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 list = 'ls ' # tenga en cuenta el espacio final para activar el encadenamiento alias long = '-Flas' # opciones para ls para un listado largo
permite:
list long myfile # se convierte en "ls -Flas myfile" cuando se ejecuta
para una lista larga, donde "largo" también se evalúa como un alias.
En C Shell , los argumentos se pueden incrustar dentro del comando usando la cadena \!* . Por ejemplo, con este alias:
alias ls-más 'ls \!* | más'
ls-more /etc /usr
se expande para ls /etc /usr | more
enumerar el contenido de los directorios /etc y /usr, haciendo una pausa después de cada pantalla completa. Sin \!* ,
alias ls-más 'ls | más'
en su lugar, se expandiría a ls | more /etc /usr
lo que intenta incorrectamente abrir los directorios en more . [4]
En cambio, los shells Bash y Korn utilizan funciones de shell; consulte § Alternativas a continuación.
Por lo general, los alias deben mantenerse simples. Cuando no sea sencillo, la recomendación suele ser utilizar uno de los siguientes:
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 oculta para una pequeña cantidad de comandos que usan su nombre de invocación para seleccionar el modo de operación.rm
, cp
, mv
etc.).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' # listado largo, alias
ll () { ls -Flas " $@ " ; } # listado largo, función
Para evitar que una función se llame a sí misma de forma recursiva , utilice command
:
ls () { comando ls --color = auto " $@ " ; }
En shells Bourne más antiguos se utiliza /bin/ls
en lugar de command ls
.