Думаю все, кто работают в консоли Linux, знают про автодополнение… — ServerAdmin.ru — TG.ME

Думаю все, кто работают в консоли Linux, знают про автодополнение имён файлов и директорий. Это когда вы вводите часть имени файла, нажимаете tab и видите дальше варианты имён, которых может быть несколько. Это очень удобно, если не помнишь точное полное имя бинарника. Например, после установки MariaDB надо запустить файл mariadb-secure-installation. Я набираю mariadb, жму tab и выбираю из предложенных вариантов. Так проще написать и не ошибиться. Варианты подстановки проверяются в директориях, заданных в $PATH, в текущей папке, в алиасах, во встроенных в оболочку командах и может где-то ещё.

Я почти всегда на серверах использую оболочку bash, работаю только в ней. Для bash можно настроить автодополнение не только для файлов и папок, но и для команд. За это отвечает отдельный пакет bash-completion. У него свой репозиторий - https://github.com/scop/bash-completion. Проект активно поддерживается и обновляется.

В популярных дистрибутивах он чаще всего включён в набор системных утилит. По крайней мере в стандартных минимальных образах Debian и Ubuntu это так. В Centos он тоже раньше был по умолчанию. Отдельно никогда его не ставил. Вы можете установить более свежую версию вручную из github, если та, что есть в репозиториях, вас не устраивает.

Обычно bash-completion включается автоматически для обычных пользователей, а для root - нет. Надо отдельно добавить в его .bashrc что-то типа такого:

if ! shopt -oq posix; then
 if [ -f /usr/share/bash-completion/bash_completion ]; then
  . /usr/share/bash-completion/bash_completion
 elif [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
 fi
fi

В Debian эта конструкция автоматически добавляется обычным пользователям. А в системном /etc/bash.bashrc она закомментирована. Можно её там раскомментировать тоже.

Если вдруг вам по какой-то причине это не нужно, пакет можете просто удалить. Теоретически, консоль может стать более отзывчивой, так как автодополнение добавляет некоторую задержку.

Пост чисто для расширения кругозора тем, кто не в курсе этого. Я сам много лет работал в консоли и не знал об автодополнении для команд. Ну и чтобы добавить полезности публикации, приведу несколько прикладных примеров автодополнения, про которые вы возможно не знали.

🔹killall <tab> - увидите список всех процессов, которые можно прибить, указав имя

🔹chown <tab> - увидите список пользователей

🔹apt <tab> увидите список команд для apt

🔹apt install mariadb-<tab> увидите все пакеты, начинающиеся с mariadb. Это иногда удобнее и быстрее, чем использовать apt search

🔹journalctl -u <tab> - вот это очень удобно, увидите список юнитов с логами

🔹systemctl restart <tab> - список всех сервисов, если список большой, то не очень удобно

🔹systemctl restart openvpn<tab> - вот это уже более практичный пример, потому что лично я всегда забываю правильные полные имена, когда у тебя несколько серверов запущены

🔹ip <tab> - будет полезно, если ещё в подкорке не записалось ip a, ip r и т.д.

Ну и так далее. Почти для всех популярных команд есть те или иные подсказки. Удобная штука, если постоянно работаешь в консоли.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin:
📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#bash
👍83👎1
August 31, 2026 2.3K 3 71