En informática , alias es un comando en varios intérpretes de línea de comandos ( shells ), que permite el reemplazo de una palabra por otra cadena. [1] Se utiliza principalmente para abreviar un comando del sistema o para agregar argumentos predeterminados a un comando de uso habitual. alias
está disponible en shells de Unix , AmigaDOS , 4DOS / 4NT , KolibriOS , Windows PowerShell , ReactOS y el shell de EFI . [2] Funcionalidad de aliasing en MS-DOS yLos sistemas operativos Microsoft Windows son proporcionados por la utilidad de línea de comandos DOSKey .
Autor (es) original (es) | Bill Joy |
---|---|
Desarrollador (es) | Varios desarrolladores comerciales y de código abierto |
Sistema operativo | Unix , similar a Unix , AmigaDOS , Microsoft Windows , ReactOS , AROS , KolibriOS , IBM i |
Plataforma | Multiplataforma |
Tipo | Mando |
Un alias durará toda la vida de la sesión de shell. Los alias que se utilizan con regularidad se pueden establecer desde el archivo rc del shell (como .bashrc
) para que estén disponibles al inicio de la sesión del shell correspondiente. Los comandos alias o bien puede estar escritos en el archivo de configuración directa o provienen 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 de shell de 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 al shell Korn (ksh). Con shells que admiten tanto funciones como 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 . [3]
Uso
Creando alias
Unix
Se pueden crear alias no persistentes proporcionando pares de nombre / valor como argumentos para el comando alias. En los shells de Unix, la sintaxis es:
alias gc = 'git commit'
Cáscara de C
La sintaxis correspondiente en el shell C o tcsh shell 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 usa la siguiente sintaxis para definir cp
como un alias para el copy
comando 4DOS :
copia de alias cp
Windows PowerShell
Para crear un nuevo alias en Windows PowerShell, new-alias
se puede usar el cmdlet:
elemento de copia ci de nuevo alias
Esto crea un nuevo alias llamado ci
que será reemplazado por el copy-item
cmdlet cuando se ejecute.
En PowerShell, no se puede usar un alias para especificar argumentos predeterminados para un comando. En su lugar, esto debe hacerse agregando elementos a la colección $ PSDefaultParameterValues, una de las variables de preferencia de PowerShell.
Ver los alias definidos actualmente
Para ver los alias definidos, se pueden utilizar los siguientes comandos:
alias # Se usa sin argumentos; muestra una lista de todos los alias actuales alias -p # Lista de alias de una manera que permite la recreación obteniendo la salida; no disponible en 4DOS / 4NT y PowerShell alias myAlias # Muestra el comando para un alias definido
Anulación de alias
En los shells de Unix, es posible anular un alias citando cualquier carácter en el nombre del alias cuando se usa 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:
'ls'
o
\ ls
En el shell 4DOS / 4NT es posible anular un alias prefijá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 dir
que se invoque el sin alias, evitando la expansión de alias recursiva. Además, el usuario puede obtener el comportamiento sin alias de dir
en la línea de comando utilizando la misma sintaxis:
* dir
Cambiar alias
En Windows PowerShell, el set
verbo se puede usar con el alias
cmdlet para cambiar un alias existente:
set-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
El /a
hace que los alias cp
a ser editadas, en contraposición a una variable de entorno del mismo nombre.
Eliminando alias
En los shells de 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 * # 4DOS / 4NT equivalente de `unalias -a` - se admiten comodines
En Windows PowerShell, el alias se puede eliminar del alias: \ unidad usando remove-item
:
remove-item alias : ci # Elimina el alias ci
Características
Encadenamiento
Un alias generalmente reemplaza solo la primera palabra. Pero algunas conchas, como bash
y ksh
, permiten reemplazar una secuencia o palabras. Esta característica en 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 final. Por ejemplo, usando los dos alias:
alias list = 'ls' # observe el espacio final para activar el encadenamiento alias long = '-Flas' # opciones a ls para una lista larga
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.
Argumentos de comando
En C Shell , los argumentos se pueden incrustar dentro del comando usando la cadena \! * . Por ejemplo, con este alias:
alias ls-more 'ls \! * | más'
ls-more /etc /usr
se expande para ls /etc /usr | more
listar el contenido de los directorios / etc y / usr, haciendo una pausa después de cada pantalla. Sin \! * ,
alias ls-more 'ls | más'
en su lugar, se expandiría a lo ls | more /etc /usr
que intenta incorrectamente abrir los directorios en más . [4]
En su lugar, los shells Bash y Korn usan funciones de shell; consulte § Alternativas a continuación.
Alternativas
Por lo general, los alias deben mantenerse simples. Cuando no sea sencillo, la recomendación suele ser utilizar uno de los siguientes:
- Scripts de shell , que esencialmente brindan la capacidad total para 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 oculta para la pequeña cantidad de comandos que usan su nombre de invocación para seleccionar el modo de operación. - Las funciones del shell, especialmente si el comando que se está creando necesita modificar el entorno de ejecución interno del propio shell (como las variables de entorno ), necesita cambiar el directorio de trabajo actual del shell o debe implementarse de una manera que garantice que aparecerá en el ruta de búsqueda de comandos para nada más que una cáscara interactiva (especialmente cualquier versión "segura" de
rm
,cp
,mv
y así sucesivamente).
La forma más común de alias, que solo 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' # lista larga, alias
ll () { ls -Flas " $ @ " ; } # lista larga, función
Para evitar que una función se llame a sí misma de forma recursiva , utilice command
:
ls () { comando ls --color = auto " $ @ " ; }
En las viejas conchas de Bourne, utilice en /bin/ls
lugar de command ls
.
Referencias
- ^ "Referencia rápida de AmigaDOS: Rügheimer, Hannes: descarga gratuita, préstamo y transmisión: Internet Archive" . Archivo de Internet . 2020-06-10 . Consultado el 12 de septiembre de 2020 .
- ^ "EFI Shells y Scripting" . Intel . Consultado el 25 de septiembre de 2013 .
- ^ IBM . "IBM System i Versión 7.2 Programación Qshell" (PDF) . Consultado el 5 de septiembre de 2020 .
- ^ Ejemplos de paso de argumentos dados a un alias de comando. Archivado el 25 de noviembre de 2012 en Wayback Machine.
Otras lecturas
- McElhearn, Kirk (2006). La línea de comandos de Mac OS X: Unix Under the Hood . John Wiley e hijos . ISBN 978-0470113851.
enlaces externos
- : definir o mostrar alias - Referencia de comandos y utilidades, La especificación única de UNIX , Edición 7 de The Open Group
- Página de manual de Bash para alias
- El comando alias de The Linux Information Project (LINFO)