Il completamento automatico è una funzione utilissima che tutte le shell moderne (inclusa la Bash) possiedono. Il suo ruolo è di fare in modo che gli utenti debbano scrivere il meno possibile. Il modo migliore per illustrare la funzione di completamento automatico è fare un esempio.
Immaginate che la vostra directory personale contenga un file il cui nome è file_dal_nome_troppo_lungo_per_digitarlo, e che vogliate leggerlo. Supponiamo che nella vostra directory ci sia anche un file chiamato file_text. Vi trovate nella vostra directory personale, e digitate questo comando:
$ less fi<TAB>
(ovvero digitate less fi e poi premete il tasto TAB). La shell a questo punto completerà la linea di comando per voi:)
$ less file_
e vi darà anche l'elenco delle scelte possibili (nella sua configurazione predefinita, che potreste modificare). Quindi digitate questa sequenza di caratteri:
less file_w<TAB>
e la shell completerà la vostra linea di comando in questo modo:
less file_dal_nome_troppo_lungo_per_digitarlo
A questo punto vi basterà premere Invio per confermare e leggere il file.
Il tasto TAB non è il solo modo di attivare il completamento, anche se è il più utilizzato. In linea di massima, la parola da completare sarà il nome di un comando se è la prima parola della linea di comando (nsl<TAB> verrà espanso in nslookup), e un nome di file per le altre parole, a meno che la parola non sia preceduta da un carattere "magico" da scegliere tra ~, @ o $; in questo caso, la shell cercherà di completare la parola assumendo che sia, rispettivamente, il nome di un utente, il nome di una macchina o di una variabile di ambiente [1]. Esiste anche un carattere magico per completare il nome di un comando (!) o il nome di un file (/).
Gli altri due modi per attivare il completamento sono le sequenze Esc-<x> e C-x <x> (Esc è il tasto Escape, e C-x significa Control+<x>), dove <x> è uno dei caratteri magici che abbiamo visto. Esc-<x> cercherà di eseguire il completamento in modo univoco, altrimenti completerà la parola con la sequenza di caratteri più lunga tra quelle possibili. Un beep indicherà che la scelta non è univoca, o semplicemente che non esiste una scelta corrispondente. La sequenza C-x <x> visualizza la lista delle possibili scelte senza tentare il completamento. Premere il tasto TAB, quindi, ha lo stesso effetto che premere in successione Esc-<x> e C-x <x>, dove il carattere magico dipende dal contesto.
Come conseguenza, un sistema per visualizzare tutte le variabili di ambiente definite è digitare C-x $ su una linea vuota. Un altro esempio: se volete visualizzare la pagina di manuale del comando nslookup, potete digitare man nsl seguito da Esc-!, e la shell completerà la linea di comando in man nslookup.
[1] | Ricordate: Unix fa differenza fra caratteri maiuscoli e minuscoli. La variabile di ambiente HOME e home non sono la stessa variabile. |
Indietro | Partenza | Avanti |
La redirezione e le pipe | Risali | Avviare e gestire i processi in background: il controllo dei job |