#1 Le 13/01/2006, à 22: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
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
Nikko
Dernière modification par nikko (Le 08/11/2007, à 16:54)
Hors ligne
#2 Le 13/01/2006, à 22: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 !!!!
Hors ligne
#3 Le 13/01/2006, à 23:11
- Surfoo
Re : [Console] Améliorer la complétion de bash
Très sympa comme astuce, merci.
Hors ligne
#4 Le 14/01/2006, à 09:33
- Ago
Re : [Console] Améliorer la complétion de bash
Waouh, puissant!
Merci beaucoup, c'est super, surtout pour apt
Sinan pour mplayer, ça ne propose que les dossiers du home
Blog libre <= pour bien se lancer sous Ubuntu Linux !
Linux =/= Windows Souvenez-vous en!
Hors ligne
#5 Le 14/01/2006, à 12: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, à 22:19
- yugo
Re : [Console] Améliorer la complétion de bash
meilleur astuce du siècle!
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, à 22: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, à 19: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, à 21:10
- Shyne
Re : [Console] Améliorer la complétion de bash
Zsh le fait lui.
L'essayer c'est l'adopter
Hors ligne
#10 Le 22/06/2007, à 21: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, à 21:51)
Hors ligne
#11 Le 23/06/2007, à 08: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.
Hors ligne
#12 Le 23/06/2007, à 19: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
"You caught me at a strange time in my life."
devianArt - site perso
Hors ligne
#13 Le 23/06/2007, à 19: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 ...
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, à 19: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, à 22:17
- nikko
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.
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 23/06/2007, à 23: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
N'hesitez pas a editer les fichiers comme bon vous semble (en particulier les alias)
Hors ligne
#16 Le 23/06/2007, à 23: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 23/06/2007, à 23:25)
Hors ligne
#17 Le 25/03/2011, à 15: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 26/03/2011, à 23: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, à 13: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, à 15:43
- cedric.amouyal
Re : [Console] Améliorer la complétion de bash
exacte
Hors ligne