Gentoo:请安装bashcompletion package

Gentoo将bash completion单独做成了一个package。

而且安装完成之后,可以用:

eselect bashcomp list -- 查询所有支持bash completion的模块,比如我们最常用的git, git-prompt

eselect bashcomp enable <module>

所以,非常的方便。一定要安装,否则git就没有bash completion了。

看了一下大概的原理,当bash-completion被安装之后,在/etc/profile.d目录下会生成一个文件:bash-completion.sh

当一个module被enable了之后(假设不是global enable),会在当前用户主目录下生成目录:.bash_completion.d,这个目录包含了被enable的module的一个link文件,link指向对应的module的bash completion配置。

所以,最后逻辑是:

- 用户登录,/etc/profile被执行

- /etc/profile执行/etc/profile.d下的所有脚本

- /etc/profile.d/bash-completion.sh执行~/.bash_completion.d目录下的所有文件

如果是global enable,那无非就是bash-completion.d目录的位置不同而已。/etc/profile.d/bash-completion.sh会查找global和user的所有bash_completion.d,然后挨个执行。 

原文地址:https://www.cnblogs.com/super119/p/2872348.html