为非特权用户启用 apt-get 自动完成功能?

为非特权用户启用 apt-get 自动完成功能?

我已经在 SUDO 中启用了无需密码的 apt-get ,并且也需要启用它的 bash 自动完成功能,但是该如何操作呢?

If i try to source that file:
%> . /etc/bash_completion.d/apt
No command 'have' found, did you mean:
 Command 'vave' from package 'lipsia' (universe)
 Command 'havp' from package 'havp' (universe)
 Command 'haxe' from package 'haxe' (universe)
 Command 'dave' from package 'libhttp-dav-perl' (universe)
 Command 'save' from package 'atfs' (universe)
have: command not found
No command 'have' found, did you mean:
 Command 'vave' from package 'lipsia' (universe)
 Command 'havp' from package 'havp' (universe)
 Command 'haxe' from package 'haxe' (universe)
 Command 'dave' from package 'libhttp-dav-perl' (universe)
 Command 'save' from package 'atfs' (universe)
have: command not found

答案1

该函数have()在 中定义/etc/bash_completion,因此无法/etc/bash_completion.d/apt单独执行。

我认为你需要运行命令

. /etc/bash_completion

然后它将执行目录中的所有完成脚本/etc/bash_completion.d

但是,我不确定你为什么需要这样做。在我的系统(natty 和 oneiric)上,apt-get无论有没有 , 的补全都可以正常工作sudo

答案2

从您的提示来看,您似乎正在使用zsh,这是真的吗?

bash-completion,正如其名称所示,是 的补全bash,因此不能保证它也能用于其他 shell,尽管它与 部分兼容bash

相关内容