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


Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

      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.