Cuando utilizamos mucho tiempo la ventana de terminal o x-window,es muy util tener habilitado el autocompletado con el tabulador, ya que servira para ahorrar mucho trabajo tecleando y permitira evitar tener que memorizar el nombre exacto de cada comando, rutas y paquetes del sistema Linux que se utiliza o controla desde la terminal.
Todo esto es gracias al archivo /etc/bash_completion que es un script que se encarga de buscar todas las posibilidades cuando pulsamos el tabulador. Así escribiendo una o unas pocas letras de una palabra, pulsando una vez el tabulador, si solo hay una posibilidad nos completará automáticamente el comando o palabra que estuviéramos escribiendo, pero si hay dos o más posibilidades, una doble pulsación nos mostrará todas las posibles opciones que hay con esas letras que ya tenemos escritas.
Vamos a detallar como instalar y habilitar el autocompletado en la ventana de terminal para facilitar la escritura de comando y rutas.
En caso no tener instalado el paquete bash-completion, lo instalamos:
sudo apt-get install bash-completion
Abrimos /etc/profile con un editor de textos
nano /etc/profileBuscamos 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
Descomentamos las lineas para que nos quede de la siguiente manera
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. La tty es la consola que nos permite en GNU/Linux acceder a nuestro sistema operativo fuera de su entorno gráfico X-Window o simplemente la terminal de comandos.
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.
Un problema es que si el comando esta precedido por sudo o cualquier acceso a modo root no funcionara, para solucionarlo deberemos hacer lo siguiente
Abrimos /etc/profile con un editor de textos
nano /etc/profile
if [ "$PS1" ]; then complete -cf sudo fi
Ahora mientras escribimos un comando en la terminal podemos autocompletarlo si presionamos la tecla Tab
ACTIVAR AUTOCOMPLETADO PARA TODOS LOS USUARIOS EN EMULADORES DE TERMINAL
Abrimos /etc/bash.bashrc
nano /etc/bash.bashrcBuscamos 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
Eliminamos 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.