Trong Linux, mặc định Bash cung cấp các hoàn tất chuẩn sau cho người dùng dùng trong dòng lệnh:
- Hoàn tất tên biến (Variablename completion)
- Hoàn tất tên người dùng (Username completion)
- Hoàn tất file thực thi (Executable completion)
- Hoàn tất tên file và thư mục (Filename and directory completion)
- Hoàn tất tên máy chủ (Hostname completion)
1. Hoàn Tất Tên Biến
Sau khi gõ $ trong terminal, nhấn tab hai lần sẽ hiển thị tất cả biến shell khả dụng như dưới.
$ 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. Hoàn Tất Tên Người Dùng
Khi nhấn tab hai lần sau dấu tilde (~), bash sẽ tự động bắt đầu hoàn tất tên người dùng.
$ cd ~[TAB][TAB] ~bala/ ~raj/ ~jason/ ~randy/ ~john/ ~ritu/ ~mayla/ ~thomas/ ~nisha/ ~www-data
Lưu ý điều này không lấy tên user từ thư mục home. Thay vào đó, nó hiển thị tất cả user có sẵn từ file /etc/passwd
3. Hoàn Tất Tên Đường Dẫn Cho File Thực Thi
Khi bạn cố thực thi lệnh, nếu file thực thi có quyền execute, nó sẽ tự động hoàn tất nếu tìm thấy một kết quả khớp như ví dụ dưới.
$ 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
Khi tìm thấy nhiều kết quả khớp, nó sẽ hiển thị các lệnh khả dụng.
4. Hoàn Tất Tên File Và Thư Mục
Hoàn tất này dành cho tên file và thư mục xuất hiện ở vị trí thứ hai trở đi trên dòng lệnh. Khác với ví dụ trên, nó không kiểm tra quyền nào, và chỉ hiển thị tất cả file và thư mục khả dụng.
$ ls countfiles.sh dir1 dir2 dir3 $ cat [TAB][TAB] countfiles.sh dir1 dir2 dir3 $ cat c[TAB][TAB] $ cat countfiles.sh
Cũng, khi có nhiều file để hiển thị, thay vì hiện tất cả khả năng trên màn hình (có thể gây nhầm lẫn), nó sẽ đưa ra cảnh báo sau.
$ ls -l /etc/ Display all 228 possibilities? (y or n)
5. Hoàn Tất Tên Máy Chủ
Để lấy hostname để kết nối, nhấn tab hai lần sau ký hiệu @ như dưới:
$ ssh john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
Bạn có thể dùng tính năng hoàn tất hostname này cùng bất kỳ lệnh nào cho phép @ cho hostname. Ví dụ, bạn có thể dùng với scp như sau:
$ scp filename.txt john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
Lưu ý điều này lấy hostname khả dụng từ file /etc/hosts.