Alias

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Il y a des commandes que l'on emploie très souvent.
Quand ces commandes sont courtes, ça ne pose pas de problèmes mais il arrive qu'elles aient une certaine longueur et là, en dehors du côté fastidieux, il y a toujours un risque d'erreurs, dus à des fautes de frappe.
Pour pallier ces deux problèmes, nous avons à notre disposition un outil très pratique, simple de mise en œuvre et facile à utiliser : l'alias.

Un alias s'écrit de cette forme :

alias <nom>='<cmd>'
  • <nom> est le nom que vous voulez utiliser pour votre alias. Celui-ci est souhaité court et explicite.
  • <cmd> la commande que vous souhaitez voir exécutée lors lors de l'appel à cet alias (ne pas oublier le (') en début et en fin de commande).

Dans la pratique si un alias est défini ainsi :

alias d='ls'

on l'utilise ainsi

$ d

et la « commande » d auras le même comportement que ls.

Pour que les alias soient toujours accessibles, il suffit de les écrire à la fin du fichier ~/.bashrc (si vous utilisez bash).

Les quelques exemples ci-dessous seront encore plus explicites que tout un discours :

Alias généraux

Ces alias permettent de simplifier l'utilisation de ls pour aller plus vite sur cette commande très utilisées :

alias ll='ls -l --color=auto'
alias la='ls -a --color=auto'
alias l='ls -la --color=auto'
alias ..='cd ..'

Les alias précédents sont souvent présents d'origine dans le fichier ~/.bashrc mais il y sont commentés. Pour les rendre opérationnels, il suffit d'enlever le '#' en tête de ligne.

Alias très spécifiques

Ces alias permettent de donner une idée de ce que l'on peut faire avec un alias :

alias photo='sudo mount -t ext2 /dev/sdb5 /mnt/photo'
alias video='sudo mount -o umask=000 /dev/sdb6 /mnt/video' (umask=000 car Fat32 devant avoir les droits d'écriture)
alias demonte='sudo umount /mnt/autre;sudo umount /mnt/photo;sudo umount /mnt/video;sudo umount /mnt/travail;sudo umount /mnt/ntfs;sudo umount /mnt/clone'

Les commandes ci-dessus qui concernent les 'montages' et 'démontages' de partitions, que je ne veux pas porter dans le 'fstab'.

Vous comprendrez aisément qu'au lieu de taper

$ sudo mount -t ext2 /dev/sdb5 /mnt/photo

dans une console, il est beaucoup plus court de n'entrer que

$ photo

Pour le démontage, le même alias (demonte) opère pour tout ce qui est monté. Chaque commande doit alors être séparée de la suivante par un ';' sans oublier, là aussi, les (') au début et à la fin.

Particularités

zsh

Le shell zsh est capable de supporter un type particulier d'alias. En effet il est possible de définir des alias sur les suffixes. Ces alias se définissent ainsi :

alias -s pdf='xpdf'
alias -s html='x-www-browser'

puis ils s'utillisent ainsi

$ ./fichier.pdf

le fichier « fichier.pdf » seras ouvert avec xpdf. Cette utilisation des alias peut s'avérer très pratique.

tcsh

Tcsh possède un comportement particulier avec les alias qui lui permettent de définir des alias complexes. En effet il est possible grâce à la substitution des historiques de réorganiser les arguments de l'alias comme on le souhaite. Il est en outre possible de faire certains traitements sur ces arguments.

Un exemple pour les programmeurs :

alias compile gcc \!$ -o \!$:r

S'utilisera ainsi

$ compile programme.c

et produiras un fichier exécutable programme.

Avec les autres shell (comme bash ou zsh), il est recommandé d'utiliser les fonction shell pour ce genre d'usage.


--Ricardo 30 janvier 2010 à 16:24 (UTC)