XIII. Alias▲
Tuto réalisé par Eric Sanchis – maître de conférence à l’Université Toulouse 1 Sciences Sociales.
Un alias permet d’abréger une longue commande, de remplacer le nom d’une commande existante par un autre nom ou bien de modifier le comportement d’une commande existante.
XIII-1. Création d’un alias▲
Pour créer un ou plusieurs alias, on utilise la syntaxe :
Sélectionnez
alias nom=valeur ...
Sélectionnez
Ex : $ alias cx='chmod u+x'
$
Le nom de l’alias peut être présent dans sa propre définition. La commande alias rm=’rm -i’ redéfinit le comportement par défaut de la commande unix rm en demandant à l’utilisateur de confirmer la suppression (on force l’utilisateur à utiliser l’option -i).
Sélectionnez
Ex : $ alias rm='rm -i'
$
$ > err => création du fichier err
$
$ rm err
rm: détruire fichier régulier vide `err'? o => l'alias rm demande
$ => confirmation
$ ls err
ls: err: Aucun fichier ou répertoire de ce type => le fichier err a été
$ => supprimé
Attention :
on ne doit pas définir un alias et utiliser cet alias dans la même ligne mais sur deux lignes différentes.
Sélectionnez
Ex : $ alias aff='echo bonjour' ; aff tout le monde
-bash: aff: command not found => aff tout le monde n'a pu s'exécuter !
$
$ aff la compagnie
bonjour la compagnie => l'alias est connu
$
Si l’on désire utiliser plusieurs alias dans la même commande, il est nécessaire de laisser un caractère espace ou tabulation comme dernier caractère de valeur.
Sélectionnez
Ex : $ cat /etc/debian_version
4.0
$
$ alias c=cat d=/etc/debian_version
$
$ c d
cat: d: Aucun fichier ou répertoire de ce type
$
Dans l’exemple ci-dessus, l’alias d n’a pas été interprété car le dernier caractère de la valeur de c n’est ni un espace, ni une tabulation. En ajoutant un caractère espace, on obtient le résultat voulu.
Sélectionnez
Ex : $ alias c='cat '
$
$ c d
4.0
$
La valeur d’un alias peut inclure plusieurs commandes.
Sélectionnez
Ex : $ pwd
/tmp => répertoire courant
$ alias scd='echo salut ; cd ' => après cd il y a un caractère espace
$ alias rep=/home/sanchis/bin
$
$ scd rep
salut
$ pwd
/home/sanchis/bin => nouveau répertoire courant
$
La protection de la valeur d’un alias doit être choisie judicieusement. Définissons un alias affichant l’heure courante. La suite de commandes à exécuter est la suivante :
Sélectionnez
set $(date) ; echo ${5%:*}
Cette suite de commandes peut être entourée avec des caractères quote ou bien avec des caractères guillemet.
Sélectionnez
Ex : $ date
vendredi 22 décembre 2006, 18:45:38 (UTC+0100)
$
$ alias h='set $(date) ; echo ${5%:*}'
$
$ h
18:46
$
$ sleep 60
... => attente de 60 secondes
$ h
18:47 => mise à jour de l'heure
$
Attention :
en entourant la suite de commandes avec des caractères guillemet, le shell exécute les substitutions avant d’affecter la valeur à l’alias, puis interprète cet alias.
Sélectionnez
Ex : $ alias g="set $(date) ; echo ${5%:*}"
$
$ g
-bash: syntax error near unexpected token `('
$
C’est la présence de la parenthèse ouvrante de la chaîne de caractères
set vendredi 22 décembre 2006, 19:08:21 (UTC+0100)
Cette chaîne est exécutée comme une commande par le shell, ce qui provoque l’erreur.
Liste des alias définis :
Pour connaître l’ensemble des alias définis, on utilise la commande alias sans argument :
Sélectionnez
Ex : $ alias
alias aff='echo bonjour'
alias c='cat '
alias cx='chmod u+x'
alias d='/etc/debian_version'
alias g='set vendredi 22 décembre 2006, 19:08:21 (UTC+0100) ; echo '
alias h='set $(date) ; echo ${5%:*}'
alias ll='ls -l'
alias ls='ls --color=auto'
alias rep='/home/sanchis/bin'
alias rm='rm -i'
alias scd='echo salut ; cd '
$
Pour connaître la valeur d’un ou plusieurs alias : alias nom
Sélectionnez
Ex : $ alias ll
alias ll='ls -l'
$
XIII-2. Suppression d’un alias▲
Pour rendre indéfinie la valeur d’un ou plusieurs alias, on utilise la commande unalias.
La syntaxe est :
Sélectionnez
unalias nom ...
Sélectionnez
Ex : $ unalias g rep aff scd
$
$ aliasXIII. Alias
▲
Un alias permet d'abréger une longue commande, de remplacer le nom d'une commande existante par un autre nom ou bien de modifier le comportement d'une commande existante.
XIII-1. Création d'un alias
▲
Pour créer un ou plusieurs alias, on utilise la syntaxe :
Sélectionnez
alias nom=valeur ...
Sélectionnez
Ex : $ alias cx='chmod u+x'
$
Le nom de l'alias peut être présent dans sa propre définition. La commande alias rm='rm -i' redéfinit le comportement par défaut de la commande unix rm en demandant à l'utilisateur de confirmer la suppression (on force l'utilisateur à utiliser l'option -i).
Sélectionnez
Ex : $ alias rm='rm -i'
$
$ > err => création du fichier err
$
$ rm err
rm: détruire fichier régulier vide `err'? o => l'alias rm demande
$ => confirmation
$ ls err
ls: err: Aucun fichier ou répertoire de ce type => le fichier err a été
$ => supprimé
Attention :
on ne doit pas définir un alias et utiliser cet alias dans la même ligne mais sur deux lignes différentes.
Sélectionnez
Ex : $ alias aff='echo bonjour' ; aff tout le monde
-bash: aff: command not found => aff tout le monde n'a pu s'exécuter !
$
$ aff la compagnie
bonjour la compagnie => l'alias est connu
$
Si l'on désire utiliser plusieurs alias dans la même commande, il est nécessaire de laisser un caractère espace ou tabulation comme dernier caractère de valeur.
Sélectionnez
Ex : $ cat /etc/debian_version
4.0
$
$ alias c=cat d=/etc/debian_version
$
$ c d
cat: d: Aucun fichier ou répertoire de ce type
$
Dans l'exemple ci-dessus, l'alias d n'a pas été interprété car le dernier caractère de la valeur de c n'est ni un espace, ni une tabulation. En ajoutant un caractère espace, on obtient le résultat voulu.
Sélectionnez
Ex : $ alias c='cat '
$
$ c d
4.0
$
La valeur d'un alias peut inclure plusieurs commandes.
Sélectionnez
Ex : $ pwd
/tmp => répertoire courant
$ alias scd='echo salut ; cd ' => après cd il y a un caractère espace
$ alias rep=/home/sanchis/bin
$
$ scd rep
salut
$ pwd
/home/sanchis/bin => nouveau répertoire courant
$
La protection de la valeur d'un alias doit être choisie judicieusement. Définissons un alias affichant l'heure courante. La suite de commandes à exécuter est la suivante :
Sélectionnez
set $(date) ; echo ${5%:*}
Cette suite de commandes peut être entourée avec des caractères quote ou bien avec des caractères guillemet.
Sélectionnez
Ex : $ date
vendredi 22 décembre 2006, 18:45:38 (UTC+0100)
$
$ alias h='set $(date) ; echo ${5%:*}'
$
$ h
18:46
$
$ sleep 60
... => attente de 60 secondes
$ h
18:47 => mise à jour de l'heure
$
Attention :
en entourant la suite de commandes avec des caractères guillemet, le shell exécute les substitutions avant d'affecter la valeur à l'alias, puis interprète cet alias.
Sélectionnez
Ex : $ alias g="set $(date) ; echo ${5%:*}"
$
$ g
-bash: syntax error near unexpected token `('
$
C'est la présence de la parenthèse ouvrante de la chaîne de caractères
set vendredi 22 décembre 2006, 19:08:21 (UTC+0100)
Cette chaîne est exécutée comme une commande par le shell, ce qui provoque l'erreur.
Liste des alias définis :
Pour connaître l'ensemble des alias définis, on utilise la commande alias sans argument :
Sélectionnez
Ex : $ alias
alias aff='echo bonjour'
alias c='cat '
alias cx='chmod u+x'
alias d='/etc/debian_version'
alias g='set vendredi 22 décembre 2006, 19:08:21 (UTC+0100) ; echo '
alias h='set $(date) ; echo ${5%:*}'
alias ll='ls -l'
alias ls='ls --color=auto'
alias rep='/home/sanchis/bin'
alias rm='rm -i'
alias scd='echo salut ; cd '
$
Pour connaître la valeur d'un ou plusieurs alias : alias nom
Sélectionnez
Ex : $ alias ll
alias ll='ls -l'
$
XIII-2. Suppression d'un alias
▲
Pour rendre indéfinie la valeur d'un ou plusieurs alias, on utilise la commande unalias.
La syntaxe est :
Sélectionnez
unalias nom ...
Sélectionnez
Ex : $ unalias g rep aff scd
$
$ alias
alias c='cat '
alias cx='chmod u+x'
alias d='/etc/debian_version'
alias h='set $(date) ; echo ${5%:*}'
alias ll='ls -l'
alias ls='ls --color=auto'
alias rm='rm -i'
$
alias c='cat '
alias cx='chmod u+x'
alias d='/etc/debian_version'
alias h='set $(date) ; echo ${5%:*}'
alias ll='ls -l'
alias ls='ls --color=auto'
alias rm='rm -i'
$