[Debian & co.] Completamento automatico dei comandi nella shell

Se utilizzate più o meno regolarmente la linea di comando (in ambiente Linux ma non solo) avrete sperimentato la comodità del completamento automatico dei comandi (e dei percorsi nel filesystem): è sufficiente inserire i primi caratteri del comando e premere il tasto TAB perché venga completato automaticamente il nome del comando (qualora i caratteri inseriti lo identifichino univocamente) o venga proposta la lista completa dei comandi che iniziano con tale sequenza di caratteri; tale funzionalità ha la duplice utilità di farci risparmiare tempo e di assisterci se non ricordiamo esattamente il nome di un comando, ma solo l’inizio. Nella maggior parte delle distribuzioni (Ubuntu in prima fila) questa comoda funzionalità è disponibile sin dal primo avvio, ma in certi frangenti può essere necessario effettuare alcune operazioni per attivarla: vediamo insieme quali.
Esistono due strade alternative e con esiti differenti per abilitare il completamento automatico dei comandi: la prima si limita ad offrire il completamento automatico per i comandi ma non per le relative opzioni (che iniziano in genere con i simboli ‘-‘ e ‘–‘), mentre il secondo lo abilita anche per queste ultime. Vediamo con un esempio pratico la differenza:

apt-g[TAB]
# mostra il comando apt-get per gestire i pacchetti

# proviamo ad inserire l'argomento 'install' per il comando apt-get
apt-get i[TAB]
# caso 1: nessun autocompletamento
# caso 2: inserisce automaticamente l'opzione 'install'

# proviamo ora ad inserire il nome di un pacchetto, ad esempio 'eclipse'
apt-get install ecli[TAB]
# caso 1: nessun autocompletamento
# caso 2: inserisce automaticamente l'argomento 'eclipse'
Tabella riassuntiva autocompletamento comandi
Parziale Avanzato
Parziale Avanzato
Comandi Si Si
Argomenti No Si
Opzioni No Si
Percorsi No Si

Completamento parziale

Il completamento parziale si ottiene modificando il file .bashrc presente nella cartella home del vostro profilo (per visualizzarlo può essere necessario mostrare i file nascosti premendo in Nautilus la combinazione di tasti Ctrl+H); una volta aperto il file è necessario individuare le seguenti righe, collocate verso la fine:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

Se non sono presenti, aggiungetele a mano e quindi rimuovete il simbolo di cancelletto ‘#’ davanti alle ultime tre righe, ottenendo il seguente risultato:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

A questo punto potete chiudere il file e aprire un terminale per vedere il risultato (le modifiche non saranno visibili su eventuali terminali già aperti).

Applicare le modifiche a tutti gli utenti (presenti e futuri)

La procedura appena illustrata abilita l’autocompletamento per il solo utente corrente: è possibile estendere la configurazione a tutti gli utenti del sistema modificando una volta per tutte il file /etc/bash.bashrc, ma l’operazione richiede privilegi di amministratore; la procedura da seguire è identica a quella riportata, a cambiare è solamente il file da modificare. Se si sceglie questa strada, non occorre ovviamente modificare il file .bashrc nella cartella home del proprio profilo poichè tutti gli utenti “ereditano” la configurazione contenuta nel file /etc/bash.bashrc.

Completamento avanzato

L’abilitazione del completamento avanzato è un’operazione se possibile più semplice della precedente: essa richiede infatti la semplice installazione del pacchetto bash-completion, disponibile nella maggior parte delle distribuzioni. Tale operazione può essere effettuata mediante il gestore pacchetti della vostra distribuzione (Synaptic nel caso di Debian) o da shell mediante il seguente comando (che richiede privilegi elevati per essere eseguito):

sudo apt-get install bash-completion

Una volta conclusa l’installazione, è sufficiente riavviare il terminale per osservare i cambiamenti applicati.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...