我使用的是 Mac,并且刚刚使用 Oh-my-zsh 从 Bash 迁移到 Zsh。
一切正常,除了我的 $PATH 现在缺少几个条目,例如 nodeJS 二进制文件的路径。
我目前使用的解决方法是从 bash 复制 $PATH 并将其粘贴到 .zshrc 中,这并不是很干净。
有没有更好的方法让 zsh 上的 $PATH 拥有 bash 上的所有条目?
答案1
一般来说,在大多数类 Unix 系统上,shell 在 /etc 中有一些基本配置文件。重要的文件名模式包括任何提及 shell 名称的内容,至少对于 bash,包括文件“profile”。这些相同的文件可能会呈现为 .,例如 os .cshrc、.bashrc 和 .profile 等。
Bash,当作为登录 shell 启动时,sources /etc/profile
(如果该文件存在)。读取该文件后,它会按顺序查找~/.bash_profile
、~/.bash_login
、 和。~/.profile
在这些文件中,可以更改 PATH,但它也可以获取其他程序来设置路径。如果它是交互式 shell,但不是登录 shell,它将来源~/.bashrc
.
对于 Mac,检查 /etc/profile 会发现一个名为“path_helper”的程序,该程序的手册页显示它喜欢在 /etc/path.d 中存储额外的路径。
该模式 .d 也被广泛使用,并且是查找更多配置文件的好地方。