У меня две системы с установленным debian squeeze. В одной системе, когда я печатаю:
service <TAB>
он показывает мне все доступные услуги (из /etc/init.d)
в другой системе он показывает мне все файлы из текущего каталога. Кто-нибудь знает, какой параметр меняет это поведение?
ОБНОВИТЬ:
Файл /etc/bash_completion.d/service отсутствовал. Я скопировал его с машины, на которой он работает. Если я напечатаю complete -p | grep service
он показывает мне:
complete -F _service service
На машине, где она не работает, эта команда ничего мне не показывает. Я казнил complete -F _service service
в командной строке после этого команду service <TAB>
показывает мне:
service -su: completion: function `_service' not found
эта функция определена в служебном файле, который я недавно скопировал, по некоторым причинам ее нельзя найти ...
Прежде всего, проверьте, установлен ли bash-completion:
$ dpkg -l bash-completion | tail -1
он должен вывести что-то вроде:
ii bash-completion 1:1.3-1 programmable completion for the bash shell
Если вывод пуст, установите его с помощью:
aptitude install bash-completion
Затем проверьте, включен ли он:
$ grep -A 2 bash_completion ~/.bashrc /etc/bash.bashrc
Должен вывести что-то вроде
~/.bashrc:if [ -f /etc/bash_completion ]; then
~/.bashrc: . /etc/bash_completion
~/.bashrc:fi
Если ничего подобного или он прокомментирован (есть #
после ~/.bashrc:
) затем добавьте / раскомментируйте
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
в ~ / .bashrc и перечитайте его с помощью
. ~/.bashrc
После этого все должно работать нормально.
У меня была такая же проблема, но «вкладка» показывала только две из множества служб. Посмотрев на / usr / share / bash-Completion / bash_completion, вы увидите:
_sysvdirs()
{
sysvdirs=( )
[[ -d /etc/rc.d/init.d ]] && sysvdirs+=( /etc/rc.d/init.d )
[[ -d /etc/init.d ]] && sysvdirs+=( /etc/init.d )
# Slackware uses /etc/rc.d
[[ -f /etc/slackware-version ]] && sysvdirs=( /etc/rc.d )
}
в моем случае /etc/rc.d/init.d существовал и имел только две службы. После удаления этого каталога все работало нормально.