
linux下使用source /etc/profile保存配置后,新的环境变量只能在一个终端里面有效...
/etc/os-release:这是所有发行 hybrids(如 deb 系统)都必须遵循的文件,包含了大多数系统信息。 /etc/suenv:这是在用户登录时会被读取的环境文件,实际作用可能因具体 Linux 发行版有所不同。 /etc/profile:这是每一位用户登录时会被默认读取的配置文件,主要用于设置用户的环境变量。 /etc/environment:在用户登录时系统会先读取这个文件,然后根据读取的值去解析其他文件(如 ~/.bashrc 和 ~/.zshrc 等:这是个人的Shell配置文件,通常在每次 Shell 被打开时都会被读取。 清除现有配置:
发布日期:2025-04-07 15:07:40
浏览次数:6
分类:精选文章
本文共 1750 字,大约阅读时间需要 5 分钟。
在 Linux 系统中,当你在 /etc/profile
中添加环境变量后,只能在当前终端中发现生效。如果你重新打开终端窗口,会发现那个环境变量已经失效。这可能让人觉得有一些莫名的困惑。让我们一起来探讨这个问题的解决方法及相关知识。
问题描述
在为系统或者自己创建环境变量时,很多人会发现一个现象:在修改了 /etc/profile
文件后,使用 source /etc/profile
命令后,环境变量确实是生效的。但是,当重新开启一个终端窗口,或者重新登录系统时,这些环境变量却不见了,变得不可用。
解决方法
这种情况是因为环境变量的读取顺序和机制决定的。环境变量的生效需要遵循特定的优先级顺序:
/etc/profile
)。环境变量优先级顺序
从高到低的顺序是:
/etc/os-release > /etc/suenv > /etc/profile > /etc/environment > ~/.bashrc
这样设计的目的在于让大系统级别的环境变量优先覆盖用户自定义的设置,
如何永久设置环境变量
如果你希望设置的环境变量能够在系统重启后依然生效,可以按照以下步骤操作:
- 打开
~/.bash_profile
文件,将包含的关于~/.bashrc
的定义移除。你会发现,这个文件通常是用来执行~/.bashrc
的。 - 如果你有多个 Shell 软件(如 Bash、Zsh 等),需要对应地清除相关配置。
在
/etc/bashrc
中设置环境变量:- 初始化环境变量,建议将环境变量配置放在
/etc/bashrc
文件中,这样会对所有用户起作用。 - 如果希望环境变量仅对特定用户起作用,可以在对应用户的
~/.bashrc
或~/.zshrc
中进行配置。
- 初始化环境变量,建议将环境变量配置放在
验证环境变量:
- 使用
source .bashrc
或者source /etc/bashrc
运行命令,确保添加的环境变量已经生效。 - 使用
env
命令可以查看当前的环境变量列表,确认是否生效。
- 使用
- /etc/profile:这是系统级的配置文件,每个用户登录时都会读取一次。
- /etc/environment:操作系统在读取用户配置文件前会优先读取这个文件来设置默认的环境变量。
- ~/.bashrc:作为个人 Shell 配置文件,包含了用户对 Shell 环境的定制设置。
为什么需要重启终端才能看到环境变量的变化?
- 是因为新的 Shell 实例需要重新读取配置文件。每个终端窗口对应一个 Shell,重启 Shell 后会重新加载配置文件。
如何确保环境变量在领 disciplined 终端中生效?
- 使用
source /etc/profile
或者source ~/.bashrc
以及source /etc/bashrc
等命令,可以在当前终端中立即生效这些设置。
- 使用
如何避免每次登录时都需要输入密码?
- 如果你是通过 SSH 登录的,可以在
/etc/ssh/sshd_config
中设置AllowUsers
或者PermitRootLogin
等参数,以批量允许访问,或者添加到认证文件中。
- 如果你是通过 SSH 登录的,可以在
查看相关配置
常见问题
其他推荐文章
如果你对环境变量管理感兴趣,或者想更深入地了解如何优化你的 Shell 配置,可以参考以下内容:
通过遵循以上步骤,你可以方便地在系统级别或者个人级别设置环境变量,并确保这些设置能够在不同情况下始终生效。
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月26日 05时04分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux 基本bash命令
2023-02-01
Linux 基金会与 RISC-V 基金会合作推广开源芯片
2023-02-01
linux 复制文件到当前目录
2023-02-01
linux 如何使用命令行隐藏特定进程和端口信息?一文教会你
2023-02-01
Linux 子系统(Windows Subsystem for Linux)启用详解
2023-02-01
Linux 学习总结(85)—— 后端开发人员需要知道的 Linux 服务器性能指标总结
2023-02-01
Linux 学习总结(89)—— sed 入门详解
2023-02-01
Linux 学习总结(91)—— 100 个网络基础概念问答
2023-02-01
Linux 学习总结(92)—— Linux 高效率使用技巧
2023-02-01
Linux 学习总结(93)—— Linux 管道符使用总结
2023-02-01
Linux 学习笔记__Day2
2023-02-01
Linux 学习笔记之超详细基础linux命令 Part 2
2023-02-01
Linux 安全与运维指南(非常详细)零基础入门到精通,收藏这一篇就够了
2023-02-01
Linux 安装
2023-02-01
linux 安装mysql8.0.x
2023-02-01
linux 安装rabbitmq报错及问题
2023-02-01
Linux 常用命令
2023-02-01