In Linux, per impostazione predefinita Bash fornisce il seguente completamento standard che gli utenti possono utilizzare nella riga di comando:
- Completamento nome variabile
- Completamento nome utente
- Completamento eseguibile
- Completamento di nome file e directory
- Completamento nome host
1. Completamento nome variabile
Dopo aver digitato $ nel terminale, premendo due volte tab verranno visualizzate tutte le variabili shell disponibili come mostrato di seguito.
$ echo $[TAB][TAB] $_ $COMP_POINT $HOSTTYPE $PS1 $_backup_glob $COMPREPLY $IFS $PS2 $BASH $COMP_TYPE $inx $PS4 $BASH_ALIASES $COMP_WORDBREAKS $LANG $PWD $BASH_ARGC $COMP_WORDS $LANGUAGE $RANDOM $BASH_ARGV $cur $LESSCLOSE $redir $BASH_CMDS $cword $LESSOPEN $SECONDS $BASH_COMMAND $DIRSTACK $LINENO $SHELL $BASH_COMPLETION_COMPAT_DIR $DISPLAY $LINES $SHELLOPTS $BASH_LINENO $errx $LOGNAME $SHLVL $BASHOPTS $EUID $LS_COLORS $split $BASHPID $exclude $MACHTYPE $SUDO_COMMAND $BASH_REMATCH $flag $MAIL $SUDO_GID $BASH_SOURCE $FUNCNAME $MAILCHECK $SUDO_UID $BASH_SUBSHELL $GROUPS $OLDPWD $SUDO_USER $BASH_VERSINFO $__grub_script_check_program $OPTERR $suffix $BASH_VERSION $HISTCMD $OPTIND $TERM $__colormgr_commandlist $HISTCONTROL $OSTYPE $UID $COLORTERM $HISTFILE $outx $USER $COLUMNS $HISTFILESIZE $PATH $USERNAME $COMP_CWORD $HISTSIZE $PIPESTATUS $words $COMP_KEY $HOME $PPID $XAUTHORITY $COMP_LINE $HOSTNAME $prev $_xspecs
2. Completamento nome utente
Quando premi tab due volte, dopo tilde (~), bash avvierà automaticamente il completamento del nome utente.
$ cd ~[TAB][TAB] ~bala/ ~raj/ ~jason/ ~randy/ ~john/ ~ritu/ ~mayla/ ~thomas/ ~nisha/ ~www-data
Tieni presente che questo non preleva il nome utente dalla home directory. Visualizza invece tutto il nome utente disponibile dal file /etc/passwd
3. Completamento del percorso per gli eseguibili
Quando si tenta di eseguire un comando, se l'eseguibile dispone dell'autorizzazione di esecuzione, verrà completato automaticamente se viene trovata una singola corrispondenza come mostrato nell'esempio seguente.
$ ls -l /etc/init.d/reboot -rwxr-xr-x 1 root root 639 Jan 30 2013 /etc/init.d/reboot $ /etc/init.d/reb[TAB][TAB] $ /etc/init.d/reboot
Quando vengono trovate più corrispondenze, verranno visualizzati i comandi disponibili.
4. Nome file e completamento directory
Questo completamento è per i nomi di file e directory che si verificano nella seconda e successiva posizione sulla riga di comando. A differenza dell'esempio precedente, questo non verifica alcuna autorizzazione e visualizzerà solo tutti i file e le directory disponibili.
$ ls countfiles.sh dir1 dir2 dir3 $ cat [TAB][TAB] countfiles.sh dir1 dir2 dir3 $ cat c[TAB][TAB] $ cat countfiles.sh
Inoltre, quando ci sono molti file da visualizzare, invece di visualizzare tutte le possibilità sullo schermo, che potrebbero creare molta confusione, visualizzerà il seguente messaggio di avviso.
$ ls -l /etc/ Display all 228 possibilities? (y or n)
5. Completamento nome host
Per ottenere i nomi host a cui connettersi, premere tab due volte dopo il simbolo @ come mostrato di seguito:
$ ssh john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
È possibile utilizzare questa funzione di completamento del nome host allogn con qualsiasi comando in cui è possibile fornire @ per nome host. Ad esempio, puoi usarlo con scp anche come mostrato di seguito:
$ scp filename.txt john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
Tieni presente che questo raccoglie i nomi host disponibili dal file /etc/hosts.