Linux에서 기본적으로 Bash는 사용자가 명령줄에서 사용할 수 있도록 다음과 같은 표준 완성 기능을 제공합니다.
- 변수 이름 완성
- 사용자 이름 완성
- 실행 가능 완료
- 파일 이름 및 디렉토리 완성
- 호스트 이름 완성
1. 변수 이름 완성
터미널에 $를 입력한 후 탭을 두 번 누르면 아래와 같이 사용 가능한 모든 쉘 변수가 표시됩니다.
$ 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. 사용자 이름 완성
탭을 두 번 누르면 물결표(~) 뒤에 bash가 자동으로 사용자 이름 완성을 시작합니다.
$ cd ~[TAB][TAB] ~bala/ ~raj/ ~jason/ ~randy/ ~john/ ~ritu/ ~mayla/ ~thomas/ ~nisha/ ~www-data
이것은 홈 디렉토리에서 사용자 이름을 선택하지 않는다는 점에 유의하십시오. 대신 /etc/passwd 파일에서 사용 가능한 모든 사용자 이름을 표시합니다.
3. 실행 파일의 경로 이름 완성
명령을 실행하려고 할 때 실행 파일에 실행 권한이 있으면 아래 예와 같이 일치하는 항목이 하나만 있으면 자동으로 완료됩니다.
$ 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
일치하는 항목이 여러 개 있으면 사용 가능한 명령이 표시됩니다.
<센터> 센터>4. 파일 이름 및 디렉토리 완성
이 완료는 명령줄의 두 번째 및 후속 위치에서 발생하는 파일 이름 및 디렉터리 이름에 대한 것입니다. 위의 예와 달리 권한을 확인하지 않고 사용 가능한 모든 파일과 디렉터리만 표시합니다.
$ ls countfiles.sh dir1 dir2 dir3 $ cat [TAB][TAB] countfiles.sh dir1 dir2 dir3 $ cat c[TAB][TAB] $ cat countfiles.sh
또한 표시할 파일이 많은 경우 화면에 모든 가능성을 표시하는 대신 혼란스러울 수 있으므로 다음과 같은 경고 메시지가 표시됩니다.
$ ls -l /etc/ Display all 228 possibilities? (y or n)
5. 호스트 이름 완성
연결할 호스트 이름을 얻으려면 아래와 같이 @ 기호 다음에 탭을 두 번 누릅니다.
$ ssh john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
호스트 이름에 @를 제공할 수 있는 모든 명령과 함께 이 호스트 이름 완성 기능을 사용할 수 있습니다. 예를 들어 아래와 같이 scp와 함께 사용할 수도 있습니다.
$ scp filename.txt john@[TAB][TAB] @dev-db @fileserver @qa-server @prod-db @localhost @web-server
이것은 /etc/hosts 파일에서 사용 가능한 호스트 이름을 선택한다는 점에 유의하십시오.