Skip to content

Команды утилит

Стандартная команда Битрикс для генерации скриптов автодополнения командной оболочки.

completion

Генерирует скрипт автодополнения для командной оболочки (bash, zsh, fish).

Синтаксис

bash
php bitrix.php completion <shell>

Аргументы

  • shell - тип оболочки: bash, zsh или fish

Примеры использования

bash
# Для bash
php bitrix.php completion bash > /etc/bash_completion.d/bitrix

# Для zsh
php bitrix.php completion zsh > ~/.zsh/completion/_bitrix

# Для fish
php bitrix.php completion fish > ~/.config/fish/completions/bitrix.fish

Установка автодополнения

Bash

Системная установка (для всех пользователей)

bash
# Сгенерировать и установить
cd /var/www/bitrix
sudo php bitrix.php completion bash > /etc/bash_completion.d/bitrix

# Перезагрузить bash completion
source /etc/bash_completion

Установка для текущего пользователя

bash
# Создать директорию для completion
mkdir -p ~/.bash_completion.d

# Сгенерировать и установить
cd /var/www/bitrix
php bitrix.php completion bash > ~/.bash_completion.d/bitrix

# Добавить в ~/.bashrc
echo "source ~/.bash_completion.d/bitrix" >> ~/.bashrc

# Применить изменения
source ~/.bashrc

Zsh

Установка для текущего пользователя

bash
# Создать директорию для completion
mkdir -p ~/.zsh/completion

# Сгенерировать и установить
cd /var/www/bitrix
php bitrix.php completion zsh > ~/.zsh/completion/_bitrix

# Добавить в ~/.zshrc (если еще не добавлено)
echo 'fpath=(~/.zsh/completion $fpath)' >> ~/.zshrc
echo 'autoload -Uz compinit && compinit' >> ~/.zshrc

# Применить изменения
source ~/.zshrc

Oh My Zsh

bash
# Создать директорию для кастомных completion
mkdir -p ~/.oh-my-zsh/custom/plugins/bitrix

# Сгенерировать и установить
cd /var/www/bitrix
php bitrix.php completion zsh > ~/.oh-my-zsh/custom/plugins/bitrix/_bitrix

# Перезагрузить zsh
exec zsh

Fish

bash
# Создать директорию для completion (обычно уже существует)
mkdir -p ~/.config/fish/completions

# Сгенерировать и установить
cd /var/www/bitrix
php bitrix.php completion fish > ~/.config/fish/completions/bitrix.fish

# Перезагрузить fish
exec fish

Проверка установки

После установки автодополнения вы можете проверить его работу:

bash
# Перейти в директорию bitrix
cd /var/www/bitrix

# Начать вводить команду и нажать Tab
php bitrix.php cach[Tab]
# Должно автоматически дополниться до: php bitrix.php cache:

php bitrix.php cache:[Tab]
# Должен показаться список: cache:clear  cache:type:clear

# Автодополнение опций
php bitrix.php user:list --[Tab]
# Должны показаться доступные опции: --limit  --active  --admin

Использование автодополнения

Основные возможности

  1. Автодополнение команд:

    bash
    php bitrix.php mod[Tab] php bitrix.php module:
  2. Автодополнение подкоманд:

    bash
    php bitrix.php module:[Tab]
    # Показывает: list  install  uninstall  github
  3. Автодополнение опций:

    bash
    php bitrix.php backup:create --[Tab]
    # Показывает все доступные опции
  4. Справка по опциям:

    • Нажмите Tab после -- чтобы увидеть все опции команды
    • Используйте стрелки для навигации по вариантам
    • Enter для выбора

Автоматизация установки

Скрипт установки для команды

bash
#!/bin/bash
# install-completion.sh
# Автоматическая установка автодополнения

BITRIX_DIR="/var/www/bitrix"

# Определить используемую оболочку
SHELL_TYPE=$(basename "$SHELL")

case "$SHELL_TYPE" in
    bash)
        echo "Установка автодополнения для Bash..."
        mkdir -p ~/.bash_completion.d
        cd "$BITRIX_DIR"
        php bitrix.php completion bash > ~/.bash_completion.d/bitrix
        
        # Добавить в ~/.bashrc если еще нет
        if ! grep -q "bash_completion.d/bitrix" ~/.bashrc; then
            echo "source ~/.bash_completion.d/bitrix" >> ~/.bashrc
        fi
        
        echo "✓ Установлено. Выполните: source ~/.bashrc"
        ;;
        
    zsh)
        echo "Установка автодополнения для Zsh..."
        mkdir -p ~/.zsh/completion
        cd "$BITRIX_DIR"
        php bitrix.php completion zsh > ~/.zsh/completion/_bitrix
        
        # Добавить в ~/.zshrc если еще нет
        if ! grep -q ".zsh/completion" ~/.zshrc; then
            echo 'fpath=(~/.zsh/completion $fpath)' >> ~/.zshrc
            echo 'autoload -Uz compinit && compinit' >> ~/.zshrc
        fi
        
        echo "✓ Установлено. Выполните: source ~/.zshrc"
        ;;
        
    fish)
        echo "Установка автодополнения для Fish..."
        mkdir -p ~/.config/fish/completions
        cd "$BITRIX_DIR"
        php bitrix.php completion fish > ~/.config/fish/completions/bitrix.fish
        
        echo "✓ Установлено. Выполните: exec fish"
        ;;
        
    *)
        echo "Неподдерживаемая оболочка: $SHELL_TYPE"
        echo "Поддерживаются: bash, zsh, fish"
        exit 1
        ;;
esac

Использование:

bash
chmod +x install-completion.sh
./install-completion.sh

Установка при деплое

bash
#!/bin/bash
# Автоматическая установка автодополнения для всех пользователей

cd /var/www/bitrix

# Bash (системная установка)
if [ -d /etc/bash_completion.d ]; then
    php bitrix.php completion bash > /etc/bash_completion.d/bitrix
    echo "✓ Bash completion установлен"
fi

# Zsh (для пользователя www-data)
if [ -d /home/www-data ]; then
    sudo -u www-data mkdir -p /home/www-data/.zsh/completion
    sudo -u www-data php bitrix.php completion zsh > /home/www-data/.zsh/completion/_bitrix
    echo "✓ Zsh completion установлен"
fi

# Fish (для пользователя www-data)
if [ -d /home/www-data ]; then
    sudo -u www-data mkdir -p /home/www-data/.config/fish/completions
    sudo -u www-data php bitrix.php completion fish > /home/www-data/.config/fish/completions/bitrix.fish
    echo "✓ Fish completion установлен"
fi

Обновление автодополнения

Автоматическое обновление

bash
#!/bin/bash
# update-completion.sh
# Обновление автодополнения после обновления модулей

BITRIX_DIR="/var/www/bitrix"
SHELL_TYPE=$(basename "$SHELL")

cd "$BITRIX_DIR"

case "$SHELL_TYPE" in
    bash)
        if [ -f ~/.bash_completion.d/bitrix ]; then
            php bitrix.php completion bash > ~/.bash_completion.d/bitrix
            source ~/.bash_completion.d/bitrix
            echo "✓ Bash completion обновлен"
        fi
        ;;
        
    zsh)
        if [ -f ~/.zsh/completion/_bitrix ]; then
            php bitrix.php completion zsh > ~/.zsh/completion/_bitrix
            rm -f ~/.zcompdump*  # Очистить кеш completion
            echo "✓ Zsh completion обновлен (перезапустите zsh)"
        fi
        ;;
        
    fish)
        if [ -f ~/.config/fish/completions/bitrix.fish ]; then
            php bitrix.php completion fish > ~/.config/fish/completions/bitrix.fish
            echo "✓ Fish completion обновлен"
        fi
        ;;
esac

Добавить в процесс обновления

bash
#!/bin/bash
# Обновление системы с обновлением автодополнения

cd /var/www/bitrix

# Обновить модули
php bitrix.php update:modules

# Обновить автодополнение
./update-completion.sh

echo "Система и автодополнение обновлены"

Troubleshooting

Автодополнение не работает

Проблема: После установки Tab не работает

Решения:

Для Bash:

  1. Проверьте, что файл создан:
    bash
    ls -la ~/.bash_completion.d/bitrix
  2. Убедитесь, что строка source добавлена в ~/.bashrc:
    bash
    grep "bash_completion.d/bitrix" ~/.bashrc
  3. Перезагрузите конфигурацию:
    bash
    source ~/.bashrc

Для Zsh:

  1. Проверьте fpath:
    bash
    echo $fpath
  2. Очистите кеш completion:
    bash
    rm -f ~/.zcompdump*
  3. Перезапустите zsh:
    bash
    exec zsh

Для Fish:

  1. Проверьте, что файл создан:
    bash
    ls -la ~/.config/fish/completions/bitrix.fish
  2. Перезапустите fish:
    bash
    exec fish

Показываются старые команды

Проблема: Автодополнение показывает устаревшие команды

Решения:

  1. Регенерируйте файл автодополнения
  2. Очистите кеш оболочки (для zsh: rm -f ~/.zcompdump*)
  3. Перезапустите оболочку

Ошибки при генерации

Проблема: Ошибка при выполнении php bitrix.php completion

Решения:

  1. Убедитесь, что вы в директории /bitrix
  2. Проверьте версию PHP (требуется 8.1+)
  3. Проверьте, что Битрикс корректно установлен

Полезные советы

💡 Установите сразу - автодополнение значительно ускоряет работу

💡 Обновляйте регулярно - после установки новых модулей или команд

💡 Используйте Tab часто - для просмотра доступных опций

💡 Документируйте установку - добавьте инструкции в README проекта

💡 Автоматизируйте - добавьте установку автодополнения в скрипты деплоя


Дополнительные возможности

Алиасы для частых команд

Добавьте в ~/.bashrc или ~/.zshrc:

bash
# Короткие алиасы для Bitrix CLI
alias bx='php /var/www/bitrix/bitrix.php'
alias bx-cache='bx cache:clear'
alias bx-agents='bx agent:run'
alias bx-backup='bx backup:create'

# С автодополнением для алиаса bx
complete -F _bitrix bx  # для bash
compdef bx='php bitrix.php'  # для zsh

Функции-помощники

bash
# ~/.bashrc или ~/.zshrc

# Быстрый переход в директорию bitrix
bxcd() {
    cd /var/www/bitrix
}

# Запуск команды из любой директории
bxrun() {
    (cd /var/www/bitrix && php bitrix.php "$@")
}

# Пример использования:
# bxrun cache:clear
# bxrun user:list --active

Смотрите также

  • Использование - основы работы с консолью Битрикса
  • Все команды модуля поддерживают автодополнение после установки

Документация BXMax CLI