Hacer un alias en Bash
Un alias es un comando en shells que permite reemplazar una palabra por otra cadena. Se utiliza principalmente para acortar un comando del sistema o proporcionar parámetros predeterminados para un comando de uso frecuente.
Es similar a un comando de acceso directo, con la misma funcionalidad que escribir el comando completo.
Crear Alias en Bash
Veamos un ejemplo.
$ alias update="sudo apt-get update"
Creamos un alias update
, que es un atajo para sudo apt-get update
. Ahora, cuando ejecutamos update
, funciona igual que sudo apt-get update
.
$ update
Producción :
[sudo] password for username:
Get:1 https://typora.io/linux ./ InRelease [793 B]
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:3 http://np.archive.ubuntu.com/ubuntu focal InRelease
Hit:4 http://ppa.launchpad.net/micahflee/ppa/ubuntu focal InRelease
Ign:5 http://linux.dropbox.com/ubuntu disco InRelease
Get:6 http://np.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Hit:7 http://linux.dropbox.com/ubuntu disco Release
Ign:8 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 InRelease
Hit:10 https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 Release
Get:12 http://security.ubuntu.com/ubuntu focal-security/main amd64 DEP-11 Metadata [35.7 kB]
Get:13 http://np.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 DEP-11 Metadata [66.3 kB]
Get:15 http://np.archive.ubuntu.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [278 kB]
Get:16 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 DEP-11 Metadata [2,468 B]
Get:17 http://np.archive.ubuntu.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [363 kB]
Get:18 http://np.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [940 B]
Get:19 http://np.archive.ubuntu.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,996 B]
Get:20 http://np.archive.ubuntu.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [11.3 kB]
Fetched 1,102 kB in 9s (120 kB/s)
Reading package lists... Done
Para enumerar todos los alias, ejecute el siguiente comando.
$ alias
Producción :
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias echo='show'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias show='echo'
alias update='sudo apt-get update'
El alias recién creado update
también está en la lista con todos los demás alias.
Crear alias de Bash que tome parámetros
El alias de Bash no acepta parámetros directamente. Tenemos que escribir una función porque el mecanismo de la función es más adaptable y proporciona la misma funcionalidad que antes.
Aunque un alias no toma parámetros, se puede invocar una función de la misma manera que un alias. Veamos un ejemplo.
$ alias wargs='f(){ echo first "$@" last; unset -f f; }; f'
$ wargs a b c
En el ejemplo anterior, se crea una función temporal f
. Los argumentos se envían cuando se llama f
al final.
La opción no establecida -f
elimina la definición de la función mientras se realiza el alias, asegurando que no se demore después.
Producción :
first a b c last
Eliminar alias en Bash
Podemos eliminar el alias update
creado anteriormente mediante el comando unalias
.
$ unalias update
Revisemos la lista de todos los alias nuevamente.
$ alias
Producción :
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias echo='show'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
alias show='echo'
alias wargs='f(){ echo first "$@" last; unset -f f; }; f'
Como se ve en la salida, el alias update
se elimina de la lista de alias.