Думаю все, кто работают в консоли Linux, знают про автодополнение имён файлов и директорий.
Я почти всегда на серверах использую оболочку 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 и т.д.
Ну и так далее. Почти для всех популярных команд есть те или иные подсказки. Удобная штука, если постоянно работаешь в консоли.
#bash