我有两个安装了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运行:
原文链接:https://www.f2er.com/bash/385378.html$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
之后它应该工作正常.