wiki-js/DevOps/bash-completion.html

28 lines
3.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
title: bash-completion для kubectl
description:
published: true
date: 2023-11-07T18:14:58.029Z
tags: bash, kubectl
editor: ckeditor
dateCreated: 2023-11-03T08:55:30.344Z
-->
<h3>Установка bash-completion</h3>
<p>bash-completion можно установить через многие менеджеры пакеты (см. <a href="https://github.com/scop/bash-completion#installation">здесь</a>). Вы можете установить его с помощью <code>apt-get install bash-completion</code> или <code>yum install bash-completion</code> и т.д.</p>
<p>Приведенные выше команды создадут файл <code>/usr/share/bash-completion/bash_completion</code>, который является основным скриптом bash-completion. Возможно, вам потребуется вручную подключить этот файл в <code>~/.bashrc</code> (необходимость выполнять эту операцию зависит от используемого менеджера пакетов).</p>
<p>Чтобы убедиться, что всё работает, перезагрузите оболочку и выполните команду <code>type _init_completion</code>. Если команда отработала успешно, установка сделана правильно, в противном случае добавьте следующее содержимое в файл <code>~/.bashrc</code>:</p>
<pre><code class="language-plaintext">source /usr/share/bash-completion/bash_completion</code></pre>
<p>Перезагрузите вашу оболочку и убедитесь, что bash-completion правильно установлен, выполнив команду <code>type _init_completion</code>.</p>
<h3>Включение автодополнения ввода kubectl</h3>
<p>Теперь нужно убедиться, что скрипт дополнения ввода kubectl выполняется во всех сессиях командной оболочки. Есть два способа сделать это:</p>
<p>Добавьте запуск скрипта дополнения ввода в файл <code>~/.bashrc</code>:</p>
<pre><code class="language-plaintext">echo 'source &lt;(kubectl completion bash)' &gt;&gt;~/.bashrc</code></pre>
<p>Добавьте скрипт дополнения ввода в директорию <code>/etc/bash_completion.d</code>:</p>
<pre><code class="language-plaintext">kubectl completion bash &gt;/etc/bash_completion.d/kubectl</code></pre>
<p>Если у вас определён псевдоним для kubectl, вы можете интегрировать его с автодополнением оболочки:</p>
<pre><code class="language-plaintext">echo 'alias k=kubectl' &gt;&gt;~/.bashrc
echo 'complete -F __start_kubectl k' &gt;&gt;~/.bashrc</code></pre>
<p><strong>Примечание:</strong> Все скрипты дополнения ввода bash-completion находятся в <code>/etc/bash_completion.d</code>.</p>
<p>Оба подхода эквивалентны. После перезагрузки вашей оболочки автодополнение ввода для kubectl должно работать.</p>