Автодополнение команд bash

Материал из Lblss.ru
Перейти к: навигация, поиск

В некоторых ОС, в частности в ALT Linux и FreeBSD возникают некоторые трудности при вводе опций команд. В частности, опции install или update команды apt-get приходится полностью вбивать ручками, так как на них не действует автокомплит (аводополнение) по TAB. В то же время,

Решение довольно простое, однако, на FreeBSD такой complite, как оказалось, работает не совсем так как хотелось бы. Во всяком случае, на Ubuntu и Debian подсказки/дополнения получаются куда более ожидаемыми на мой взгляд.

Ну да ладно, уж что есть... Ставим пакет bash-completion. На FreeBSD 8.1 (мож и на других версиях тоже) вместо bash-completion рекомендуют использовать bash-completion-classic, а на 7.1 поставился bash-completion:

$ sudo portinstall bash-completion

На ALT Linux:

$ sudo apt-get install bash-completion-classic

Далее на FreeBSD (это будет видно в консоли при завершении установки) добавляем для системы в целом файл /etc/profile или для юзера в ~/.profile (кому как нравится) несколько строк:

if [ -f /usr/local/etc/bash_completion ]; then
 . /usr/local/etc/bash_completion
fi

Разумеется, для Линуксов будет чуток иначе - файлы /etc/bashrc или ~/.bashrc:

if [ -f /etc/bash_completion ]; then
 . /etc/bash_completion
fi

Однако, это не решит проблему с автодополнением после довольно часто используемой при администрировании команды sudo. Добавляем ещё строку - и проблема решена:

complete -cf sudo
Персональные инструменты