本文共 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
的。在 /etc/bashrc
中设置环境变量:
/etc/bashrc
文件中,这样会对所有用户起作用。~/.bashrc
或 ~/.zshrc
中进行配置。验证环境变量:
source .bashrc
或者 source /etc/bashrc
运行命令,确保添加的环境变量已经生效。env
命令可以查看当前的环境变量列表,确认是否生效。为什么需要重启终端才能看到环境变量的变化?
如何确保环境变量在领 disciplined 终端中生效?
source /etc/profile
或者 source ~/.bashrc
以及 source /etc/bashrc
等命令,可以在当前终端中立即生效这些设置。如何避免每次登录时都需要输入密码?
/etc/ssh/sshd_config
中设置 AllowUsers
或者 PermitRootLogin
等参数,以批量允许访问,或者添加到认证文件中。如果你对环境变量管理感兴趣,或者想更深入地了解如何优化你的 Shell 配置,可以参考以下内容:
通过遵循以上步骤,你可以方便地在系统级别或者个人级别设置环境变量,并确保这些设置能够在不同情况下始终生效。
转载地址:http://qbzfk.baihongyu.com/