logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

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édentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:bash:autocompletion [10/11/2015 13:05]
paskal [Installation]
doc:programmation:bash:autocompletion [07/09/2017 16:10] (Version actuelle)
smolski [Préalable]
Ligne 15: Ligne 15:
 ===== Préalable ===== ===== Préalable =====
  
-L'​**auto-completion** ((en français : //​auto-complètement ou auto-complémentation//​)) est l'outil de sécurité indispensable pour rédiger des lignes de commande dans un terminal ou en console ​!+L'​**auto-completion** ((en français : //​auto-complètement ou auto-complémentation ​ou encore complétion automatique//)) est un outil pour gagner en rapidité lorsque vous tapez des commandes dans un terminal ou une console. Il sera également un outil de sécurité indispensable pour rédiger des lignes de commande ​__sans se tromper__ ;-) ! 
 + 
 +==== Exemple de recherche par l'​auto-complètement ==== 
 + 
 +Par exemple, ​dans un terminal, comment accéder à son répertoire personnel. Le répertoire personnel d'un utilisateur est habituellement dans le répertoire ''/​home''​ monté dans le système. 
 + 
 +Ouvrir le terminal, 
 +puis taper une commande, mettons ''​ls -l''​ voir [[:​doc:​systeme:​ls|Commande Linux : ls]] et débuter la complétion avec /ho ainsi : 
 +<code user>ls -l /​ho</​code>​ 
 + 
 +taper sur la touche <​key>​Tab</​key>​ du clavier et le complètement vers le répertoire ''/​home/''​ se réalise. Nous obtenons la ligne : 
 +<code user>ls -l /​home/</​code>​ 
 +Maintenant, imaginons que nous ne nous souvenons plus vraiment de notre pseudo ''​user''​ sur ce pc... 
 + 
 +Il suffit maintenant de taper **DEUX FOIS** sur la touche <​key>​Tab</​key>​ du clavier, et une liste des possibilités pour continuer nous est offerte avec tous les choix possibles, il suffit alors d'​ajouter une ou quelques lettres pour indiquer ce que l'on cherche, taper sur la tabulation et le complètement se fera. 
 + 
 +Si la tabulation n'​indique plus rien sans nous faire parvenir à ce que l'on souhaite, c'est qu'on a ajouté ou omis un caractère, l'​autocompletion comme tout ce qui est informatique n'est qu'un //​calculateur//,​ pas un //​divinateur//,​ qu'on se le dise ! 
 + 
 +L'​essayer,​ c'est l'​adopter ​! 
  
 ===== Installation ===== ===== Installation =====
 +Sous Debian Jessie, il y a une prise en charge d'​origine grâce au paquet **util-linux** qui est installé d'​office. Cette prise en charge première peut être améliorée en installant un autre paquet : **bash-completion**.
  
 Installation du paquet bash-completion:​ Installation du paquet bash-completion:​
 <code root>​apt-get update && apt-get install bash-completion</​code>​ <code root>​apt-get update && apt-get install bash-completion</​code>​
  
-Ouvrir un éditeur de texte, par exemple [[doc:​editeurs:​nano|nano]]:​ 
-<code root>​nano /​etc/​bash.bashrc</​code>​ 
  
-Rechercher la ligne **# enable ​bash completion in interactive shell** et supprimer les dièses (#) sur la portion ​de code après cette ligne jusqu'​au dernier fi.+===== Utilisation ===== 
 +Il se peut qu'il vous faille configurer le fichier /etc/bash.bashrc . Dans ce cas, ouvrir un éditeur ​de texte, par exemple [[doc:​editeurs:​nano|nano]]:​ 
 +<code root>​nano /etc/bash.bashrc</​code>​
  
-ce qui doit donné ​au final :+Rechercher la ligne **# enable bash completion in interactive shell** et supprimer les dièses (#) sur la portion de code après cette ligne jusqu'​au dernier ''​fi''​. Ce qui doit donner ​au final :
  
-<code># enable bash completion in interactive shells+<file config Extrait de bash.bashrc> 
 +# enable bash completion in interactive shells
 if ! shopt -oq posix; then if ! shopt -oq posix; then
   if [ -f /​usr/​share/​bash-completion/​bash_completion ]; then   if [ -f /​usr/​share/​bash-completion/​bash_completion ]; then
Ligne 36: Ligne 57:
     . /​etc/​bash_completion     . /​etc/​bash_completion
   fi   fi
-fi</code>+fi 
 +</file>
  
 <​key>​C-o</​key>​ puis <​key>​Entrée</​key>​ puis <​key>​C-x</​key>​ <​key>​C-o</​key>​ puis <​key>​Entrée</​key>​ puis <​key>​C-x</​key>​
  
-<note important>​Dans certains cas, la manipulation ci-dessus peut s'​avérer inutile, lorsque l'autocomplétion ​est activée au niveau des sessions utilisateurs :+<note important>​Dans certains cas, la manipulation ci-dessus peut s'​avérer inutile, lorsque l'auto-complétion ​est activée au niveau des sessions utilisateurs :
 <code bash ~/​.bashrc>#​ enable programmable completion features (you don't need to enable <code bash ~/​.bashrc>#​ enable programmable completion features (you don't need to enable
 # this, if it's already enabled in /​etc/​bash.bashrc and /​etc/​profile # this, if it's already enabled in /​etc/​bash.bashrc and /​etc/​profile
Ligne 65: Ligne 87:
  
 Pour ce faire, après ls -l je peux écrire ''​mar''​ : Pour ce faire, après ls -l je peux écrire ''​mar''​ :
-   ls -l mar  ​+<code user>ls -l mar</​code> ​ 
  
-et en tapant sur la touche ​de tabulation, cela complétera automatiquement la ligne avec martin. Ce qui nous donne : +et en tapant sur la touche ​<​key>​Tab</​key>​, cela complétera automatiquement la ligne avec martin. Ce qui nous donne : 
-   ​ls -l martin/+<code user>ls -l martin/</​code>​
  
 puis ajouter ''​doc''​ : puis ajouter ''​doc''​ :
-   ls -l martin/do+<code user>ls -l martin/do</​code>​
        
-+Tab pour compléter par documents/ : ++<key>Tab</​key> ​pour compléter par documents/ : 
-   ​ls -l martin/​documents/​+<code user>ls -l martin/​documents/​</​code>​
        
 //Et ainsi de suite...// //Et ainsi de suite...//
Ligne 82: Ligne 104:
 <note tip>​c'​est qu'il y a **OBLIGATOIREMENT** une erreur //dans la rédaction//​ de la commande !</​note>​ <note tip>​c'​est qu'il y a **OBLIGATOIREMENT** une erreur //dans la rédaction//​ de la commande !</​note>​
  
-=== noter : ===+=== À noter : ===
  
 ATTENTION ! L'​auto-complètement ne fonctionne pas **après** un caractère générique,​ une * (étoile) par exemple, voir : [[:​doc:​programmation:​shell:​les-metacaracteres | Les METACARACTERES]]. ATTENTION ! L'​auto-complètement ne fonctionne pas **après** un caractère générique,​ une * (étoile) par exemple, voir : [[:​doc:​programmation:​shell:​les-metacaracteres | Les METACARACTERES]].
Ligne 88: Ligne 110:
 //Et un gros merci à TrueDD sur le chan pour cette précision !// //Et un gros merci à TrueDD sur le chan pour cette précision !//
  
-==== Exemple de Recherche par l'​auto-complètement ==== +<note>Note trebmuh 11 novembre 2015Iciça marche (tm)Debian Jessie.</note>
- +
-Accéder à son répertoire personnel +
- +
-Le répertoire personnel d'un user est habituellement dans le répertoire ''/​home''​ monté dans le système. +
- +
-Ouvrir le terminal, +
-taper une commande, mettons ''​ls -l''​ voir [[:​doc:​systeme:​ls|Commande Linux : ls]] et débuter la completion avec /ho ainsi : +
-<code user>ls -l /​ho</​code>​ +
- +
-taper sur la touche <​key>​Tab</​key>​ du clavier et le complètement vers le répertoire ''/​home/''​ se réaliseNous obtenons la ligne : +
-<code user>ls -l /​home/</​code>​ +
-Maintenantimaginons que nous ne nous souvenons plus vraiment de notre pseudo ''​user''​ sur ce pc..+
- +
-Il suffit maintenant de taper **DEUX FOIS** sur la touche <​key>​Tab</keydu clavier, et une liste des possibilités pour continuer nous est offerte avec tous les choix possibles. +
- +
-L'​essayer,​ c'est l'​adopter !+
  
 Tuto initié par **kate74** que nous remercions vivement de son activité sur le forum ! :-) Tuto initié par **kate74** que nous remercions vivement de son activité sur le forum ! :-)
doc/programmation/bash/autocompletion.1447157154.txt.gz · Dernière modification: 10/11/2015 13:05 par paskal

Pied de page des forums

Propulsé par FluxBB