Configuración de la finalización de comandos en la AWS CLI
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 Activación y uso de los símbolos del sistema en la AWS CLI.
Temas
Funcionamiento
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, ingrese parcialmente un comando y pulse la tecla de finalización, que normalmente es Tab
(Tabulador) en la mayoría de los shells.
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 d
TAB
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.
Temas
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
yapt-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
-
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
-
-
Añada un comando de exportación al final del script de su perfil igual que en el siguiente ejemplo. Reemplace
por el nombre de la carpeta que ha creado en la sección anterior./usr/local/bin/
export PATH=
/usr/local/bin/
:$PATH -
Vuelva a cargar el perfil en la sesión actual para que esos cambios surtan efecto. Reemplace
por el nombre del script de shell que ha creado en la primera sección..bash_profile
$
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 comandocomplete
integrado.$
complete -C '
/usr/local/bin/
aws_completer' awsAgregue 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
: ejecutar la finalización de comandos, debe ejecutarbashcompinit
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' awsAgregue el comando anterior a
~/.zshrc
para que se ejecute cada vez que abra un nuevo shell. -
tcsh
: la finalización detcsh
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.
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 s
TAB
s3 ses sqs sts swf s3api sns storagegateway support
Configuración de la finalización de comandos en Windows
nota
Para obtener información sobre cómo PowerShell gestiona la finalización, incluidas las diversas claves de finalización, consulte about_Tab_Expansion
Para habilitar la finalización de comandos para PowerShell en Windows, siga los pasos siguientes en PowerShell.
-
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. -
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 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 }
-
Tras habilitar la finalización de comandos, vuelva a cargar el shell, ingrese parcialmente un comando y pulse la tecla Tab (Tabulación) para recorrer los comandos disponibles.
$
aws s
Tab
$
aws
s3
Para ver todos los comandos disponibles para completar, ingrese parcialmente un comando y pulse Ctrl (Control) + Space Espacio.
$
aws s
Ctrl + Space
s3 ses sqs sts swf s3api sns storagegateway support