Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 13/01/2006, à 23:39

nikko

[Console] Améliorer la complétion de bash

Voici donc une astuce pour la console.
La complétion (ou le complétement pour les zigs mortels) est la possibilité de lister commandes, fichiers, répertoires... en tapant "Tab".

Mais on peut grandement améliorer cette fonctionnalité en activant la complétion programmable. Il suffit d'éditer /etc/bash.bashrc et de décommenter les 3 dernières lignes, soit:

gksudo gedit /etc/bash.bashrc

et décommenter ces lignes:

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ]; then
#    . /etc/bash_completion
#fi

||
||
\/

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

Ce qu'on obtient:

La complétion après avoir tapé une première commande:
sudo syna + [Tab] => sudo synaptic
sudo apt-get i +[Tab] => sudo apt-get install

Une complétion "intelligente" en fonction de la commande:
man if +[Tab][Tab] => ifconfig      iflash2+_mtd  ifrename      ifup... Soit uniquement les prog ayant une page de manuel
evince +[Tab][Tab] => les pdfs plus les répertoires...
sudo apt-get install ecli +[Tab] => sudo  apt-get install eclipse- ...

Une complétion sur les utilisateurs:
~ +[Tab]
Une complétion sur les machines du réseau présentes dans /etc/hosts
ssh +[Tab]
@ +[Tab]

Il parait que certains programmes sont complétables sur leurs options:
[b]mplayer - +[Tab][b] fourni une liste d'options.
Mais je n'ai pas mplayer tongue

Enfin si vous vous sentez l'âme créative vous pouvez améliorer cette complétion programmable en éditant /etc/bash_completion ou en rajoutant des fichiers dans /etc/bash_completion.d/

Enfin, assez parlé, activez la et jouez avec big_smile

Nikko

Dernière modification par nikko (Le 08/11/2007, à 17:54)

Hors ligne

#2 Le 13/01/2006, à 23:58

akas

Re : [Console] Améliorer la complétion de bash

Hummm, je savais pas ça et c'est vrai que ça m'embêtait.
Merci !!!!

big_smile

Hors ligne

#3 Le 14/01/2006, à 00:11

Surfoo

Re : [Console] Améliorer la complétion de bash

Très sympa comme astuce, merci.

Hors ligne

#4 Le 14/01/2006, à 10:33

Ago

Re : [Console] Améliorer la complétion de bash

Waouh, puissant!

Merci beaucoup, c'est super, surtout pour apt wink

Sinan pour mplayer, ça ne propose que les dossiers du home hmm


Blog libre <= pour bien se lancer sous Ubuntu Linux !
Linux =/= Windows Souvenez-vous en!

Exalead Fête l'été, viendez gagner des Ipods Nano!

Hors ligne

#5 Le 14/01/2006, à 13:24

Cougar

Re : [Console] Améliorer la complétion de bash

Super merci


Jabber: cougar (arobase) jabber.nuxo.net

Hors ligne

#6 Le 11/04/2006, à 23:19

yugo

Re : [Console] Améliorer la complétion de bash

meilleur astuce du siècle! big_smile


Dans la vie il y a 3 sortes d'imbéciles: ceux qui doutent de tout et ceux qui doutent de rien

Hors ligne

#7 Le 11/04/2006, à 23:28

wra

Re : [Console] Améliorer la complétion de bash

Salut,
Merci beaucoup pour cette astuce très (très très) utile

Hors ligne

#8 Le 22/06/2007, à 20:19

The_Tito

Re : [Console] Améliorer la complétion de bash

sympa mais dommage ca ne fonctionne pas avec les alias on n'est obligé de taper sudo apt-get install gai [tab]

j'aurais voulut créer un alias de tel sorte a taper simplement install gai [tab] par exemple mais ca fonctionne pas

Hors ligne

#9 Le 22/06/2007, à 22:10

Shyne

Re : [Console] Améliorer la complétion de bash

Zsh le fait lui.

L'essayer c'est l'adopter tongue

Hors ligne

#10 Le 22/06/2007, à 22:44

nikko

Re : [Console] Améliorer la complétion de bash

Trop fort zsh. Bravo. Je n'ai jamais pris le temps de l'essayer. C'est vrai.

Sinon tu peux extraire ce qui t'intéresse des règles de complétion de apt-get et créer un fichier dans /etc/bash_completion.d/ contenant:

# Completion pour apti Alias pour 
# Debian apt-get(8) install completion.
#
have apti &&
_apti()
{
        local cur

        COMPREPLY=()
        cur=${COMP_WORDS[COMP_CWORD]}

        COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
        return 0

} &&
complete -F _apti $filenames apti

Tu te relogues (ou tu sources le fichier /etc/bahs.bashrc: . /etc/bash.bashrc) et ça roule.

Nikko

Edit : Je ne suis pas chien. J'installe zsh et je le teste pendant une semaine.

Dernière modification par nikko (Le 22/06/2007, à 22:51)

Hors ligne

#11 Le 23/06/2007, à 09:53

Shyne

Re : [Console] Améliorer la complétion de bash

Ca aussi c trop fort

9:52 shyne@shyne-ws ~ % apt-i ubuntustudio-audio
corrections (erreurs: 2)
ubuntustudio-audio          ubuntustudio-audio-plugins  ubuntustudio-graphics       ubuntustudiolauncher        ubuntustudio-video
original
ubunu-studi

J'ai volontairement tappé "ubunu-studi + tab"  Zsh a corrigé 2 erreurs et m'affiche la liste des paquets correspondant. wink

Hors ligne

#12 Le 23/06/2007, à 20:41

hells_dark

Re : [Console] Améliorer la complétion de bash

Enorme..
Apparemment, essayer zsh, c'est que du bon...
Encore un truc qui risque d'améliorer mon quotidien.
Pas de bol : je suis en pleine rédaction du rapport de mon stage, ça va encore me détourner du bon coté de la force ça hmm


"You caught me at a strange time in my life."
devianArt - site perso

Hors ligne

#13 Le 23/06/2007, à 20:50

K3g3rUn3kU

Re : [Console] Améliorer la complétion de bash

Heu comment tu fais pour avoir le nom d'utilisateur et le chemin actuel a l'invite de zsh ? parke moi j'ai juste

dawn %

ou dawn est le nom du PC ... hmm

EDIT: c vrai que c'est sympa comme shell mais c un peu chiant a configurer au début mais tout ce mérite ^ù^

Dernière modification par K3g3rUn3kU (Le 23/06/2007, à 20:54)


- Why drink and drive when you can smoke and fly ?
- Chut SAI MAL CA !!!
<BePower> ADSL = pas marcher = la flemme d'aller jusquau modem = disjoncteur plus pret = reboot maison
BASH FR

Hors ligne

#14 Le 23/06/2007, à 23:17

nikko

Re : [Console] Améliorer la complétion de bash

Shyne a écrit :

Ca aussi c trop fort

9:52 shyne@shyne-ws ~ % apt-i ubuntustudio-audio
corrections (erreurs: 2)
ubuntustudio-audio          ubuntustudio-audio-plugins  ubuntustudio-graphics       ubuntustudiolauncher        ubuntustudio-video
original
ubunu-studi

J'ai volontairement tappé "ubunu-studi + tab"  Zsh a corrigé 2 erreurs et m'affiche la liste des paquets correspondant. wink

Chez moi ça ne marche pas avec zsh. Je ne l'ai peut-être pas configuré aux petits oignons.
Et la complétion n'a pas l'air de fonctionner avec killall :
killall + tab :

whitestar% killall   
ps   zsh

J'ai pourtant d'autres processus qui tourne sous mon compte...

C'est un peu l'avantage de bash (du moins sur une ubuntu de base), il est bien configuré (même si la complétion n'est pas activée par défaut), l'invite de commande est fonctionnelle (remarque de K3g3rUn3kU), ls est colorisé... Je me doute que zsh est capable de tout ça, mais je ne sais pas si j'ai le temps et l'envie de m'y plonger.
Même si j'ai vraiment le sentiment qu'il peut exploser bash sur certaines fonctionnalités (invite de commande supplémentaire à droite par ex), bash me convient déjà pas mal...

Nikko

Hors ligne

#15 Le 24/06/2007, à 00:16

Shyne

Re : [Console] Améliorer la complétion de bash

Si vous voulez le tester tel que je le vois chez moi j'ai créé une petite archive qu'il vous suffit de decompresser dans votre repertoire personnel wink

N'hesitez pas a editer les fichiers  comme bon vous semble (en particulier les alias)

Hors ligne

#16 Le 24/06/2007, à 00:22

AuraHxC

Re : [Console] Améliorer la complétion de bash

Un truc trippant c'est que j'ai les lignes commenté (je suis avec ubuntu feisty) et pourtant ca me fait exactement ce qui est donné en exemple donc peut être que ca marche de base sur feisty mais pourtant ces lignes sont bien commenté...

EDIT :  en fait ca doit être dans le fichier /etc/bash_completion, donc c'est peut être pour ca que cela fonctionne de base avec feisty...

Dernière modification par AuraHxC (Le 24/06/2007, à 00:25)

Hors ligne

#17 Le 25/03/2011, à 16:22

MicroMaths

Re : [Console] Améliorer la complétion de bash

Merci infiniment ! Vous venez de m'épargner des heures et des heures de frustration !
Vive le partage !


Nous les Mathématiciens ... C'est fou ce que l'on peut écrire comme bêtises !

Hors ligne

#18 Le 27/03/2011, à 00:08

cedric.amouyal

Re : [Console] Améliorer la complétion de bash

Je comprends pas la nouveauté de ce post?!
par defaut dans ~/.bashrc l'option y est déjà dans le profil par defaut. Leur seul interet c'est que ce soit disponible pour tous les utilisateurs...

# 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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Hors ligne

#19 Le 28/03/2011, à 14:20

nikko

Re : [Console] Améliorer la complétion de bash

Le post d'origine date de 2006. Donc pas grand chose de nouveau, effectivement.
A l'époque ça ne devait pas être dans le ~/.bashrc sinon je n'aurais pas eu le besoin de l'activer.

Hors ligne

#20 Le 28/03/2011, à 16:43

cedric.amouyal

Re : [Console] Améliorer la complétion de bash

exacte smile

Hors ligne