Diferents maneres de crear i utilitzar àlies de Bash a Linux


L'àlies a bash es pot denominar simplement com una ordre o una drecera que executarà una altra ordre/programa. L'àlies és molt útil quan la nostra ordre és molt llarga i per a ordres d'ús freqüent. Al llarg d'aquest article, veurem com de poderós és un àlies i les diferents maneres de configurar un àlies i utilitzar-lo.

Comproveu els àlies de Bash a Linux

L'àlies és una ordre integrada de l'intèrpret d'ordres i podeu confirmar-la executant:

$ type -a alias

alias is a shell builtin

Abans de saltar i configurar un àlies veurem els fitxers de configuració implicats. Un àlies es pot establir al \nivell d'usuari o al \nivell del sistema.

Invoqueu el vostre shell i simplement escriviu àlies per veure la llista d'àlies definits.

$ alias

Els àlies a nivell d'usuari es poden definir al fitxer .bashrc o al fitxer .bash_aliases. El fitxer .bash_aliases és per agrupar tots els vostres àlies en un fitxer separat en lloc de posar-lo al fitxer .bashrc juntament amb altres paràmetres. Inicialment, .bash_aliases no estarà disponible i l'hem de crear.

$ ls -la ~ | grep -i .bash_aliases       # Check if file is available
$ touch ~/.bash_aliases                  # Create empty alias file

Obriu el fitxer .bashrc i busqueu la secció següent. Aquesta secció de codi s'encarrega de comprovar si el fitxer .bash_aliases està present al directori d'inici de l'usuari i carregar-lo sempre que inicieu una nova sessió de terminal.

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

També podeu crear un fitxer d'àlies personalitzat a qualsevol directori i afegir una definició a .bashrc o .profile per carregar-lo. Però no preferiré això i opto per seguir agrupant tots els meus àlies sota .bash_aliases.

També podeu afegir àlies al fitxer .bashrc. Mireu la secció d'àlies del fitxer .bashrc on inclou alguns àlies predefinits.

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# Add an "alert" alias for long running commands.  Use like so:
#   sleep 10; alert
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$//'\'')"'

Creació d'àlies a Linux

Podeu crear un àlies temporal que s'emmagatzemarà només per a la vostra sessió actual i es destruirà un cop finalitzi la vostra sessió actual o un àlies permanent que serà persistent.

La sintaxi per crear un àlies a Linux.

$ alias <name-of-the-command>="command to run"

Per exemple, en un escenari real.

$ alias Hello="echo welcome to Tecmint"

Obriu el terminal i creeu qualsevol ordre d'àlies que vulgueu. Si obriu una altra sessió, l'àlies creat recentment no estarà disponible.

$ alias Hello"echo welcome to Tecmint"
$ alias
$ Hello

Per fer que l'àlies sigui persistent, afegiu-lo al fitxer .bash_aliases. Podeu utilitzar el vostre editor de text preferit o utilitzar l'ordre echo per afegir un àlies.

$ echo alias nf="neofetch" >> ~/.bash_aliases
$ cat >> ~/.bash_aliases
$ cat ~/.bash_aliases

Heu de tornar a carregar el fitxer .bash_aliases perquè els canvis siguin efectius a la sessió actual.

$ source ~/.bash_aliases

Ara, si executo \nf, que és un àlies per a \neofetch, activarà el programa neofetch.

$ nf

Un àlies pot ser útil si voleu anul·lar el comportament predeterminat de qualsevol ordre. Per a la demostració, prendré una comanda de temps d'activitat, que mostrarà el temps de funcionament del sistema, el nombre d'usuaris connectats i la mitjana de càrrega del sistema. Ara crearé un àlies que anul·larà el comportament de l'ordre de temps d'activitat.

$ uptime
$ cat >> ~/.bash_aliases alias uptime="echo 'I am running uptime command now'"
$ source ~/.bash_aliases
$ uptime

A partir d'aquest exemple, podeu concloure que la prioritat recau en els àlies bash abans de comprovar i invocar l'ordre real.

$ cat ~/.bash_aliases
$ source ~/.bash_aliases
$ uptime

Eliminació d'un àlies a Linux

Ara elimineu l'entrada de temps d'activitat del fitxer .bash_aliases i torneu a carregar el fitxer .bash_aliases que encara imprimirà el temps de funcionament amb la definició d'àlies. Això es deu al fet que la definició d'àlies es carrega a la sessió de l'intèrpret d'ordres actual i hem d'iniciar una nova sessió o desactivar la definició d'àlies executant l'ordre unalias tal com es mostra a la imatge següent.

$ unalias uptime

Afegir àlies a tot el sistema

Fins a aquest punt, hem vist com configurar un àlies a nivell d'usuari. Per establir un àlies globalment, podeu modificar el fitxer \/etc/bash.bashrc i afegir àlies que seran efectius globalment. Necessiteu tenir el privilegi elevat per modificar el fitxer bash.bashrc.

Alternativament, creeu un script a \/etc/profile.d/. Quan inicieu sessió a un intèrpret d'ordres, \/etc/profile executarà qualsevol script a profile.d abans d'executar realment ~/.profile. Aquest mètode reduirà el risc de malmetre el fitxer /etc/profile o /etc/bash.bashrc.

$ sudo cat >> /etc/profile.d/alias.sh
alias ls=”ls -ltra”

A continuació es mostra el codi extret del /etc/profile que s'encarrega d'executar els scripts que posem a /etc/profiles.d/. Cercarà qualsevol fitxer amb l'extensió .sh i executarà l'ordre font.

$ tail /etc/profile

Això és tot per aquest article. Hem vist què és un àlies, els fitxers de configuració implicats amb l'àlies i diferents maneres de configurar l'àlies localment i globalment.