{{tag>console terminal}} ---- ====== Créer un alias ====== Les //[[wpfr>alias]]// sont des substitutions abrégées de [[:commande_shell|commandes]] répétitives et/ou longues à taper dans la [[:console]]. Il est possible de définir vos alias dans deux [[:fichier_caché|fichiers cachés]] qui se trouvent dans votre //Dossier Personnel//: * dans le fichier **.bashrc** juste après la ligne "//some more ls aliases//" * dans un fichier **.bash_aliases**. Si ce dernier n'existe pas, [[:tutoriel:comment_modifier_un_fichier|créez-le]]. Il est également possible de créer un alias provisoire tel qu'expliqué [[#ajouter un alias provisoirement|ici]] Pour éviter de modifier trop souvent le fichier sensible qu'est **.bashrc**, il est conseillé d'utiliser le fichier **.bash_aliases**. Pour que celui-ci soit pris en compte, [[:tutoriel:comment_modifier_un_fichier|modifiez le fichier]] **~/.bashrc** **après** l'avoir [[:tutoriel:comment_sauver_et_restaurer_un_fichier|sauvegardé]] pour décommenter((enlever les dièses (#) en début de ligne)) les lignes suivantes: if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi Depuis Ubuntu 10.04 [[:Lucid]], les lignes mentionnées sont déjà décommentés. Il vous suffira juste de [[:tutoriel:comment_modifier_un_fichier|créer le fichier]] **.bash_aliases** dans votre //Dossier Personnel//. ===== Forme d'un alias ===== Qu'il soit dans le fichier **~/.bashrc** ou **~/.bash_aliases**, un alias aura toujours la forme suivante alias nom_de_votre_alias='commande de votre alias' 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" Attention dans ce cas, si votre commande elle-même contient des guillemets, il est possible que ces derniers ne soient alors pas interprétés comme il faut. ===== Utilisation ===== Pour que vos alias soient pris en compte après ajout dans les fichiers **.bashrc** ou **.bash_aliases**, il vous faudra relancer votre [[:terminal]] ou saisir la commande source ~/.bashrc Attention cependant à ce que "source" n'appelle pas une fonction telle que décrit dans [[#les fonctions|cette partie]]. Vous trouverez de nombreux alias en parcourant le net, 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** alias agu='sudo apt-get update' il vous suffira alors de taper dans un [[:terminal]] agupour mettre à jour la liste de vos [[:dépôts]] de [[:paquet|paquets]] avec l'outil [[:apt-get]]. Vous pouvez également cumuler deux alias et en utiliser un troisième. Par exemple, toujours avec l'outil [[:apt-get]] alias agu='sudo apt-get update' alias agg='sudo apt-get upgrade' alias agd='sudo apt-get dist-upgrade' alias miseàjour='agu && agg && agd' Vous saisirez alors miseàjour ce qui [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|rechargera la liste des paquets]] avant d'en faire la [[:apt-get#mise_a_jour_de_paquets|mise à jour]]. Il est à noter que l'[[wpfr>complètement|autocomplétion]] fonctionne également avec les alias. ===== Aller plus loin ===== ==== Lister les alias ==== Il suffit de saisir la commande seule:alias ==== Appeler un script ==== Si vous avez un [[:script]] [[:bash]] mais que vous ne l' avez pas défini dans le [[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]], il est possible de l' appeler par alias. Par exemple alias monscript='sh -c /home/$USER/Documents/scripts/test/essai.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 d'un alias|forme]] que celle à écrire dans le fichier **.bashrc** ou **.bash_aliases**.\\ Par exemple, si vous voulez utiliser provisoirement un alias pour supprimer les copies de paquets installés avec l'outil [[:apt-get#suppression_de_paquets_d_installation|apt-get]], vous pouvez saisir: alias agc='sudo apt-get clean' Jusqu'à la fermeture du [[:terminal]], la commande agcexécutera en fait un ''sudo apt-get clean''. ==== Retirer un alias provisoirement ==== Pour retirer, et non [[#échapper un alias]], de la session du [[:terminal]] en cours, il s'agira de saisir unalias mon_alias Pour reprendre l'[[#Ajouter un alias provisoirement|exemple précédent]] saisissez unalias agc ==== Échapper un alias ==== Lorsque l'on a créé une longue [[#lister les alias|liste]] d'alias, il peut être utile de lancer une commande sans que celui-ci n'intervienne.\\ Exemple, vous avez créé cet alias : alias ping='ping -c 4' Et vous souhaitez lancer la commande ping sans les options définies dans l'alias, pour cela il suffit de mettre le caractère d'échappement //antislash// (**\**) devant la commande à lancer, comme ceci : \ping ==== Les fonctions ==== Les alias ne pouvant pas prendre d'argument, il est nécessaire de définir une fonction qui vous le permettra. Il sera alors possible d'indiquer des arguments qui seront passés en fin de la commande mémorisée dans le fichier.\\ 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 Cependant, __il n'est pas recommandé d'ajouter des fonctions dans le fichier **.bashrc**__, d'une part parce qu'il sera plus lourd à charger, et d'autre part, parce que plus il y aura de modification, 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, et de faire pointer la variable d'environnement $FPATH sur l'emplacement de votre librairie.FIXME Comment? \\ FIXME même problème de temps de chargement ou pas avec bash_aliases ? ===== Voir aussi ===== * [[http://forum.ubuntu-fr.org/viewtopic.php?id=20437|Sujet du forum]] qui traite du sujet. * [[http://www.it-connect.fr/creer-des-alias-de-commandes-sous-linux%ef%bb%bf/|Créer des Alias de commandes sous Linux]] sur IT-Connect ---- //Contributeurs : [[utilisateurs:odric88]] [[:utilisateurs:teke]] [[:utilisateurs:Psykocrash]] [[:utilisateurs: BeAvEr]] [[:utilisateurs: mydjey]]//