

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione del completamento dei comandi in AWS CLI
<a name="cli-configure-completion"></a>

Il AWS Command Line Interface (AWS CLI) include una funzionalità di completamento dei comandi compatibile con bash che consente di utilizzare il **tasto Tab** per completare un comando inserito parzialmente. Sulla maggior parte dei sistemi è necessario configurarlo manualmente.

Per informazioni sulla funzionalità di richiesta automatica della AWS CLI versione 2, invece, vedere. [Attivazione e utilizzo dei prompt dei comandi in AWS CLI](cli-usage-parameters-prompting.md)

**Topics**
+ [Come funziona](#cli-command-completion-about)
+ [Configurazione del completamento dei comandi su Linux o macOS](#cli-command-completion-linux)
+ [Configurazione del completamento dei comandi su Windows](#cli-command-completion-windows)

## Come funziona
<a name="cli-command-completion-about"></a>

Quando si immette parzialmente un comando, un parametro o un'opzione, la caratteristica di completamento dei comandi completa automaticamente il comando o visualizza un elenco suggerito di comandi. Per richiedere il completamento del comando, si immette parzialmente un comando e si preme il tasto di completamento, che *Tab* in genere si trova nella maggior parte delle shell.

Negli esempi seguenti vengono illustrati diversi modi in cui è possibile utilizzare il completamento dei comandi:
+ Immettete parzialmente un comando e *Tab* premetelo per visualizzare un elenco di comandi suggerito.

  ```
  $ 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
  ```
+ Inserite parzialmente un parametro e premete *Tab* per visualizzare un elenco di parametri suggerito.

  ```
  $ 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
  ```
+ Immettete un parametro e premete *Tab* per visualizzare un elenco suggerito di valori delle risorse. Questa funzionalità è disponibile solo nella AWS CLI versione 2.

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

## Configurazione del completamento dei comandi su Linux o macOS
<a name="cli-command-completion-linux"></a>

Per configurare il completamento dei comandi, su Linux o macOS occorrono due informazioni: il nome della shell che si sta utilizzando e la posizione dello script `aws_completer`.

**Nota**  
Il completamento dei comandi viene configurato e abilitato automaticamente per impostazione predefinita sulle istanze Amazon EC2 che eseguono Amazon Linux.

**Topics**
+ [Conferma che la cartella del programma di completamento si trova nel tuo percorso](#cli-command-completion-path)
+ [Abilitazione del completamento dei comandi](#cli-command-completion-enable)
+ [Verifica del completamento dei comandi](#cli-command-completion-test)

### Conferma che la cartella del programma di completamento si trova nel tuo percorso
<a name="cli-command-completion-path"></a>

 AWS Affinché il completatore funzioni correttamente, `aws_completer` deve trovarsi nel percorso della shell. Il comando `which` può verificare se il programma di completamento si trova nel percorso dell’utente.

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

Se il comando which non riesce a trovare il programma di completamento, utilizza le seguenti fasi per aggiungere relativa la cartella al tuo percorso.

#### Fase 1: Individua il completatore AWS
<a name="cli-command-completion-locate"></a>

 La posizione del AWS completatore può variare a seconda del metodo di installazione utilizzato. 
+ **Package Manager**: programmi come`pip`, `yum``brew`, e `apt-get` in genere installano il AWS completatore (o un collegamento simbolico ad esso) in una posizione di percorso standard. 
  + Se `pip` è stato utilizzato **senza** il parametro `--user`, il percorso predefinito è `/usr/local/bin/aws_completer`.
  + Se `pip` è stato utilizzato **con** il parametro `--user`, il percorso predefinito è `/home/username/.local/bin/aws_completer`.
+ **Programma di installazione in bundle** - Se hai utilizzato il programma di installazione in bundle, il percorso predefinito è `/usr/local/bin/aws_completer`.

Se tutto il resto fallisce, è possibile utilizzare il `find` comando per cercare il completatore nel file system. AWS 

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

#### Fase 2: identificazione della shell
<a name="cli-command-completion-shell"></a>

Per identificare la shell in uso, è possibile utilizzare uno dei seguenti comandi.
+ **echo \$1SHELL** - Visualizza il nome del file di programma della shell. Generalmente corrisponde al nome della shell in uso, a meno che non venga avviata un'altra shell dopo avere effettuato l'accesso.

  ```
  $ echo $SHELL
  /bin/bash
  ```
+ **ps** - Mostra i processi in esecuzione per l’utente corrente. Uno di questi è la shell.

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

#### Fase 3: aggiunta della cartella del programma di completamento al percorso
<a name="cli-command-completion-path-add"></a>

1. Trova lo script del profilo della tua shell nella tua cartella utente.

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

1. Aggiungi un comando di esportazione al termine dello script del profilo simile a quello dell’esempio seguente. Sostituisci `/usr/local/bin/` con la cartella individuata nella sezione precedente.

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

1. Ricarica il profilo nella sessione corrente per rendere effettive tali modifiche. Sostituisci `.bash_profile` con il nome dello script della shell individuato nella prima sezione.

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

### Abilitazione del completamento dei comandi
<a name="cli-command-completion-enable"></a>

Dopo aver verificato che il programma di completamento si trovi nel tuo percorso, abilita il completamento del comando eseguendo il comando appropriato per la shell che stai utilizzando. Puoi aggiungere il comando al profilo della shell per eseguirlo ogni volta che apri una nuova shell. In ogni comando, sostituisci il */usr/local/bin/* percorso con quello trovato sul tuo sistema in[Conferma che la cartella del programma di completamento si trova nel tuo percorso](#cli-command-completion-path).
+ **`bash`** - Utilizza il comando integrato `complete`.

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

  Aggiungi il comando precedente a `~/.bashrc` per eseguirlo ogni volta che apri una nuova shell. Per accertarti che il comando venga eseguito anche nelle shell di accesso, l'origine di `~/.bash_profile` deve essere `~/.bashrc`.
+  **`zsh`** - Per eseguire il completamento del comando, è necessario eseguire `bashcompinit` aggiungendo la seguente riga di caricamento automatico alla fine dello script del profilo `~/.zshrc`.

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

  Per abilitare il completamento dei comandi, utilizzare il comando integrato `complete`.

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

  Aggiungi i comandi precedenti a `~/.zshrc` per eseguirlo ogni volta che apri una nuova shell.
+  **`tcsh`** - Il completamento di `tcsh` richiede un tipo di parola e un modello per definire il comportamento di completamento. 

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

  Aggiungi il comando precedente a `~/.tcshrc` per eseguirlo ogni volta che apri una nuova shell.

Dopo aver abilitato il completamento dei comandi, [Verifica del completamento dei comandi](#cli-command-completion-test) è in funzione.

### Verifica del completamento dei comandi
<a name="cli-command-completion-test"></a>

Dopo avere abilitato il completamento dei comandi, ricarica la shell, immetti un comando parziale e premi il tasto **Tab** per visualizzare i comandi disponibili.

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

## Configurazione del completamento dei comandi su Windows
<a name="cli-command-completion-windows"></a>

**Nota**  
*Per informazioni su come PowerShell gestisce il loro completamento, incluse le varie chiavi di completamento, vedi [about\$1Tab\$1Expansion in Microsoft Docs](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_tab_expansion). PowerShell*

Per abilitare il completamento dei PowerShell comandi per Windows, completa i passaggi seguenti in. PowerShell

1. Apri il file `$PROFILE` tramite il comando seguente:

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

   Se non disponi di un account `$PROFILE`, crea un profilo utente utilizzando il comando seguente.

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

   Per ulteriori informazioni sui PowerShell profili, vedere [Come utilizzare i profili in Windows PowerShell ISE](https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/ise/how-to-use-profiles-in-windows-powershell-ise) sul sito Web *Microsoft Docs.*

1. Per abilitare il completamento dei comandi, aggiungi il seguente blocco di codice al tuo profilo, salva e chiudi il file.

   ```
   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. Dopo avere abilitato il completamento dei comandi, ricarica la shell, immetti un comando parziale e premi il tasto **Tab** per passare tra i comandi disponibili.

   ```
   $ aws sTab
   ```

   ```
   $ aws s3
   ```

   Per visualizzare tutti i comandi disponibili per il completamento, immetti un comando parziale e premi **Ctrl** \$1 **Spazio**.

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