Bash完成在root用户中不起作用


10

我在12.04上,我试图找到一种在root用户中启用Bash完成的方法。

关于如何做到这一点的任何想法?



尝试键入什么时,bash补全功能不起作用吗?还是根本不起作用?
harisibrahimkv 2012年

在尝试输入ROOT时,它不起作用,在普通用户中,它工作得很好,例如:root#apt-get install gua [tab] [tab]它必须显示类似Guake的内容,但它不会显示其他内容,当我使用普通用户并在命令前使用额外的“ Sudo”时,它显示相同的内容...
T0M XeOn LuCiFeR 2012年

1
您可以添加@ T0MXeOnLuCiFeR的输出sudo cat /root/.bashrc吗?
lumbric

4
@ T0MXeOnLuCiFeR您介意不写“喜欢这个短语吗?”,这会使内容更难阅读且完全没有意义。
布鲁诺·佩雷拉

Answers:


23

本问答中所述,可以在文件.bashrc中启用Bash完成。在您的情况下,这似乎在用户的.bashrc中是正确的,但在根目录的.bashrc中却不正确。后一个文件位于中/root/.bashrc。以您喜欢的文本编辑器作为根打开此文件(例如,通过运行sudo gedit /root/.bashrc),并#在最后三行的开头删除:

你必须更改线路98-100

#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
#    . /etc/bash_completion
#fi

...至:

if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

然后关闭您的终端,然后重新打开它们。


tnx,我仍然有问题,请参阅我的意思是子命令,例如当您键入apt-get时,您将要键入“安装”,然后键入前3个字,然后在普通用户中按Tab键,它可以在root用户中使用不....我现在该怎么办...?
T0M XeOn LuCiFeR 2012年

我是DID,您对我说的是...。但是它不起作用,您还有其他想法吗?
T0M XeOn LuCiFeR 2012年

@ T0MXeOnLuCiFeR我很确定这是您问题的根源。您是否cat再次查看您是否确实按照我的建议更改了文件?您关闭并重新打开所有终端了吗?如果不是,请尝试. /etc/bash_completion手动运行(请注意有一个.!)。
lumbric

是的,我确实做到了。。。反正Tnx变得更好了,但是却不是我想的那样。我检查了更多细节。
T0M XeOn LuCiFeR 2012年

您尝试. /etc/bash_completion手动运行@ T0MXeOnLuCiFeR 吗?
lumbric

1

通过在“ etc”中编辑文件“ bash.bash.rc”,我成功地在Ubuntu 12.04 LTS中启用了“ bash完成”。

我刚刚删除了第32-34行中的“#”,bash完成了“ sudo”的工作现在很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.