Je trouve passablement énervant que sous Bash, lorsque l’on appuie sur TAB pour avoir l’autocomplétion. On a d’abord un Biiip sonore puis on doit ré-appuyer une deuxième fois sur TAB pour qu’enfin la liste des solutions nous soient proposée.
Pour avoir directement la liste des solutions dès le premier appui sur la touche TAB il faut rajouter « set show-all-if-ambiguous on » dans votre fichier « ~/.inputrc« . Ce qui se fait ainsi pour les fainéants :
$ echo 'set show-all-if-ambiguous on' >> ~/.inputrc
En fait cela ne concerne pas bash, mais readline. Et c’est là qu’il y a toute la doc `man readline`. inputrc peut aussi définir des options en fonction des programmes qui l’emploient, que ce soit bash, la commande ftp, nslookup, etc.
Il y a plein d’autres options bien pratiques aussi, comme ne pas vérifier la casse lors des completions: « set completion-ignore-case on », ou « set bell-style visible » si tu veux te débarasser de l’horrible bîîip par un flash à l’écran.
Si ça t’intéresse, j’ai mon fichier inputrc ici: http://pastebin.com/DW6Ni6n9
!!! Attention !!! je *crois* que selon les versions de readline, l’indentation du fichier pose problème, c’est pour cela que je n’ai pas indenté les $if. Du moins, je me rappelle avoir eu des problèmes il y a fort fort longtemps (certain fichiers me suivent depuis une bonne quinzaine d’années, voir plus).
Pour les options du shell, donc bash, imho c’est plus simple de les mettre dans un fichier rc différent. Surtout qu’on peut les sortir avec `shopt -p > shell_options.sh`. Tu peux ensuite le sourcer depuis ton bashrc (`. shell_options.sh`, il faut juste commenter les options read-only). J’ai ajouté de brefs commentaires au mien si ça peut t’aider: http://pastebin.com/T2x3MThK
en fait j’ai ma config bash qui est là: http://pastebin.com/u/Yunga
les fichiers qui t’intéressent sont (je te mets l’arborescence de mon home):
~/.bashrc
~/.dircolors
~/.inputrc
~/.bash/shell_options.sh
~/.bash/aliases_function.sh
~/.bash/cliref.txt
Tu peux mettre des fichiers de configurations spécifiques à un host dans ~/.bash/hosts/HOSTNAME_ce-que-tu-veux.sh ils seront chargés automatiquement depuis .bashrc.
Essaie peut-être depuis un nouvel utilisateur, tu as de l’aide pour les alias sur F1 et sur les commandes unix en général sur shift-F1.
!!! Attention !!! (encore! :D) dans bashrc je modifie les locales, parce que ça me pèle quand sort et consorts ne trient pas les fichiers ACSII correctement, donc je lui défini le « C » comme ordre de tri, ça peut donner des surprises (c’était comme ça dans le temps, mais depuis qu’il y a de l’utf8 partout…) Pour mon utilisation, ça ne change rien, même en traitant des fichiers français ou en utf8, mais en chinois je ne sais pas ce que ça donnerait. Voir la doc de locale.
Bon amusement ;)
J’ai oublié de préciser qu’il faut également créer un fichier avec la liste des répertoires que l’on souhaite retrouver dans le PATH, ~/.bash/path.txt. Un directory par ligne, par example:
# les commentaires sont authorisés
/bin
/usr/bin
/usr/games
/sbin/
/usr/sbin
# si le répertoire existe il est ajouté à PATH
/cygdrive/c/Windows
/cygdrive/c/Windows/system32
# sous linux les deux lignes précédentes sont ignorées, pas sous cygwin