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'
$

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Retour en haut