Cómo habilitar autocompletar en el terminal

Este tip es útil para todas aquellas personas que utilizamos con frecuencia (diariamente) la terminal o consola en sistemas GNU/Linux.

Antes de comenzar

En caso no tener instalado el paquete bash-completion, lo instalamos:

aptitude install bash-completion

Activar el autocompletado en las TTY para todos los usuarios

Abrimos /etc/profile

nano /etc/profile

Buscamos en /etc/profile las siguientes líneas…

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Y reemplazamos por:

if [ "$BASH" ]; then
       if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
            . /etc/bash_completion
       fi
fi

Esto último activará bash_completion para todos los usuarios, incluyendo root. Pero sólo lo activará en las TTY, y no en los emuladores de terminal.

Reiniciamos la TTY y listo.

Como verán, al archivo original le hemos agregado un if, que corrobora que el bash_completion se corra solamente cuando estamos en Bash. Sin ese condicional, GDM nos dará el error previamente mencionado, ya que GDM estaría llamando bash_completion, y por algún motivo entra en conflicto con xsession.

Activar el autocompletado en los emuladores de terminal para todos los usuarios

Abrimos /etc/bash.bashrc

# nano /etc/bash.bashrc

Buscamos en /etc/bash.bashrc las siguientes líneas…

# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

… Y removemos los “#” (las descomentamos), quedando así:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Esto último activará bash_completion para todos los usuarios, incluyendo root. Pero sólo lo activará en los emuladores de terminal, y no en las TTY.

Reiniciamos cualquier terminal y los cambios ya tendrán efecto.

Activar el autocompletado en los emuladores de terminal sólo para un usuario

Debemos crear (o editar, si es que existe) el archivo ~/.bashrc.

nano ~/.bashrc

Agregamos (o buscamos si no existen, pero comentadas, al igual que se hace en /etc/bash.bashrc) para que quede así:

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

– Si archivo lo creamos, simplemente agregamos estas líneas.
– Si existe pero no están presentes estas líneas, las agregamos al final del archivo.
– Si existe y estas líneas están, simplemente las descomentamos.

Reiniciamos la consola y los cambios ya tendrán efecto.

Activar el autocompletado cuando se desee

Simplemente hay que correr bash_completion en el momento que queremos utilizarlo. Se desactivará una vez que terminemos la sesión en la terminal (con el comando exit) o cerremos la terminal que estemos utilizando si estamos en un entorno gráfico. Para correrlo cuando queramos, hacemos:

. /etc/bash_completion

¡Gracias Carlos Fioriti!

Fuente: el cuaderno del 98


Un comentario

  1.   daniel dijo

    quiero descargar el programa comando autocompletar para uso personalizado en mi ordenador.
    tambien, transferirlo al ultimo modelo de navegador en red.
    ¿pueden colaborar conmigo?
    gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *