Sous Linux, Bash fournit par défaut la complétion standard suivante que les utilisateurs peuvent utiliser dans la ligne de commande :
- Complétion de nom de variable
- Saisie du nom d'utilisateur
- Complétion exécutable
- Remplissage du nom de fichier et du répertoire
- Complétion du nom d'hôte
1. Achèvement de nom de variable
Après avoir tapé $ dans le terminal, appuyez deux fois sur la touche de tabulation pour afficher toutes les variables shell disponibles, comme indiqué ci-dessous.
$ 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. Complétion du nom d'utilisateur
Lorsque vous appuyez deux fois sur la touche de tabulation, après le tilde (~), bash lancera automatiquement la complétion du nom d'utilisateur.
$ cd ~[TAB][TAB] ~bala/ ~raj/ ~jason/ ~randy/ ~john/ ~ritu/ ~mayla/ ~thomas/ ~nisha/ ~www-data
Veuillez noter que cela ne récupère pas le nom d'utilisateur du répertoire personnel. Au lieu de cela, il affiche tous les noms d'utilisateur disponibles à partir du fichier /etc/passwd
3. Complétion du nom de chemin pour les exécutables
Lorsque vous essayez d'exécuter une commande, si l'exécutable a l'autorisation d'exécution, elle sera automatiquement terminée si une seule correspondance est trouvée, comme indiqué dans l'exemple ci-dessous.
$ 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
Lorsque plusieurs correspondances sont trouvées, il affichera les commandes disponibles.
4. Achèvement du nom de fichier et du répertoire
Cette complétion concerne les noms de fichiers et de répertoires apparaissant à la deuxième position et aux positions suivantes sur la ligne de commande. Contrairement à l'exemple ci-dessus, cela ne vérifie aucune autorisation et affiche simplement tous les fichiers et répertoires disponibles.
$ ls countfiles.sh dir1 dir2 dir3 $ cat [TAB][TAB] countfiles.sh dir1 dir2 dir3 $ cat c[TAB][TAB] $ cat countfiles.sh
De plus, lorsqu'il y a beaucoup de fichiers à afficher, au lieu d'afficher toutes les possibilités à l'écran, ce qui peut devenir très déroutant, le message d'avertissement suivant s'affiche.
$ ls -l /etc/ Display all 228 possibilities? (y or n)
5. Achèvement du nom d'hôte
Afin d'obtenir les noms d'hôte auxquels se connecter, appuyez deux fois sur la touche de tabulation après le symbole @ comme indiqué ci-dessous :
$ ssh john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
Vous pouvez utiliser cette fonctionnalité de complétion de nom d'hôte avec n'importe quelle commande où vous pouvez donner @ pour le nom d'hôte. Par exemple, vous pouvez également l'utiliser avec scp comme indiqué ci-dessous :
$ scp filename.txt john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
Veuillez noter que cela récupère les noms d'hôte disponibles à partir du fichier /etc/hosts.