问:zsh 和 bash 默认的命令自动补全路径总结一下
好的 👍 我给你整理一下 zsh 和 bash 的命令自动补全(completion scripts)默认路径对比总结:
🐚 Bash 的默认命令补全路径
Bash 的补全主要依赖 bash-completion 包。安装后,常见路径有:
- 全局配置(系统级)
/etc/bash_completion/usr/share/bash-completion/bash_completion/usr/share/bash-completion/completions/(存放具体命令的补全脚本,比如git,docker等)
- 用户配置
~/.bash_completion~/.bash_completion.d/(自定义补全脚本目录,可能需要自己创建)
👉 Bash 会在 ~/.bashrc 中通过 [[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && . /usr/share/bash-completion/bash_completion 来加载。
🐚 Zsh 的默认命令补全路径
Zsh 内置 强大的补全系统(无需额外安装 bash-completion,但可兼容)。
- 系统级
/usr/share/zsh/functions/Completion/(官方补全函数,比如_git,_ssh,_apt等,文件名前通常带下划线_)/usr/share/zsh/site-functions/(第三方包或系统管理员额外放置的补全函数)
- 用户级
~/.zshrc里配置autoload -Uz compinit && compinit启动补全- Oh My Zsh 用户:
$ZSH/completions/~/.oh-my-zsh/custom/plugins/*/~/.oh-my-zsh/custom/completions/(这里面你可以放自定义补全文件,文件名通常以_开头)
✅ 总结对比表
| Shell | 系统级补全路径 | 用户级补全路径 |
|---|---|---|
| Bash | /usr/share/bash-completion/ /etc/bash_completion | ~/.bash_completion ~/.bash_completion.d/ |
| Zsh | /usr/share/zsh/functions/Completion/ /usr/share/zsh/site-functions/ | ~/.zshrc (配置 compinit) ~/.oh-my-zsh/custom/completions/ |
要不要我给你写一个 快速检查脚本,能自动检测当前系统里的 bash / zsh 补全路径 并列出来?