Команды утилит
Стандартная команда Битрикс для генерации скриптов автодополнения командной оболочки.
completion
Генерирует скрипт автодополнения для командной оболочки (bash, zsh, fish).
Синтаксис
php bitrix.php completion <shell>Аргументы
shell- тип оболочки:bash,zshилиfish
Примеры использования
# Для 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
Системная установка (для всех пользователей)
# Сгенерировать и установить
cd /var/www/bitrix
sudo php bitrix.php completion bash > /etc/bash_completion.d/bitrix
# Перезагрузить bash completion
source /etc/bash_completionУстановка для текущего пользователя
# Создать директорию для 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 ~/.bashrcZsh
Установка для текущего пользователя
# Создать директорию для 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 ~/.zshrcOh My Zsh
# Создать директорию для кастомных 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 zshFish
# Создать директорию для completion (обычно уже существует)
mkdir -p ~/.config/fish/completions
# Сгенерировать и установить
cd /var/www/bitrix
php bitrix.php completion fish > ~/.config/fish/completions/bitrix.fish
# Перезагрузить fish
exec fishПроверка установки
После установки автодополнения вы можете проверить его работу:
# Перейти в директорию 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Использование автодополнения
Основные возможности
Автодополнение команд:
bashphp bitrix.php mod[Tab] → php bitrix.php module:Автодополнение подкоманд:
bashphp bitrix.php module:[Tab] # Показывает: list install uninstall githubАвтодополнение опций:
bashphp bitrix.php backup:create --[Tab] # Показывает все доступные опцииСправка по опциям:
- Нажмите Tab после
--чтобы увидеть все опции команды - Используйте стрелки для навигации по вариантам
- Enter для выбора
- Нажмите Tab после
Автоматизация установки
Скрипт установки для команды
#!/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Использование:
chmod +x install-completion.sh
./install-completion.shУстановка при деплое
#!/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Обновление автодополнения
Автоматическое обновление
#!/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Добавить в процесс обновления
#!/bin/bash
# Обновление системы с обновлением автодополнения
cd /var/www/bitrix
# Обновить модули
php bitrix.php update:modules
# Обновить автодополнение
./update-completion.sh
echo "Система и автодополнение обновлены"Troubleshooting
Автодополнение не работает
Проблема: После установки Tab не работает
Решения:
Для Bash:
- Проверьте, что файл создан:bash
ls -la ~/.bash_completion.d/bitrix - Убедитесь, что строка source добавлена в ~/.bashrc:bash
grep "bash_completion.d/bitrix" ~/.bashrc - Перезагрузите конфигурацию:bash
source ~/.bashrc
Для Zsh:
- Проверьте fpath:bash
echo $fpath - Очистите кеш completion:bash
rm -f ~/.zcompdump* - Перезапустите zsh:bash
exec zsh
Для Fish:
- Проверьте, что файл создан:bash
ls -la ~/.config/fish/completions/bitrix.fish - Перезапустите fish:bash
exec fish
Показываются старые команды
Проблема: Автодополнение показывает устаревшие команды
Решения:
- Регенерируйте файл автодополнения
- Очистите кеш оболочки (для zsh:
rm -f ~/.zcompdump*) - Перезапустите оболочку
Ошибки при генерации
Проблема: Ошибка при выполнении php bitrix.php completion
Решения:
- Убедитесь, что вы в директории
/bitrix - Проверьте версию PHP (требуется 8.1+)
- Проверьте, что Битрикс корректно установлен
Полезные советы
💡 Установите сразу - автодополнение значительно ускоряет работу
💡 Обновляйте регулярно - после установки новых модулей или команд
💡 Используйте Tab часто - для просмотра доступных опций
💡 Документируйте установку - добавьте инструкции в README проекта
💡 Автоматизируйте - добавьте установку автодополнения в скрипты деплоя
Дополнительные возможности
Алиасы для частых команд
Добавьте в ~/.bashrc или ~/.zshrc:
# Короткие алиасы для 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Функции-помощники
# ~/.bashrc или ~/.zshrc
# Быстрый переход в директорию bitrix
bxcd() {
cd /var/www/bitrix
}
# Запуск команды из любой директории
bxrun() {
(cd /var/www/bitrix && php bitrix.php "$@")
}
# Пример использования:
# bxrun cache:clear
# bxrun user:list --activeСмотрите также
- Использование - основы работы с консолью Битрикса
- Все команды модуля поддерживают автодополнение после установки