Alias bash
Les alias bash sont des substitutions de commandes. On les utilise en particulier pour simplifier l'usage de commandes répétitives et/ou longues à entrer dans la console.
Il est possible de définir des alias dans le fichier caché .bash_aliases, qui se trouve dans le répertoire personnel. Si ce dernier n'existe pas, on peut le créer :
touch ~/.bash_aliases
Il est également possible de créer un alias provisoire tel qu'expliqué ici.
.bash_aliases est pris en compte grâce au code suivant dans le fichier ~/.bashrc (celui-ci étant automatiquement interprété à chaque ouverture d'un onglet du terminal) :
if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
Forme d'un alias
Un alias est déclaré dans le fichier ~/.bash_aliases avec une ligne du type :
- ~/.bash_aliases
alias nom_de_votre_alias='commande de votre alias'
où nom_de_votre_alias est la commande raccourcie que vous passerez manuellement dans le terminal, et commande de votre alias est la ligne de commande, avec les éventuelles options et paramètres que le système devra comprendre (conserver les guillemets simples ').
= et la commande.
Ainsi lorsque vous saisirez nom_de_votre_alias dans un terminal, ce sera réellement la commande de votre alias qui sera exécutée.
Il est également possible d'utiliser des guillemets doubles " comme ceci :
alias nom_de_votre_alias="commande de votre alias"
Ceci peut être utile si votre commande contient des guillemets simples. Mais à l'inverse attention dans ce cas à ce que votre commande elle-même ne contienne pas des guillemets doubles, sans quoi il faudra les échapper (en les précédant de \).
" sont interprétées, ce qui n'est pas le cas avec des guillemets simples '.
Utilisation
.bash_aliases, on peut soit relancer le terminal, soit saisir la commande :
source ~/.bashrc
Vous trouverez de nombreux exemples d'alias en parcourant le Web (ainsi que sur la page Commandes pratiques), et mettrez en place ou adapterez ceux qui vous correspondent au mieux, mais pour l'exemple, si vous ajoutez ceci dans le fichier ~/.bash_aliases :
- ~/.bash_aliases
alias update='sudo apt update && sudo apt upgrade && sudo snap refresh && sudo flatpak update'
il vous suffira alors de taper dans un terminal :
update
pour mettre à jour votre système et les applications deb installées avec APT, puis les applications snap et les applications Flatpak.
sudo dans la déclaration de l'alias si vous êtes débutant ou pour vous astreindre à demander manuellement l'élévation des privilèges en gardant à l'esprit la portée des commandes.
Si besoin, la commande :
sudo !!
donne ponctuellement et rapidement les privilèges requis pour la commande précédemment entrée.
Voir aussi le chapitre alias avec sudo ci-dessous.
La déclaration d'alias ne fige pas nécessairement la commande prédéfinie : on peut passer une commande déclarée par un alias – comme mentionné précédemment – et ajouter à celui-ci des paramètre qui seront simplement ajouter à la suite de la commande originale pour son interprétation.
Par exemple avec :
alias sai='sudo apt install'
Saisir :
sai nom_programme
installera le programme souhaité.
Tab ↹ fonctionne également avec les alias.
Exemples
Chacun·e organise les alias à sa manière et il ne serait pas forcément utile de proposer des listes d'alias complètes en exemple, qui pourrait entrer en conflit les unes avec les autres, ou avec des commandes existantes.
C'est pourquoi pour des exemples de commandes à utiliser comme valeurs d'alias, mieux vaut consulter la page Commandes pratiques.
Aller plus loin
Lister les alias
Il suffit de saisir la commande alias seule :
alias
alias avec sudo
Par défaut les alias ne sont pas accessibles en utilisant sudo, un exemple courant est de lister un répertoire système :
sudo ll # va retourner sudo: ll : commande introuvable
Pour que ce soit possible, ajouter dans les alias :1)
- ~/.bash_aliases
sudo='sudo '
Appeler un script
Si vous avez un script bash mais qu'il ne se trouve pas dans un chemin correspondant au $PATH, il est possible de l'appeler via un alias. Par exemple
alias monscript='bash -c ~/Documents/scripts/test/monscript.sh'
Ajouter un alias provisoirement
Pour ajouter un alias uniquement pour la session du terminal en cours, il s'agira de saisir la commande alias sous la même forme que celle à écrire dans le fichier .bash_aliases.
Par exemple, si vous voulez utiliser provisoirement un alias pour supprimer les copies de paquets installés avec l'outil APT, vous pouvez saisir:
alias sac='sudo apt clean'
Jusqu'à la fermeture du terminal, la commande
sac
exécutera en fait un sudo apt clean.
Retirer un alias provisoirement
Pour retirer, et non échapper un alias, de la session du terminal en cours, saisir
unalias mon_alias
Pour reprendre l'exemple précédent saisir
unalias sac
En cas d'homonymie avec les commandes système
En cas d'homonymie entre un alias et une commande système, c'est l'alias qui est appelé.
Pour exécuter la commande système, et non l'alias, une protection peut être employée avec la commande env.
Avec :
alias commande_systeme='commande_systeme -option parametre'
on peut utiliser la commande :
env commande_systeme
Ainsi, commande_systeme sera employée sans option ni paramètre.
Échapper un alias
Il peut être utile de lancer une commande sans que l'alias ne soit pris en compte.
Exemple, vous avez créé cet alias :
alias ping='ping -c 4'
Et vous souhaitez lancer la commande ping sans les options définies par l'alias.
Pour cela il suffit de précéder la commande par le caractère d'échappement antislash \, comme ceci :
\ping
Les fonctions
Les alias ne peuvent pas prendre d'argument (en tout cas pas ailleurs qu'en dernière position).
Les fonctions bash le permettent. Grâce à une fonction il est possible d'indiquer des arguments qui seront passés en fin de la commande / appel de la fonction.
Par exemple
hy(){
history | grep -vE -e "[0-9]{1,4} hy |history" | grep -iE -e $1 | less
}
Cette fonction permet de chercher dans l'historique des commandes bash chaque exécution contenant le mot en argument, argument mémorisé dans les variables $1 à $9.
Exemple pour chercher toutes les connexions par SSH :
hy ssh
.bashrc, d'une part parce qu'il sera plus lourd à charger, et d'autre part, parce que plus il y aura de modifications, plus il y a aura de risque d'erreur et donc qu'il ne se charge plus.
Une solution permettant de joindre vos alias et vos fonctions est d'écrire une librairie de fontions, et de faire pointer la variable d'environnement $PATH sur l'emplacement de votre librairie.
Problème connu
Il se peut que vos alias ne supportent pas l'auto-complétion dans le cas de l'utilisation de la commande apt. Pour remédier à cela ajouter ce contenu au fichier .bashrc, en considérant que votre alias est aptin pour sudo apt install (adapter ensuite à vos besoin) :
_apt_install_complete() {
mapfile -t COMPREPLY < <(apt-cache --no-generate pkgnames "$2");
}
complete -F _apt_install_complete aptin
Voir aussi
- Sujet du forum qui traite du sujet.
- Créer des Alias de commandes sous Linux sur IT-Connect
Contributeurs : odric88, teke, Psykocrash, BeAvEr, mydjey, krodelabestiole.