source是在当前shell中直接执行配置文件的内置命令,使export变量、alias别名、PATH等修改立即生效;它不启动子进程,而./script.sh会在子shell中运行导致更改丢失。

修改环境变量后,用 source 命令(或简写为 .)就能让更改立刻在当前终端生效,不用关掉重开。
source 是什么,为什么它能立即生效
source 不是启动新 Shell,而是在当前 Shell 环境里直接执行配置文件里的命令。所以 export 设置的变量、alias 定义的别名、PATH 的追加,都会马上反映到当前会话中。
它和直接运行 ./script.sh 有本质区别:后者在子 Shell 中执行,退出后所有改动就消失了;source 则“就地更新”,改完即用。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
常用配置文件与对应 source 命令
不同文件控制不同场景下的环境加载,选对文件再 source 才有效:
-
~/.bashrc:日常打开终端时自动加载,适合 alias、PATH 追加、提示符等交互式配置。
→ 执行source ~/.bashrc -
~/.bash_profile:仅在登录 Shell(如 SSH 登录、图形界面首次启动终端)时读取。
→ 执行source ~/.bash_profile(注意:很多系统默认让它自动 source ~/.bashrc) -
/etc/profile:系统级登录配置,影响所有用户。
→ 需 root 权限:sudo source /etc/profile -
/etc/environment:非 Shell 脚本格式,纯键值对,不支持 $ 变量展开。
→ 修改后需source /etc/profile或重新登录才间接生效(该文件本身不能直接 source)
操作时要注意的关键点
避免常见失误,确保生效可靠:
- 路径必须写全,比如
source ~/.bashrc,不能只写source .bashrc(缺少波浪号 ~ 会导致找不到文件) - 如果用了
export PATH=/new/path:$PATH,注意顺序——前置路径优先匹配,可能覆盖ls、cp等系统命令 - 修改后建议验证:
echo $PATH或which node看是否包含你新加的路径 - 若 source 后仍不生效,检查配置文件里是否有语法错误(比如漏了 export、引号不配对),可用
bash -n ~/.bashrc静态检查
替代方案:exec bash 和新开终端的区别
有人用 exec bash 替代 source,它会替换当前 Shell 进程,效果类似新开终端,但会丢失当前 Shell 的历史命令、未保存的变量、当前目录栈等上下文;而 source 更轻量、更可控,是运维中首选方式。

















