Uitgebreide autocomplete in Bash
Gepubliceerd: Dinsdag 27 oktober 2009
Auteur: Koen Vervloesem
De Bash shell ondersteunt al lang autocomplete van commando's door middel van scripts. Onlangs kwam versie 1.1 uit van het pakket bash-completion, een uitgebreide collectie scripts voor veel gebruikte Linux-commando's.
Bash, de standaardshell op heel wat Linux-distributies, ondersteunt al sinds versie 2.04 de autocompletion van commando's. Zo kun je niet alleen bestandsnamen met een druk op de TAB-toets laten vervolledigen, maar ook bijvoorbeeld in een ssh-commando hostnamen die in ~/.ssh/known_hosts gedefinieerd zijn.
De meer dan 140 completionpatronen voor programma's zoals ssh, apt, rsync, vncviewer, enzovoort worden gedefinieerd in het pakket bash-completion, dat in heel wat Linux-distributies standaard geïnstalleerd wordt. Om de vervollediging in te schakelen, moet je nog het volgende in je ~/.bashrc zetten:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Enkele tips
Zoals gezegd kun je hostnamen die in ~/.ssh/known_hosts gedefinieerd zijn vervolledigen in een ssh-commando. Bij het apt-get commando krijg je na een druk op TAB de verschillende subcommando's te zien, zoals install, update, purge, enzovoort. Het commando man met het begin van een commandonaam toont je na een druk op TAB de verschillende man-pagina's die met die letters beginnen.
Probeer zelf bij andere commando's eens uit of er vervolledigingspatronen voor gedefinieerd zijn. Het bash-completion pakket is heel modulair opgebouwd. Is je favoriete commando nog niet in de lijst opgenomen en ben je wat handig met shell-scripts, dan kun je dus relatief eenvoudig je eigen completionpatronen toevoegen.
Bron: Techworld
De rubriek Tips & Tools biedt praktische informatie die IT-professionals in hun dagelijkse werk kunnen toepassen.
