명령 완성 - AWS Command Line Interface

명령 완성

AWS Command Line Interface(AWS CLI)에는 Tab 키를 사용하여 부분적으로 입력된 명령을 완성할 수 있는 bash 호환 명령 완성 기능이 포함되어 있습니다. 이 기능은 대부분의 시스템에서 수동으로 구성해야 합니다.

대신 사용할 수 있는 AWS CLI 버전 2 자동 프롬프트 기능에 대한 자세한 내용은 명령에 AWS CLI 프롬프트 사용 섹션을 참조하세요.

작동 방식

명령, 파라미터 또는 옵션을 부분적으로 입력하면 명령 완성 기능이 자동으로 명령을 완성하거나 제안된 명령 목록을 표시합니다. 명령 완성 메시지를 표시하려면 명령을 부분적으로 입력하고 완성 키(대부분의 셸에서 Tab 키)를 누릅니다.

다음 예제에서는 명령 완성을 사용할 수 있는 여러 가지 방법을 보여줍니다.

  • 명령을 부분적으로 입력하고 Tab 키를 눌러 제안된 명령 목록을 표시합니다.

    $ aws dynamodb dTAB delete-backup describe-global-table delete-item describe-global-table-settings delete-table describe-limits describe-backup describe-table describe-continuous-backups describe-table-replica-auto-scaling describe-contributor-insights describe-time-to-live describe-endpoints
  • 파라미터를 부분적으로 입력하고 Tab 키를 눌러 제안된 파라미터 목록을 표시합니다.

    $ aws dynamodb delete-table --TAB --ca-bundle --endpoint-url --profile --cli-connect-timeout --generate-cli-skeleton --query --cli-input-json --no-paginate --region --cli-read-timeout --no-sign-request --table-name --color --no-verify-ssl --version --debug --output
  • 파라미터를 입력하고 Tab 키를 눌러 제안된 리소스 값 목록을 표시합니다. 이 기능은 AWS CLI 버전 2에서만 사용할 수 있습니다.

    $ aws dynamodb db delete-table --table-name TAB Table 1 Table 2 Table 3

Linux 또는 macOS에서 명령 완성 구성

Linux 또는 macOS에서 명령 완성을 구성하려면 사용 중인 셸의 이름과 aws_completer 스크립트의 위치를 알아야 합니다.

참고

Amazon Linux를 실행하는 Amazon EC2 인스턴스에서는 기본적으로 명령 완성이 자동으로 구성되고 활성화됩니다.

경로에 completer 폴더가 있는지 확인

AWS completer가 성공적으로 작동하려면 셀의 경로에 aws_completer가 있어야 합니다. which 명령을 사용하여 경로에 completer가 있는지 확인할 수 있습니다.

$ which aws_completer /usr/local/bin/aws_completer

이 명령으로 completer를 찾을 수 없는 경우 다음 단계를 사용하여 경로에 completer의 폴더를 추가합니다.

1단계: AWS completer 찾기

AWS Completer의 위치는 사용한 설치 방법에 따라 다를 수 있습니다.

  • 패키지 관리자 - pip, yum, brewapt-get과 같은 프로그램은 일반적으로 AWS completer(또는 이 기능에 대한 symlink)를 표준 경로 위치에 설치합니다.

    • pip--user 파라미터 없이 사용한 경우 기본 경로는 /usr/local/bin/aws_completer입니다.

    • pip--user 파리미터와 함께 사용한 경우 기본 경로는 /home/username/.local/bin/aws_completer입니다.

  • 번들에 포함된 설치 관리자 - 번들에 포함된 설치 관리자를 사용한 경우 기본 경로는 /usr/local/bin/aws_completer입니다.

다른 모든 방법이 실패하면 find 명령을 사용하여 파일 시스템에서 AWS completer를 검색할 수 있습니다.

$ find / -name aws_completer /usr/local/bin/aws_completer

2단계: 셸 식별

사용 중인 셸을 식별하려면 다음 명령 중 하나를 사용하면 됩니다.

  • echo $SHELL - 셸의 프로그램 파일 이름을 표시합니다. 이 항목은 로그인 후 다른 셸을 시작하지 않은 한 일반적으로 사용 중인 셸의 이름과 일치합니다.

    $ echo $SHELL /bin/bash
  • ps - 현재 사용자에 대해 실행 중인 프로세스를 표시합니다. 그 중 하나가 셸입니다.

    $ ps PID TTY TIME CMD 2148 pts/1 00:00:00 bash 8756 pts/1 00:00:00 ps

3단계: 경로에 completer 추가

  1. 사용자 폴더에서 셸의 프로파일 스크립트를 찾습니다.

    $ ls -a ~/ . .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
    • Bash.bash_profile, .profile 또는 .bash_login

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc 또는 .login

  2. 다음 예제와 유사한 프로필 스크립트 끝에 내보내기 명령을 추가합니다. /usr/local/bin/을 이전 섹션에서 검색한 폴더의 이름으로 바꿉니다.

    export PATH=/usr/local/bin/:$PATH
  3. 현재 세션에 프로필을 다시 로드하여 해당 변경 사항을 적용합니다. .bash_profile을 첫 단원에서 검색한 shell 스크립트의 이름으로 바꿉니다.

    $ source ~/.bash_profile

명령 완성 활성화

completer가 경로에 있는지 확인한 후에는 사용 중인 셸에 적합한 명령을 실행하여 명령 완성을 활성화합니다. 셸의 프로파일에 명령을 추가하여 새 셸을 열 때마다 실행되도록 할 수 있습니다. 각 명령에서 /usr/local/bin/ 경로를 시스템에서 찾은 경로에 completer 폴더가 있는지 확인로 바꿉니다.

  • bash – 기본 제공 명령인 complete를 사용합니다.

    $ complete -C '/usr/local/bin/aws_completer' aws

    ~/.bashrc에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다. ~/.bash_profile~/.bashrc를 소스로 하여 로그인 셸에서도 이 명령이 실행되도록 합니다.

  • zsh - 명령 완성을 실행하려면 bashcompinit 프로파일 스크립트 끝에 다음 자동 로드 행을 추가하여 ~/.zshrc를 실행해야 합니다.

    $ autoload bashcompinit && bashcompinit $ autoload -Uz compinit && compinit

    명령 완성을 사용하려면 기본 제공 명령 complete를 사용합니다.

    $ complete -C '/usr/local/bin/aws_completer' aws

    ~/.zshrc에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다.

  • tcsh - tcsh의 경우 단어 유형 및 패턴을 가져와서 완성 동작을 정의하는 방식으로 완성을 수행합니다.

    > complete aws 'p/*/`aws_completer`/'

    ~/.tschrc에 이전 명령을 추가하여 새 셸을 열 때마다 실행되도록 합니다.

명령 완성을 활성화한 후 명령 완성이 작동하는지 확인(명령 완성 확인)합니다.

명령 완성 확인

명령 완성을 활성화한 후 셸을 다시 로드하고 부분 명령을 입력한 다음 Tab 키를 눌러 사용 가능한 명령을 봅니다.

$ aws sTAB s3 ses sqs sts swf s3api sns storagegateway support

Windows에서 명령 완료 구성

참고

다양한 완성 키를 포함하여 PowerShell이 완성을 처리하는 방법에 대한 자세한 내용은 Microsoft PowerShell 문서에서 about_Tab_Expansion을 참조하세요.

Windows에서 PowerShell에 대한 명령 완성을 활성화하려면 PowerShell에서 다음 단계를 수행합니다.

  1. 다음 명령을 사용하여 $PROFILE을 엽니다.

    PS C:\> Notepad $PROFILE

    $PROFILE이 없는 경우 다음 명령을 사용하여 사용자 프로필을 생성합니다.

    PS C:\> if (!(Test-Path -Path $PROFILE )) { New-Item -Type File -Path $PROFILE -Force }

    PowerShell 프로필에 대한 자세한 내용은 Microsoft Docs 웹 사이트에서 Windows PowerShell ISE에서 프로필을 사용하는 방법을 참조하세요.

  2. 명령 완성을 활성화하려면 다음 코드 블록을 프로필에 추가하고 저장한 다음 파일을 닫습니다.

    Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock { param($commandName, $wordToComplete, $cursorPosition) $env:COMP_LINE=$wordToComplete if ($env:COMP_LINE.Length -lt $cursorPosition){ $env:COMP_LINE=$env:COMP_LINE + " " } $env:COMP_POINT=$cursorPosition aws_completer.exe | ForEach-Object { [System.Management.Automation.CompletionResult]::new($_, $_, 'ParameterValue', $_) } Remove-Item Env:\COMP_LINE Remove-Item Env:\COMP_POINT }
  3. 명령 완성을 활성화한 후 셸을 다시 로드하고 부분 명령을 입력한 다음 Tab 키를 눌러 사용 가능한 명령을 순환합니다.

    $ aws sTab
    $ aws s3

    완성을 위해 사용 가능한 명령을 모두 보려면 부분 명령을 입력하고 Ctrl+Space를 누릅니다.

    $ aws sCtrl + Space s3 ses sqs sts swf s3api sns storagegateway support