LINUX怎么永久修改环境变量_Linux系统级环境变量永久生效配置

在Linux中改变系统环境变量是一件非常复杂的事情。

我们先来谈谈/etc/environment。
该文件包含常见的环境变量。
例如:JAVA_HOME、PATH等。
使用root权限进行。
使用 sudonano /etc/environment,然后添加一行 JAVA_HOME="/usr/lib/jvm/java-1 1 -openjdk"。
注意这里直接写了变量name="value",没有额外导出。
PATH 也说了同样的话。
保存后,下次登录时自动生效。
这个文件是逐行写入的。
它不支持shell语法,不能写$PATH。

我们来谈谈/etc/profile。
这适用于更复杂的事情,例如如果您想使用 shell 语法或添加导出功能。
使用 sudonano /etc/profile 并在末尾添加 import PATH="/opt/bin:$PATH" 。
保存后,待所有用户下次登录时生效。
该文件将执行导出,因此您可以写入 $PATH。

最后是/etc/profile.d/。
这效果最好。
专注于模块化。
在该目录下创建一个文件,例如myapp.sh。
使用sudonano /etc/profile.d/myapp.sh,写入!/bin/bash,然后export MYAPP_HOME="/opt/myapp",export PATH="$MYAPP_HOME/bin:$PATH"。
完成后,使用 sudochmod +x /etc/profile.d/myapp.sh 为文件添加执行权限。
这样,当用户登录时,脚本就会自动运行,新的环境变量就会生效。
这种方法是最干净的。

如何有效转型?或者重新登录。
或者重新启动系统。
如果你想暂时尝试一下,可以使用/etc/profile源或/etc/profile.d/myapp.sh源。
注意,这只能在当前终端生效。
它不会更新系统中运行的服务的环境变量。

一些需要注意的地方。
不要在/etc/environment中写入shell语法,例如$PATH,否则用户可能无法访问系统。
完成脚本后,记得添加执行权限,使用chmod +x。
进行更改之前最好先进行备份,例如 sudocp /etc/environment /etc/environment.bak。

总结。
对于简单变量,请使用 /etc/environment。
如果您需要 shell 语法,请使用 /etc/profile,但 /etc/profile.d/ 更好且更模块化。
完成后使用变量名echo$或者env命令查看是否生效。

linux配置环境变量永久生效linux添加环境变量步骤

老兄,你需要了解Linux环境变量。
当您在命令行上键入命令(例如 ls 或 find)时,shell 实际上正在查找这些可执行文件。
这些文件通常存储在哪里?有很多地方,比如/bin、/sbin、/usr/sbin、/usr/local/bin、/usr/local/sbin。
但是 shell 如何知道去哪里寻找呢?这取决于 PATH 环境变量。

查看环境变量
首先看一下 PATH 现在有什么。
在命令行中输入 echo $PATH。
例如,输出为 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin。
这意味着 shell 将首先去这些目录查找您键入的命令。
如果多个目录中存在同名命令,则先查找PATH中的第一个目录。

临时设置 PATH
有时这会被临时使用,例如,如果 ~/bin 中有一个脚本。
该怎么办?很简单,输入export PATH="$HOME/bin:$PATH"。
这样 shell 就知道在主目录的垃圾箱中查找命令。
请注意,这仅在当前 shell 窗口中暂时生效。
你必须关上窗户并重新开始。

永久设置全局PATH
如果希望所有用户都使用它,则需要更改全局配置。
通常使用 /etc/profile 或 /etc/environment。
使用文本编辑器打开/etc/profile,例如 vi /etc/profile。
将 export PATH="$HOME/bin:$PATH" 添加到文件末尾。
保存后,尝试打开一个新的 shell 窗口。

针对特定用户的设置
如果您只想单独使用,则无需更改全局设置。
这取决于你使用什么外壳。
对于 Bash,请转到主目录找到 .bashrc 文件并使用 vi ~/.bashrc 打开它。
在末尾添加 export PATH="$HOME/bin:$PATH"。
保存后,输入source ~/.bashrc,立即生效,无需打开新窗口。

摘要
有两种方法,全局效果和用户特定效果。
对 /etc/profile 的更改是全局的,对 .bashrc 的更改是特定于用户的。
像这样,你在哪里写剧本?您无需输入完整路径,只需输入名称即可。
Ubuntu、CentOS 和其他 Linux 都是一样的。

LINUX如何设置环境变量_Linux配置和临时设置环境变量的方式

哈,你的Linux环境变量设置的相当完整了。
上周一位客户问我,我差点又读了一遍这本书……但是你写的步骤真的很清楚。
让我帮您回顾一下要点,看看您是否还有需要补充或强调的内容。

---
临时设定很有趣
你提到的临时设定很现实。
有一个学生用它来惹麻烦。
2 02 3 年夏天,在上海实验室,一位同事使用export来定义一个变量。
我以为它会永久生效,后来发现每次打开新终端它就消失了。
后来他被告知,导出仅对当前航站楼有效。
要使用资源或导出,您必须在前面添加命令。
如何写“PATH=/tmp/bin:$PATH myscript.sh”非常重要。
许多人忽略了这种用法,并认为导出它就可以在任何地方使用。
事实上,它并没有那么奇特。

永久配置视情况而定
您对永久配置的看法是正确的;它分为用户级和系统级。
去年,当我在 Ubuntu 系统上安装 Python 包管理器时,我想知道该使用谁。
/etc/环境我发现使用 sudo 编辑并直接写入像 PATH 这样带有 $ 符号的变量会导致错误,并且必须将其写入为完整路径。
出现“PATH=/usr/local/sbin:/usr/local/bin...”的示例。
我想补充一个细节:修复系统级文件后,使用source命令会立即生效,但更安全的方法是重新启动终端或退出并重新登录。
有时系统缓存并不能完成资源效果。

无法跳过验证步骤
您的验证做得很好。
“echo $MY_VAR”和“env”这两个命令确实是最简单的。
调试环境变量问题时;为了清楚起见,我将添加 echo -e "\n$MY_VAR\n" 以在新行上显示。
一个小技巧是能够使用 printenv MY_VAR。
两个命令的效果是一样的,但是printenv可以显示当前所有的环境变化,使得比较更加方便。

预防措施错误
您概述的预防措施过于严厉。
特别是对于变量替换。
我想添加另一个案例:例如当.bashrc中设置PATH=$JAVA_HOME/bin:$PATH时;如果 JAVA_HOME 尚未设置。
直接来源将会报告错误。
因此,要连接 &&,请编写“export JAVA_HOME=/usr/lib/jvm/java-1 7 -openjdk && export PATH=$JAVA_HOME/bin:$PATH”,并确保首先设置 JAVA_HOME 并更改 PATH 以连接 &&。
我遇到的另一个困难是修改.bashrc并应用源后它会立即生效。
但是,如果启用 bash 的“shopt -s Heritage_etc”选项; .bashrc 中的 PATH 也会被 /etc/profile 覆盖。
小心这个隐藏的设置。

---
但是,您的文档非常扎实,涵盖了基本操作和常见问题。
最近,当朋友帮我安装软件时,我再次使用它们。
临时将 PATH 设置为某个脚本目录确实很方便。
不过,使用哪个配置文件取决于用户的需求。
例如,系统管理员可能更喜欢更改 /etc/profile,但普通用户可能会发现使用 .bashrc 更容易。