

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de l'exécution des commandes dans AWS CLI
<a name="cli-configure-completion"></a>

Le AWS Command Line Interface (AWS CLI) inclut une fonction de complétion de commande compatible avec bash qui vous permet d'utiliser la touche **Tab** pour terminer une commande partiellement saisie. Sur la plupart des systèmes, vous devez la configurer manuellement.

Pour plus d'informations sur la fonctionnalité d'invite automatique de la AWS CLI version 2 à la place, voir[Activation et utilisation des invites de commande dans AWS CLI](cli-usage-parameters-prompting.md).

**Topics**
+ [Comment ça marche](#cli-command-completion-about)
+ [Configuration de la saisie automatique des commandes sur Linux ou sur macOS](#cli-command-completion-linux)
+ [Configuration de la saisie automatique des commandes pour Windows](#cli-command-completion-windows)

## Comment ça marche
<a name="cli-command-completion-about"></a>

Lorsque vous saisissez partiellement une commande, un paramètre ou une option, la fonctionnalité de saisie automatiques des commandes complète automatiquement votre commande ou affiche une liste de commandes suggérées. Pour demander la fin d'une commande, vous devez entrer partiellement une commande et appuyer sur la touche de fin, qui se trouve généralement *Tab* dans la plupart des interpréteurs de commandes.

Les exemples suivants montrent différentes façons d’utiliser la saisie automatique des commandes :
+ Entrez partiellement une commande et appuyez sur cette touche *Tab* pour afficher une liste de commandes suggérées.

  ```
  $ 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
  ```
+ Entrez partiellement un paramètre et appuyez sur cette touche *Tab* pour afficher une liste de paramètres suggérée.

  ```
  $ 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
  ```
+ Entrez un paramètre et appuyez dessus *Tab* pour afficher une liste suggérée de valeurs de ressources. Cette fonctionnalité n'est disponible que dans la AWS CLI version 2.

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

## Configuration de la saisie automatique des commandes sur Linux ou sur macOS
<a name="cli-command-completion-linux"></a>

Pour configurer la saisie automatique de commandes sous Linux ou macOS, vous devez connaître le nom du shell que vous utilisez et l’emplacement du script `aws_completer`.

**Note**  
La saisie automatique des commandes est automatiquement configurée et activée par défaut sur les instances Amazon EC2 qui exécutent Amazon Linux.

**Topics**
+ [Vérification que le dossier de la fonctionnalité de saisie se trouve dans votre chemin](#cli-command-completion-path)
+ [Activer la saisie automatique de commandes](#cli-command-completion-enable)
+ [Vérification de la saisie automatique des commandes](#cli-command-completion-test)

### Vérification que le dossier de la fonctionnalité de saisie se trouve dans votre chemin
<a name="cli-command-completion-path"></a>

Pour que le AWS completer fonctionne correctement, il `aws_completer` doit se trouver sur le chemin de votre shell. La commande `which` peut vérifier si la fonctionnalité de saisie se trouve dans votre chemin.

```
$ which aws_completer
/usr/local/bin/aws_completer
```

Si la commande which ne trouve pas la fonctionnalité de saisie, suivez les étapes ci-dessous pour ajouter le dossier de cette fonctionnalité dans votre chemin.

#### Étape 1 : Localiser le AWS compléteur
<a name="cli-command-completion-locate"></a>

 L'emplacement du AWS compléteur peut varier en fonction de la méthode d'installation utilisée. 
+ **Gestionnaire de packages** : les programmes tels que `pip` `yum``brew`, et `apt-get` installent généralement le AWS compléteur (ou un lien symbolique vers celui-ci) sur un emplacement de chemin standard. 
  + Si vous avez utilisé `pip` **sans** le paramètre `--user`, le chemin par défaut est `/usr/local/bin/aws_completer`.
  + Si vous avez utilisé `pip` **avec** le paramètre `--user`, le chemin par défaut est `/home/username/.local/bin/aws_completer`.
+ **Programme d’installation fourni** : si vous avez utilisé le programme d’installation fourni, le chemin par défaut est `/usr/local/bin/aws_completer`.

Si tout échoue, vous pouvez utiliser la `find` commande pour rechercher le AWS compléteur dans votre système de fichiers. 

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

#### Étape 2 : identifier votre shell
<a name="cli-command-completion-shell"></a>

Pour identifier le shell que vous utilisez, vous pouvez utiliser l’une des commandes suivantes.
+ **echo \$1SHELL** - Affiche le nom du fichier du programme du shell. Il correspond généralement au nom du shell que vous utilisez, sauf si vous avez lancé un autre shell après la connexion.

  ```
  $ echo $SHELL
  /bin/bash
  ```
+ **ps** - Affiche les processus actifs pour l’utilisateur actuel. L’un d’eux est le shell.

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

#### Étape 3 : ajouter la fonctionnalité de saisie dans votre chemin
<a name="cli-command-completion-path-add"></a>

1. Recherchez le script de profil de votre shell dans votre dossier utilisateur.

   ```
   $ ls -a ~/
   .  ..  .bash_logout  .bash_profile  .bashrc  Desktop  Documents  Downloads
   ```
   + **Bash** : `.bash_profile`, `.profile` ou `.bash_login`
   + **Zsh** : `.zshrc`
   + **Tcsh** : `.tcshrc`, `.cshrc` ou `.login`

1. Ajoutez une commande d’exportation à la fin de votre script de profil similaire à l’exemple suivant. Remplacez `/usr/local/bin/` par le nom du dossier que vous avez découvert dans la section précédente.

   ```
   export PATH=/usr/local/bin/:$PATH
   ```

1. Rechargez le profil dans la session en cours pour appliquer ces modifications. Remplacez `.bash_profile` par le nom du script de shell que vous avez découvert dans la première section.

   ```
   $ source ~/.bash_profile
   ```

### Activer la saisie automatique de commandes
<a name="cli-command-completion-enable"></a>

Après avoir confirmé que la fonctionnalité de saisie se trouve dans votre chemin, activez la saisie automatique des commandes en exécutant la commande appropriée pour le shell que vous utilisez. Vous pouvez ajouter la commande au profil de votre shell pour l’exécuter chaque fois que vous ouvrez un nouveau shell. Dans chaque commande, remplacez le */usr/local/bin/* chemin par celui trouvé sur votre système dans[Vérification que le dossier de la fonctionnalité de saisie se trouve dans votre chemin](#cli-command-completion-path).
+ **`bash`** : utilisez la commande intégrée `complete`.

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

  Ajoutez la commande précédente à `~/.bashrc` pour l’exécuter chaque fois que vous ouvrez un nouveau shell. Votre `~/.bash_profile` doit avoir pour source `~/.bashrc` pour garantir que la commande est également exécutée dans les shells de connexion.
+  **`zsh`** : pour exécuter la saisie automatique des commandes, vous devez exécuter `bashcompinit` en ajoutant la ligne de chargement automatique suivante à la fin du script de votre profil `~/.zshrc`.

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

  Pour activer la saisie automatique des commandes, utilisez la commande intégrée `complete`.

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

  Ajoutez les commandes précédentes à `~/.zshrc` pour les exécuter chaque fois que vous ouvrez un nouveau shell.
+  **`tcsh`** : la saisie automatique pour `tcsh` utilise un type de mot et un modèle pour définir le comportement de saisie automatique. 

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

  Ajoutez la commande précédente à `~/.tcshrc` pour l’exécuter chaque fois que vous ouvrez un nouveau shell.

Une fois que vous avez activé la saisie automatique des commandes, [Vérification de la saisie automatique des commandes](#cli-command-completion-test) fonctionne.

### Vérification de la saisie automatique des commandes
<a name="cli-command-completion-test"></a>

Après avoir activé la saisie automatique des commandes, rechargez votre shell, saisissez une commande partielle, puis appuyez sur la touche de **tabulation** pour voir les commandes disponibles.

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

## Configuration de la saisie automatique des commandes pour Windows
<a name="cli-command-completion-windows"></a>

**Note**  
*Pour plus d'informations sur la façon dont PowerShell ils sont complétés, y compris leurs différentes clés d'achèvement, voir [about\$1TAB\$1Expansion dans](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_tab_expansion) les Microsoft Docs. PowerShell*

Pour activer l'exécution PowerShell des commandes sous Windows, procédez comme suit dans PowerShell.

1. Ouvrez votre `$PROFILE` à l’aide de la commande suivante.

   ```
   PS C:\> Notepad $PROFILE
   ```

   Si vous n’avez pas de `$PROFILE`, suivez la procédure suivante pour en créer un.

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

   Pour plus d'informations sur PowerShell les profils, consultez [Comment utiliser les profils dans Windows PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise) sur le site Web de *Microsoft Docs*.

1. Pour activer la saisie automatique des commandes, ajoutez le bloc de code suivant à votre profil, enregistrez puis fermez le fichier.

   ```
   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  
   }
   ```

1. Après avoir activé la saisie automatique des commandes, rechargez votre shell, saisissez une commande partielle, puis appuyez sur la touche de **tabulation** pour parcourir les commandes disponibles.

   ```
   $ aws sTab
   ```

   ```
   $ aws s3
   ```

   Pour voir toutes les commandes disponibles pour la saisie automatique, entrez une command partielle et appuyez sur **Ctrl** \$1 **Espace**.

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