Автодополнение имён хостов из LAN в консоли

Мне по работе часто приходится подключаться к машинам в локальной сети через SSH. Некоторые IP-адреса запоминаются, но всё же чертовки удобно, когда для такой банальной вещи, как имена локальных машин, работает автодополнение.

В принципе, имена хостов часто несложно получить с помощью Avahi (avahi-browse). Странно — думал я, — почему до сих пор никто не догадался сделать это в bash_completion?

Но оказалось, что всё гораздо хитрее. Автодополнение с помощью avahi-browse было реализовано в bash_completion, но начиная с какой-то версии было убрано из-за жалоб пользователей (действительно, когда в локалке слишком много машин, автодополнение начинает тормозить).

Это оказалось довольно легко исправить! В файле /usr/share/bash-completion/bash_completion надо раскомментировать часть функции _known_hosts_real(), отвечающую за Avahi (ищется текстовым редактором). Далее дописываем export COMP_KNOWN_HOSTS_WITH_AVAHI=1 в свой .bashrc и радуемся жизни. (Ах да, не забываем установить avahi-browse, который лежит в пакете avahi-utils в Debian).

Оставить комментарий