bash_completion (Bash Inteligente)
December 7th, 2006 by BusindreVamos a ver como instalar bash_completion para poder usar de forma más comoda la consola y poder añadir nosotros nuestras autocompletaciones inteligentes de los comandos que queramos:
Archivo: http://www.caliban.org/files/bash/bash-completion-20060301.tar.gz
Esto funciona en versiones de Bash a partir de la 2.05 en adelante.Para comprobarlo:
[busi @ ~]$ bash -version
GNU bash, version 3.00.16(2)-release (i486-slackware-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
Instalamos:
$ tar -zxvf bash-completion-20060301.tar.gz
$ cd bash_completion
# cp bash_completion /etc/
Para hacerlo operativo en el .bashrc de nuestro home (o el que interese):
# Auto completado inteligente de la bash.
if [ -r /etc/bash_completion ]; then
. /etc/bash_completion
fi
¿Que corrige?
1.- La ruta
2.- Ayuda con ciertos ejecutables
3.- El nombre de las variables ($)
4.- Los nombres de usuarios (~)
5.- Los hostname (@)
Veamos unos ejemplos:
1.- La ruta
Sin bash_completion
busi@busipc:$ cd w
webip.out wiffimanual~ words
wemeet.mid wireless_videos/ wx/
Con bash_completion
busi@busipc:$ cd w
wireless_videos/ wx/
2.- Ayuda con ciertos ejecutables (Abajo vemos como añadir nuevos)
busi@busipc:$ xmms
00-opensource_theme.m3u
01-cancion.mp3
3.- El nombre de las variables ($)
busi@busipc:$ echo $
$_ $BASH_VERSINFO $HISTFILE
4.- Los nombres de usuarios (~)
busi@busipc:$ ls ~
~adm/ ~busi/ ~ftp/ ~gdm ~lp
~bin/ ~daemon/ ~games ~halt/ ~mail/
5.- Los hostname (@)
busi@busipc:$ ssh @
@192.168.3.20 @kzo.homelinux.org
@195.27.11.143 @204.2.177.34
Vamos a añadir nosotros una completación para el comando unrar en /etc/bash_completion muy simple para entederlo:
complete -f -X '!*.@(rar|RAR)' unrar
Antes:
busi@busipc:$ unrar
aaaaa avvvvvva bbbbbb.rar
Ahora:
busi@busipc:$ unrar bbbbbb.rar
NOTA: Podemos hacerlo asi tambien : complete -G "*.txt" evim
Es mejor usar Zsh ya que es la mejor shell de todas y viene con muchas cosas ya integradas, pero eso lo trataremos en otra ocasion, les dejo un ejemplo con zsh:
[busi @ ~]$ ls ~
adm/ busi/ ftp/ gdm lp
bin/ daemon/ games halt/ mail/
A zsh no le hace falta bash_completion, si no usamos zsh y seguimos con bash mejor es ponerse bash_completion para usar una consola más comoda.
NOTA: También encontramos esta aplicación en los repositorios, pero como vemos es algo muy facil de poner y cuanto más actual sea el bash_completion mejor.
En muchas distribuciones ya viene instalado pero no activado, teniendo que descomentar dicho codigo en el archivo .bashrc
Posted in Curiosidades |
