Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
alias [Le 12/02/2026, 11:27] – +chapitre exemple (lien /commandes_pratiques) krodelabestiolealias [Le 24/10/2026, 23:20] (Version actuelle) – typo | bash_alias ou autre... krodelabestiole
Ligne 1: Ligne 1:
-{{tag>console terminal}}+{{tag>console terminal shell}}
  
 ====== Alias bash ====== ====== Alias bash ======
  
-Les **alias [[:bash]]** sont des substitutions de [[:commande_shell|commandes]]. On les utilise en particulier pour simplifier l'usage de commandes répétitives et/ou longues à taper dans la [[:console]].+Les **alias [[:bash]]** sont des substitutions de [[:commande_shell|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 [[:arborescence#répertoire personnel]]. Si ce dernier n'existe pas, on peut [[:tutoriel:comment_modifier_un_fichier|le créer]] : +Il est possible de définir des **alias** avec la commande ''[[man>alias]]''.
-  touch ~/.bash_aliases''+
  
-Il est également possible de créer un **alias provisoire** tel qu'expliqué [[#ajouter un alias provisoirement|ici]].+Sur Ubuntu chaque [[:utilisateur]] est censé déclarer ses **alias** dans le [[:fichier caché]] ''.bash_aliases'', qui se trouve dans le [[:arborescence#répertoire personnel]]. Si ce dernier n'existe pas, on peut [[:tutoriel:comment_modifier_un_fichier|le créer]]\_: 
 +  touch ~/.bash_aliases 
 + 
 +Un **alias** simplement déclaré en ligne de commande est provisoire\_: voir //[[#Ajouter un alias provisoirement]]//.
  
 <note> <note>
-Le fichier ''.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]]) : +Le fichier ''.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]]) : 
-<code>+<code bash>
 if [ -f ~/.bash_aliases ]; then if [ -f ~/.bash_aliases ]; then
  . ~/.bash_aliases  . ~/.bash_aliases
Ligne 21: Ligne 23:
 ===== Forme d'un alias ===== ===== Forme d'un alias =====
  
-Un **alias** est déclaré dans le fichier ''~/.bash_aliases'' avec une ligne du type : +Un **alias** est déclaré dans le fichier ''~/.bash_aliases'' avec une ligne du type\_: 
-<file - ~/.bash_aliases>+<code bash>
 alias nom_de_votre_alias='commande de votre alias' alias nom_de_votre_alias='commande de votre alias'
-</file> +</code> 
-où ''nom_de_votre_alias'' est la commande raccourcie que vous passerez manuellement dans le [[:terminal]], et ''commande de votre alias'' est la [[:commande_shell|ligne de commande]], avec les éventuelles options et paramètres que le système devra comprendre, en conservant les guillemets simples ''%%'%%''.+où ''nom_de_votre_alias'' est la commande raccourcie que vous passerez manuellement dans le [[:terminal]], et ''commande de votre alias'' est la [[:commande_shell|ligne de commande]], avec les éventuelles options et paramètres que le système devra comprendre (conserver les guillemets simples ''%%'%%'').
  
 <note important>Il ne doit pas y avoir d'espace entre le nom de l'alias, le signe ''='' et la commande.</note> <note important>Il ne doit pas y avoir d'espace entre le nom de l'alias, le signe ''='' et la commande.</note>
Ligne 31: Ligne 33:
 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. 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 : +Il est également possible d'utiliser des guillemets doubles ''"'' comme ceci\_: 
-<file>+<code bash>
 alias nom_de_votre_alias="commande de votre alias" alias nom_de_votre_alias="commande de votre alias"
-</file> +</code> 
-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 ''\'').+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 ''%%\%%'').
  
 <note> <note>
Ligne 45: Ligne 47:
 <note important> <note important>
 Pour que vos **alias** soient pris en compte après ajout dans le fichier ''.bash_aliases'', on peut soit relancer le [[:terminal]], soit saisir la commande : Pour que vos **alias** soient pris en compte après ajout dans le fichier ''.bash_aliases'', on peut soit relancer le [[:terminal]], soit saisir la commande :
-<code>source ~/.bashrc</code>+<code bash>source ~/.bashrc</code>
 </note> </note>
  
-Vous trouverez de nombreux **alias** en parcourant le [[:Web]], et mettrez en place ou adapterez ceux qui vous correspondent au mieux, mais pour l'[[#exemples|exemple]], si vous ajoutez ceci dans le fichier ''~/.bash_aliases'' : +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'' : 
-<file - ~/.bash_aliases>+<code bash>
 alias update='sudo apt update && sudo apt upgrade && sudo snap refresh && sudo flatpak update' alias update='sudo apt update && sudo apt upgrade && sudo snap refresh && sudo flatpak update'
-</file>+</code>
 il vous suffira alors de taper dans un [[:terminal]] : il vous suffira alors de taper dans un [[:terminal]] :
 <code>update</code> <code>update</code>
Ligne 60: Ligne 62:
  
 Si besoin, la commande : Si besoin, la commande :
-<code>sudo !!</code>+<code bash>sudo !!</code>
 donne ponctuellement et rapidement les privilèges requis pour la commande précédemment entrée. donne ponctuellement et rapidement les privilèges requis pour la commande précédemment entrée.
  
Ligne 68: Ligne 70:
 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.\\ 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 : Par exemple avec :
-<file>alias sai='sudo apt install'</file>+<code bash>alias sai='sudo apt install'</code>
 Saisir : Saisir :
-<code>sai nom_programme</code> +<code bash>sai nom_paquet</code> 
-installera le programme souhaité.+installera le [[:paquet]] souhaité.
  
 <note tip>Il est à noter que l'[[:console#auto-completion]] avec la touche ''Tab ↹'' fonctionne également avec les **alias**.</note> <note tip>Il est à noter que l'[[:console#auto-completion]] avec la touche ''Tab ↹'' fonctionne également avec les **alias**.</note>
Ligne 95: Ligne 97:
 </code> </code>
 Pour que ce soit possible, ajouter dans les **alias** :((source : [[https://askubuntu.com/a/22043/385361]])) Pour que ce soit possible, ajouter dans les **alias** :((source : [[https://askubuntu.com/a/22043/385361]]))
-<file - ~/.bash_aliases> +<code bash> 
-sudo='sudo ' +alias sudo='sudo ' 
-</file>+</code>
  
 ==== Appeler un script ==== ==== Appeler un script ====
  
 Si vous avez un [[:script]] [[:bash]] mais qu'il ne se trouve pas dans un [[:chemins|chemin]] correspondant au ''[[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]]'', il est possible de l'appeler via un **alias**. Par exemple Si vous avez un [[:script]] [[:bash]] mais qu'il ne se trouve pas dans un [[:chemins|chemin]] correspondant au ''[[:variables_d_environnement#variables_liees_aux_emplacements_de_fichiers|$PATH]]'', il est possible de l'appeler via un **alias**. Par exemple
-<file>alias monscript='bash -c ~/Documents/scripts/test/monscript.sh'</file>+<code bash>alias monscript='bash -c ~/Documents/scripts/test/monscript.sh'</code>
  
 ==== Ajouter un alias provisoirement ==== ==== Ajouter un alias provisoirement ====
Ligne 109: Ligne 111:
  
 Par exemple, si vous voulez utiliser provisoirement un **alias** pour supprimer les copies de [[:paquet|paquets]] installés avec l'outil [[:APT]], vous pouvez saisir: Par exemple, si vous voulez utiliser provisoirement un **alias** pour supprimer les copies de [[:paquet|paquets]] installés avec l'outil [[:APT]], vous pouvez saisir:
-<code>alias sac='sudo apt clean'</code>+<code bash>alias sac='sudo apt clean'</code>
 Jusqu'à la fermeture du [[:terminal]], la commande <code>sac</code>exécutera en fait un ''sudo [[:apt-cli|apt]] clean''. Jusqu'à la fermeture du [[:terminal]], la commande <code>sac</code>exécutera en fait un ''sudo [[:apt-cli|apt]] clean''.
  
Ligne 115: Ligne 117:
  
 Pour retirer, et non [[#échapper un alias]], de la session du [[:terminal]] en cours, saisir Pour retirer, et non [[#échapper un alias]], de la session du [[:terminal]] en cours, saisir
-<code>unalias mon_alias</code>+<code bash>unalias mon_alias</code>
 Pour reprendre l'[[#Ajouter un alias provisoirement|exemple précédent]] saisir Pour reprendre l'[[#Ajouter un alias provisoirement|exemple précédent]] saisir
-<code>unalias sac</code>+<code bash>unalias sac</code>
  
 ==== En cas d'homonymie avec les commandes système ==== ==== En cas d'homonymie avec les commandes système ====
Ligne 126: Ligne 128:
  
 Avec : Avec :
-<file>alias commande_systeme='commande_systeme -option parametre'</file>+<code bash>alias commande_systeme='commande_systeme -option parametre'</code>
 on peut utiliser la commande : on peut utiliser la commande :
-<code>env commande_systeme</code>+<code bash>env commande_systeme</code>
 Ainsi, ''commande_systeme'' sera employée sans option ni paramètre. Ainsi, ''commande_systeme'' sera employée sans option ni paramètre.
  
Ligne 135: Ligne 137:
 Il peut être utile de lancer une commande sans que l'alias ne soit pris en compte. Il peut être utile de lancer une commande sans que l'alias ne soit pris en compte.
  
-Exemple, vous avez créé cet **alias** : +Exemple, vous avez créé l'**alias** : 
-<code>+<code bash>
 alias ping='ping -c 4' alias ping='ping -c 4'
 </code> </code>
-Et vous souhaitez lancer la commande ''[[man>ping]]'' sans les options définies par l'**alias**.\\ +... mais vous souhaitez lancer la commande ''[[man>ping]]'' sans les options définies par cet **alias**.\\ 
-Pour cela il suffit de précéder la commande par le caractère d'échappement //antislash// ''\'', comme ceci : +Pour cela il suffit de précéder la commande par le caractère d'échappement //antislash// ''%%\%%'', comme ceci : 
-<code>+<code bash>
 \ping \ping
 </code> </code>
Ligne 151: Ligne 153:
 Les **[[https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html|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.\\ Les **[[https://www.gnu.org/software/bash/manual/html_node/Shell-Functions.html|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 Par exemple
-<file>+<code bash>
 hy(){ hy(){
    history | grep -vE -e "[0-9]{1,4}  hy |history" | grep -iE -e $1 | less    history | grep -vE -e "[0-9]{1,4}  hy |history" | grep -iE -e $1 | less
-}</file>+}</code>
 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''. 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]] : Exemple pour chercher toutes les connexions par [[:SSH]] :
-<code>hy ssh</code>+<code bash>hy ssh</code>
  
 <note important> <note important>
Ligne 168: Ligne 170:
 ===== Problème connu ===== ===== Problème connu =====
  
-Il se peut que vos **alias** ne supportent pas l'[[:console#auto-completion]] dans le cas de l'utilisation de la commande ''[[:apt-cli|apt]]''. Pour remédier à cela [[:tutoriel:comment_modifier_un_fichier|ajouter]] ce contenu au fichier ''.bashr'', en considérant que votre **alias** est ''aptin'' pour ''sudo apt install'' (adapter ensuite à vos besoin) : +Il se peut que vos **alias** ne supportent pas l'[[:console#auto-complétion]] dans le cas de l'utilisation de la commande ''[[:apt-cli|apt]]''. Pour remédier à cela [[:tutoriel:comment_modifier_un_fichier|ajouter]] ce contenu au fichier ''.bashrc'', en considérant que votre **alias** est ''aptin'' pour ''sudo apt install'' (adapter ensuite à vos besoin) : 
-<file>+<code bash>
 _apt_install_complete() { _apt_install_complete() {
     mapfile -t COMPREPLY < <(apt-cache --no-generate pkgnames "$2");     mapfile -t COMPREPLY < <(apt-cache --no-generate pkgnames "$2");
 } }
-complete -F _apt_install_complete aptin</file>+complete -F _apt_install_complete aptin 
 +</code>
  
-<note tip>Il existe également une application **[[https://github.com/cykerway/complete-alias|complete-alias]]** qui founit cette fonctionnalité.</note>+<note tip>Il existe également une application **[[https://github.com/cykerway/complete-alias|complete-alias]]** qui fournit cette fonctionnalité.</note>
  
 ===== Voir aussi ===== ===== Voir aussi =====