Créer un alias Bash
Un alias est une commande dans les shells qui permet de remplacer un mot par une autre chaîne. Il est principalement utilisé pour raccourcir une commande système ou fournir des paramètres par défaut pour une commande fréquemment utilisée.
C’est similaire à une commande de raccourci, avec la même fonctionnalité que l’écriture de la commande entière.
Créer un alias dans Bash
Prenons un exemple.
$ alias update="sudo apt-get update"
Nous avons créé un alias update
, qui est un raccourci pour sudo apt-get update
. Maintenant, lorsque nous exécutons update
, cela fonctionne de la même manière que sudo apt-get update
.
$ update
Production :
[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
Pour lister tous les alias, exécutez la commande ci-dessous.
$ alias
Production :
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'
L’alias nouvellement créé update
est également dans la liste avec tous les autres alias.
Créer un alias Bash qui prend des paramètres
L’alias Bash n’accepte pas directement les paramètres. Nous devons écrire une fonction car le mécanisme de la fonction est plus adaptable et fournit les mêmes fonctionnalités qu’auparavant.
Bien qu’un alias ne prenne pas de paramètres, une fonction peut être invoquée de la même manière qu’un alias. Prenons un exemple.
$ alias wargs='f(){ echo first "$@" last; unset -f f; }; f'
$ wargs a b c
Dans l’exemple ci-dessus, une fonction temporaire f
est créée. Les arguments sont envoyés lorsque f
est appelé à la fin.
L’option -f
non définie élimine la définition de la fonction pendant l’exécution de l’alias, garantissant qu’elle ne persiste pas par la suite.
Production :
first a b c last
Supprimer l’alias dans Bash
Nous pouvons supprimer l’alias update
créé précédemment en utilisant la commande unalias
.
$ unalias update
Vérifions à nouveau la liste de tous les alias.
$ alias
Production :
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'
Comme indiqué dans la sortie, l’alias update
est supprimé de la liste des alias.