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 [20/08/2015 17:26]
milou [Détail]
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]]:​+ 
 +===== 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>​ <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.+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 :
  
-ce qui doit donné au final :+<file config Extrait de bash.bashrc>​ 
 +# enable bash completion in interactive shells 
 +if ! shopt -oq posix; then 
 +  if [ -f /​usr/​share/​bash-completion/​bash_completion ]; then 
 +    . /​usr/​share/​bash-completion/​bash_completion 
 +  elif [ -f /​etc/​bash_completion ]; then 
 +    . /​etc/​bash_completion 
 +  fi 
 +fi 
 +</​file>​ 
 + 
 +<​key>​C-o</​key>​ puis <​key>​Entrée</​key>​ puis <​key>​C-x</​key>​
  
-<​code>#​ enable ​bash completion in interactive shells+<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 
 +# this, if it's already enabled ​in /​etc/​bash.bashrc and /​etc/​profile 
 +# sources /​etc/​bash.bashrc).
 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 37: Ligne 73:
   fi   fi
 fi</​code>​ fi</​code>​
- +</​note>​
-Ctrl+x puis o puis ENTER+
  
 ===== Détail ===== ===== Détail =====
Ligne 52: 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 69: 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 75: 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 2015. Ici, ç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 [tab] du clavier et le complètement vers le répertoire ''/​home/''​ se réaliseNous 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 [tab] du clavier, et une liste des possibilités pour continuer nous est offertes 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.1440084363.txt.gz · Dernière modification: 20/08/2015 17:26 par milou

Pied de page des forums

Propulsé par FluxBB