Updated with Changes From Main
Signed-off-by: Adithya Krishna <aadithya794@gmail.com>
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
---
|
||||
title: "Autocompletar bash en macOS"
|
||||
description: "Alguna configuración opcional para la finalización automática de bash en macOS."
|
||||
headless: true
|
||||
---
|
||||
|
||||
### Introducción
|
||||
|
||||
El script de finalización de kubectl para Bash se puede generar con `kubectl completion bash`. Obtener este script en su shell permite la finalización de kubectl.
|
||||
|
||||
Sin embargo, el script de finalización de kubectl depende de [**finalización de bash**](https://github.com/scop/bash-completion) que, por lo tanto, debe instalar previamente.
|
||||
|
||||
{{< warning>}}
|
||||
Hay dos versiones de bash-complete, v1 y v2. V1 es para Bash 3.2 (
|
||||
que es el predeterminado en macOS), y v2 es para Bash 4.1+. El script de finalización de kubectl **no funciona** correctamente con bash-complete v1 y Bash 3.2. Requiere **bash-complete v2** y **Bash 4.1+**. Por lo tanto, para poder usar correctamente la finalización de kubectl en macOS, debe instalar y usar Bash 4.1+ ([*instrucciones*](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba)). Las siguientes instrucciones asumen que usa Bash 4.1+ (es decir, cualquier versión de Bash de 4.1 o posterior).
|
||||
{{< /warning >}}
|
||||
|
||||
### Actualizar Bash
|
||||
|
||||
Las instrucciones aquí asumen que usa Bash 4.1+. Puede verificar la versión de su Bash ejecutando:
|
||||
|
||||
```bash
|
||||
echo $BASH_VERSION
|
||||
```
|
||||
Si es demasiado antiguo, puede instalarlo / actualizarlo usando Homebrew:
|
||||
|
||||
```bash
|
||||
brew install bash
|
||||
```
|
||||
Vuelva a cargar su shell y verifique que se esté utilizando la versión deseada:
|
||||
|
||||
```bash
|
||||
echo $BASH_VERSION $SHELL
|
||||
```
|
||||
|
||||
Homebrew generalmente lo instala en `/usr/local/bin/bash`.
|
||||
|
||||
### Instalar bash-complete
|
||||
|
||||
{{< note >}}
|
||||
Como se mencionó, estas instrucciones asumen que usa Bash 4.1+, lo que significa que instalará bash-completacion v2 (a diferencia de Bash 3.2 y bash-deployment v1, en cuyo caso la finalización de kubectl no funcionará).
|
||||
{{< /note >}}
|
||||
|
||||
Puede probar si ya tiene instalado bash-complete v2 con `type _init_completion`.Si no es así, puede instalarlo con Homebrew:
|
||||
|
||||
```bash
|
||||
brew install bash-completion@2
|
||||
```
|
||||
|
||||
Como se indica en el resultado de este comando, agregue lo siguiente a su archivo `~ / .bash_profile`:
|
||||
|
||||
```bash
|
||||
export BASH_COMPLETION_COMPAT_DIR="/usr/local/etc/bash_completion.d"
|
||||
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
|
||||
```
|
||||
|
||||
Vuelva a cargar su shell y verifique que bash-complete v2 esté instalado correctamente con`type _init_completion`.
|
||||
|
||||
### Habilitar el autocompletado de kubectl
|
||||
|
||||
Ahora debe asegurarse de que el script de finalización de kubectl se obtenga en todas sus sesiones de shell. Hay varias formas de lograrlo:
|
||||
|
||||
- Obtenga el script de finalización en su `~/.bash_profile` expediente:
|
||||
|
||||
```bash
|
||||
echo 'source <(kubectl completion bash)' >>~/.bash_profile
|
||||
```
|
||||
|
||||
- Agregue el guión de finalización al `/usr/local/etc/bash_completion.d` directorio:
|
||||
|
||||
```bash
|
||||
kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
|
||||
```
|
||||
|
||||
- Si tiene un alias para kubectl, puede extender la finalización del shell para trabajar con ese alias:
|
||||
|
||||
```bash
|
||||
echo 'alias k=kubectl' >>~/.bash_profile
|
||||
echo 'complete -F __start_kubectl k' >>~/.bash_profile
|
||||
```
|
||||
|
||||
- Si instaló kubectl con Homebrew (como se explica [aquí](/docs/tasks/tools/install-kubectl-macos/#install-with-homebrew-on-macos)), entonces el script de finalización de kubectl ya debería estar en `/usr/local/etc/bash_completion.d/kubectl`. En ese caso, no necesita hacer nada.
|
||||
|
||||
{{< note >}}
|
||||
La instalación de Homebrew de bash -mentation v2 genera todos los archivos en el `BASH_COMPLETION_COMPAT_DIR` directorio, es por eso que los dos últimos métodos funcionan.
|
||||
{{< /note >}}
|
||||
|
||||
En cualquier caso, después de recargar su shell, la finalización de kubectl debería estar funcionando.
|
||||
Reference in New Issue
Block a user