mac重启后位于~/.bash_profile配置不生效问题
正常情况下,这种问题其实不太会出现。但偏偏就在某次启动终端时,一个异常引起了注意。

打开终端,标题栏上赫然多了一个与平时不一样的标记—— ./.bash_profile 。这不太对劲。熟悉 .bash_profile 的朋友都知道,在 zsh 环境下出现这个文件路径,通常意味着环境变量配置发生了某种变化。
第一反应是去修改 /etc/profile 文件,改完重启后却发现修改根本没生效。这就引出了两个可能的方向:
- 启动终端时根本没加载
/etc/profile; - 有其他配置在加载后覆盖了这次修改。
为了确认,尝试删除了所有可能影响环境变量的额外设置,只在 /etc/profile 里做改动,结果依然无效。这说明问题很可能不在配置文件本身,而是压根没找对配置文件——环境变量并未按预期的方式生效。
于是开始研究 zsh。说实话,之前并没有认真琢磨过 macOS 终端底层的 shell,这次也算补课。试着找它的配置文件,结果居然没找到,这就有点尴尬了。回想一下,并没有主动安装过 zsh,那它很可能是系统升级或者安装其他软件时被带入的。既然找不到现有配置,那就手动新建一个 ~/.zshrc 文件。重启终端后,一切正常了。
在 macOS 使用 zsh 作为 shell 时,如果没有找到它的配置文件,确实会出问题。补全配置文件就能解决,环境问题也算告一段落。
那么 zsh 到底是什么时候生效的呢?带着好奇去 Apple 官网翻了一下,还真有答案:https://support.apple.com/zh-cn/HT208050。顺带还意外收获了如何修改默认 shell 的方法——刚冒出“怎么改默认 shell”的疑问,答案就迎面而来,顺便把 macOS 基础知识点也补上了。
反思
其实这算是个比较基础的问题。如果直接把问题抛给搜索引擎,会冒出一堆解决方法。现在回头看那些搜索结果,大部分给的方案都是正确的。比较幸运的是,当时并没有急着搜答案——或者说,解决这个问题时正好不太着急,才有了先思考后解决的“机会”。反观那些搜索结果,好像并没有多少人真正去说解决思路,或者解释问题为什么要这么解决。如果下次再遇到类似问题,该从哪儿检查、朝哪个方向着手,依然会有些迷茫。
突然就有了写下这个解决过程的冲动。希望有跟我一样愿意琢磨问题的人,能从中看到更多思考问题的思路,而不仅仅是复制粘贴一条命令。