Finalización de comandos - AWS Command Line Interface

Python 2.7, 3.4 y 3.5 están obsoletas para la versión 1 de AWS CLI. Para obtener más información, consulte la sección de la versión 1 de AWS CLI de Acerca de las versiones de AWS CLI.

Finalización de comandos

El AWS Command Line Interface (AWS CLI) incluye una característica de finalización de comandos compatibles con bash que le permite utilizar la tecla Tab (Tabulador) para completar un comando introducido parcialmente. En la mayoría de los sistemas, debe configurarlo manualmente.

Para obtener información sobre la característica de petición automática de la versión 2 de AWS CLI, consulte Como tener una solicitud de AWS CLI para los comandos.

Cómo funciona

Cuando se introduce parcialmente un comando, parámetro u opción, la función de finalización de comandos completa automáticamente el comando o muestra una lista sugerida de comandos. Para solicitar que se complete el comando, escriba parcialmente un comando y pulse Tab (Tabulador).

En los ejemplos siguientes se muestran diferentes formas de utilizar la finalización de comandos:

  • Introduzca parcialmente un comando y pulse Tab (Tabulador) para mostrar una lista sugerida de comandos.

    $ 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
  • Introduzca parcialmente un parámetro y pulse Tab (Tabulador) para mostrar una lista sugerida de parámetros.

    $ 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
  • Introduzca un parámetro y pulse Tab (Tabulador) para mostrar una lista sugerida de valores de recursos. Esta función solo está disponible en la versión 2 de la AWS CLI.

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

Configuración de la finalización de comandos en Linux o macOS

Para configurar la finalización de comandos en Linux o macOS, debe conocer el nombre del shell que se está utilizando y la ubicación del script aws_completer.

nota

La finalización de comandos se configura y habilita automáticamente de forma predeterminada en las instancias de Amazon EC2 que ejecutan Amazon Linux.

Confirme que la carpeta del Completer está en su ruta

Para que el Completer de AWS funcione con éxito, aws_completer debe estar en a ruta de su shell. El comando which puede verificar si el Completer está en su ruta.

$ which aws_completer /usr/local/bin/aws_completer

Si el comando qué no puede encontrar el completador, siga los pasos siguientes para agregar la carpeta del completer a su ruta.

Paso 1: Ubique el Completer de AWS

La ubicación del Completer de AWS puede variar en función del método de instalación utilizado.

  • Administrador de paquetes: los programas como pip, yum, brew y apt-get suelen instalar el Completer de AWS (o un symlink al mismo) en una ubicación de ruta estándar.

    • Si utilizó pip sin el parámetro --user, la ruta predeterminada es /usr/local/bin/aws_completer.

    • Si utilizó pip con el parámetro --user, la ruta predeterminada es /home/username/.local/bin/aws_completer.

  • Instalador agrupado: si utilizó el instalador agrupado, la ruta predeterminada es /usr/local/bin/aws_completer.

Si no funciona ninguna de las opciones anteriores, puede utilizar el comando find para buscar su sistema de archivos para el completer de AWS.

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

Paso 2: Identificación de su shell

Para identificar qué shell está utilizando, puede usar uno de los siguientes comandos.

  • echo $SHELL: muestra el nombre de archivo de programa del shell. Normalmente coincide con el nombre del shell en uso, a menos que haya iniciado otro shell tras iniciar sesión.

    $ echo $SHELL /bin/bash
  • ps: muestra los procesos en ejecución para el usuario actual. Uno de ellos es el shell.

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

Paso 3: agregar la carpeta del completer a la ruta

  1. Busque el script de perfil de su shell en su carpeta de usuario.

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

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc, o .login

  2. Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo. Reemplace /usr/local/bin/ por el nombre de la carpeta que ha creado en la sección anterior.

    export PATH=/usr/local/bin/:$PATH
  3. Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto. Reemplace .bash_profile por el nombre del script de shell que ha creado en la primera sección.

    $ source ~/.bash_profile

Habilitar la finalización de comandos

Después de confirmar que el completer está en su ruta, habilite la finalización de comandos ejecutando el comando apropiado para el shell que está utilizando. Puede agregar el comando a su perfil del shell para que se ejecute cada vez que abra un nuevo shell. En cada comando, reemplace la ruta /usr/local/bin/ por la de su sistema en Confirme que la carpeta del Completer está en su ruta.

  • bash: use el comando complete integrado.

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

    Agregue el comando anterior a ~/.bashrc para que se ejecute cada vez que abra un nuevo shell. Su ~/.bash_profile debe obtener ~/.bashrc para asegurarse de que el comando también se ejecuta en los shells de inicio de sesión.

  • zsh: para ejecutar la finalización de comandos, debe ejecutar bashcompinit añadiendo la siguiente línea de carga automática al final del script de perfil de ~/.zshrc.

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

    Para habilitar la finalización de comandos, utilice el comando integrado complete.

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

    Agregue el comando anterior a ~/.zshrc para que se ejecute cada vez que abra un nuevo shell.

  • tcsh: la finalización de tcsh requiere un tipo de palabra y un patrón para definir el comportamiento de finalización.

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

    Agregue el comando anterior a ~/.tschrc para que se ejecute cada vez que abra un nuevo shell.

Después de habilitar la finalización del comando, Verifique la finalización de comandos funciona.

Configuración de la finalización de comandos en Windows

Para habilitar la finalización de comandos para PowerShell en Windows, siga los pasos siguientes en PowerShell.

  1. Abra el archivo $PROFILE con el siguiente comando.

    PS C:\> Notepad $PROFILE

    Si no dispone de un $PROFILE, cree un perfil de usuario mediante el siguiente comando.

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

    Para obtener más información sobre los perfiles de PowerShell, consulte Cómo utilizar perfiles en ISE de Windows PowerShell en el sitio web de Documentos de Microsoft.

  2. Para habilitar la finalización de comandos, agregue el siguiente bloque de código a su perfil, guarde y luego cierre el archivo.

    Register-ArgumentCompleter -Native -CommandName aws -ScriptBlock { param($commandName, $wordToComplete, $cursorPosition) $env:COMP_LINE=$wordToComplete $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. Verifique la finalización de comandos funciona.

Verifique la finalización de comandos

Tras habilitar la finalización de comandos, vuelva a cargar su shell, escriba parcialmente un comando y pulse la tecla Tab (Tabulación) para ver los comandos disponibles.

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