Webmail Espace privé About
Home   Debian Addict Testing
Optimisation du shell

Le bash et la complétion

Une complétion intelligente avec le bash
jeudi 12 février 2004.
 

Les paquets bash fournis avec la Debian possèdent déjà plein de raccourcis pour la complétion sous bash. Ceci est à vérifier pour les autres distributions, mais cette fonctionnalité semble disponible sur la plupart des distributions.

Néanmoins la complétion automatique dans le bash n’est pas assez satisfaisante à vos yeux (enfin surtout à vos doigts !!) ?? Savez-vous que vous pouvez améliorer son comportement ??

Cet article explique comment avoir une complétion automatique plus fine et plus complète avec le bash.

Prérequis

La complétion kezako ??

La complétion est un terme anglais francisé par le monde informatique (à son habitude) qui désigne la capacité d’un outil à compléter la commande que saisi l’utilisateur. Par exemple si vous tapez $cd /ho puis vous tapez la touche tabulation (qui sera désignée par [TAB] dans la suite de l’article) alors le bash va vous proposer la liste des répertoires et fichiers à la racine du système qui commençant par "ho". C’est à dire entre autre le répertoire /home.

Paquet nécessaire

Et bien il vous falloir le bash en version 2.05a minimum !! ;-)

Installation

Installation du paquet

Si le paquet bash-completion (pour une complétion intelligente) n’est pas disponible sur votre distribution, vous pouver le récupérer (version =< 2.05a) sur le site de bash completion.

S’il faut installer le paquet sous votre Debian, il faut procéder comme à l’habitude :

#apt-get install bash-builtins

Configuration

Pour activer ces fonctionalités, il faut ajouter les lignes suivantes dans votre fichier ~/.bashrc ou bien dans le fichier /etc/bash.bashrc (dans la documentation ils parlent du fichier /etc/bashrc) si vous voulez que tous les utilisateurs profitent de ces options :

bash=$BASH_VERSION%.* ; bmajor=$bash%.* ; bminor=$bash#*.
if [ "$PS1" ] && [ $bmajor -eq 2 ] && [ $bminor ’>’ 04 ] \
&& [ -f /etc/bash_completion ] ; then # interactive shell
# Source completion code
. /etc/bash_completion
fi
unset bash bmajor bminor

 [1]

Une fois le bash configuré, il faut charger le nouveau paramétrage avec la ligne de commande suivante :
$. .bashrc

Utilisation

Complétion sur des fichiers et des machines

Une fois installé, normalement, lorsque vous tapez $cd [TAB], il vous propose plus que des répertoires. Lorsque vous lancez $ssh [TAB], la complétion vous propose une machine qui se trouve dans votre fichier ~/.ssh/known_hosts. Vous pouvez de même essayer tapez $dpkg -X kde[TAB], $ggv [TAB], $unzip [TAB], ...

Complétion sur des options et des arguments

Vous avez dit impressionnant ?!? Vous n’avez rien vu, car le plus interressant est la complétion de make et de configure. Quelque soit les sources à compiler, la complétion lis les fichiers de configuration et propose les options disponibles !!

Par exemple vous voulez recompiler des sources que vous venez de décompresser. Avant la compilation vous voulez changer les options de configuration, tapez la commande suivante :

$./configure --with[TAB]

Le bash vous répondra quelquechose qui ressemblera à ceci :

--with-afs --with-gnu-malloc
--with-bash-malloc --with-installed-readline
--with-curses --with-purecov
--with-glibc-malloc --with-purify

Liste des programmes supportés par la complétion

Pour obtenir la liste des commandes disposant maintenant de la completion, vous pouvez utiliser la commande suivante :

$complete | less

Les commandes concernées par la completion sont en fin de chaque ligne, vous pouvez en regardant le début des lignes savoir si la completion concerne les noms de fichiers ou les options.

A faire

Vous pouvez ensuite modifier le /etc/bash_completion pour définir d’autres complétions, ajouter les complétions les plus complexes dans /etc/bash_completion.d ou même vous créer un ~/.bash_completion. Je vais essayez expliquer comment paramétrer ces fichiers un peu plus tard...

A lire

Pour ceux qui souhaiteraient avoir plus d’information, ils peuvent lire :
- La documentation sur le site officiel
- Ce tutoriel
- L’article intitulé Booster la complétion

[1] Souvent ces lignes sont déjà présentes dans le ficher .bashrc. Dans ce cas il suffit de décommenter les trois lignes correspondantes qui se trouvent tout à la fin du fichier.


Signatures: 0
Date Nom Message

Forum

Vous pouvez participer à la vie de ce site et proposer vos propres articles en vous inscrivant ci-dessous. Vous recevrez immédiatement un email vous indiquant vos codes d'accès à l'espace privé du site.

Identifiants personnels

Indiquez ici votre nom et votre adresse email. Votre identifiant personnel vous parviendra rapidement, par courrier électronique.

Des mêmes auteurs


Parse error: syntax error, unexpected $end, expecting ')' in /home/gwhere/www/debianaddict/stats/var/last.php on line 803