debian上的服务命令的tab完成

我有两个安装了debian squeeze的系统.在我键入的一个系统上:
service <TAB>

它向我展示了所有可用的服务(来自/etc/init.d)

在另一个系统上,它显示当前目录中的所有文件.有谁知道哪个设置改变了这种行为?

更新:

文件/etc/bash_completion.d/service丢失了.我从它工作的机器上复制了它.如果我输入完整的-p | grep服务它告诉我:

complete -F _service service

在它不工作的机器上,该命令没有显示任何内容.我在命令行中执行了完整的-F _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

如果没有这样或者它被评论(#after~ / .bashrc :)然后添加/取消注释

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

到〜/ .bashrc并重新阅读

. ~/.bashrc

之后它应该工作正常.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...