Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Linux Bash 명령줄에서 사용 가능한 5 표준 완성

Linux에서 기본적으로 Bash는 사용자가 명령줄에서 사용할 수 있도록 다음과 같은 표준 완성 기능을 제공합니다.

  1. 변수 이름 완성
  2. 사용자 이름 완성
  3. 실행 가능 완료
  4. 파일 이름 및 디렉토리 완성
  5. 호스트 이름 완성

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 파일에서 사용 가능한 호스트 이름을 선택한다는 점에 유의하십시오.