Linux如何配置环境变量?_LinuxPATH及自定义变量设置

说实话,对于Linux环境变量我还是摸着石头过河。
但后来我发现,只要弄清楚几个关键点,其实很简单。
我给大家讲一下我自己的理解和实践过程。

首先我们来说说用户级配置。
在写代码的时候,我想快速上手本地工具,比如使用IDEA调试Go程序。
此时,只需将编辑器路径直接添加到~/.bashrc即可。
我记得有一次直接使用 export IDEA_HOME="$HOME/apps/idea" ,然后将“$IDEA_HOME/bin”添加到我的 PATH 中。
保存后,浏览到源代码,每当您打开终端时就会看到该消息自动出现。
这非常酷。
但请记住,这些设置仅适用于您。
我的同事打开新终端仍然找不到IDEA。

我们来谈谈系统级配置。
在帮助我的公司设置 Java 环境时,我更改了 /etc/profile.conf。
当时我直接使用 sudo vi /etc/profile 将 JAVA_HOME 设置为官方推荐的路径。
保存并重新启动系统,以确保所有用户终端都能正确识别java命令。
但这里你必须非常小心。
有一次我用手指更改了某个系统工具的路径,结果我的系统崩溃了一半。
这是一场悲剧。
因此,在更改这些类型的文件之前进行备份,或者在 /etc/profile.d 中使用单独的脚本文件会更安全。

至于~/.bashrc和/etc/profile的区别,有一定的场景。
比如我本地安装了Node.js,自己开发的时候只想使用最新版本,但又不想污染全局环境。
这时我在~/.bashrc中单独设置NODE_HOME,然后使用import PATH="$NODE_HOME/bin:$PATH"。
当您以这种方式打开新终端时,您将拥有最新版本的 Node.js。
如果关闭并重新打开它,它仍然是系统默认值。
对于Java等基本环境,应将其放置在/etc/profile中以确保所有用户的一致性。

我有验证变量的习惯。
例如,安装Python环境后,首先检查echo $PATH路径是否正确,然后使用python --version检查版本号。
我曾经安装过Anaconda,发现没有效果。
我检查了一下,发现bash.bashrc中的PATH被清除了。
之前未找到此文件。
所以我们每次都要多验证两次。

如果删除变量,可能会出现陷阱。
我的一位同事将特定开发工具的路径添加到他的 PATH 中,后来他想删除该路径,但忘记了添加到哪里。
最终,他花了半天的时间,才将这些档案一一收集起来。
其实,有一个简单的方法。
首先,运行 echo $PATH 以查看包含哪些路径,然后找到该文件,注释掉该行,并指定源。

涉及 PATH 变量时有一个小技巧。
更新时,请务必使用“$PATH:/new/path”格式,不要只写入“/new/path”。
我以前犯过这个愚蠢的错误,导致我无法找到系统附带的工具。
还有权限问题。
用户文件你想改什么就写什么,但是更改系统文件时必须使用sudo,并注意不要误改关键变量。

总之,环境变量既不难也不简单。
重要的是要知道各个文件的范围,了解它们的加载顺序,并注意各种细节。
我目前的习惯是将个人变量放在~/.bashrc中,将系统变量放在/etc/profile中。
对于特殊情况,请使用 ~/.profile 或特殊脚本文件。
这使得管理更加清晰。

Linux 环境变量配置的 6 种方法,建议收藏!

方法一:export PATH=/home/uusama/mysql/bin:$PATH,暂时有效,当前终端。

方法二:~/.bashrc,用户级永久,重启终端或源即可生效。

方法三:~/.bash_profile,用户级永久,重启终端或源即可生效。

方法四:/etc/bashrc,系统级永久,重启终端或源生效,需要管理员权限。

方法五:/etc/profile,系统级永久,重启终端或源生效,需要管理员权限。

方法六:/etc/environment,系统级持久化,重启终端或源即可生效,需要管理员权限,无需导出。

LINUX如何配置环境变量_LINUX环境变量配置方法与实践

哈,我来给大家介绍一下Linux环境变量的问题。
我之前开发的时候也遇到过很多坑。

上周有客户问我为什么他在服务器上安装了Java,但java版本仍然是旧版本。
后来发现他自己创建了~/.bashrc,忘记添加export JAVA_HOME=/usr/lib/jvm/jdk1 .8 ...,导致冲突。
你生气不生气?
这些设置方法视情况而定:
1 . ~/.bashrc 这个是最常用的,开发的时候肯定改过。
例如,如果您安装IntelliJ IDEA,则必须编写export IDEA_HOME=/opt/intellij...。
每次打开新终端时,都会自动为您加载该文件。
它特别适合您个人使用。
所有已安装软件的路径和别名都放在这里。
缺点是如果你创建了一个新用户,他们将无法使用它,所以你必须自己重新配置它。

2 /etc/environment 这是很神奇的,所有登录的用户都可以读取它。
例如,如果你想将JDK设置为系统默认,就在这里写JAVA_HOME="/usr/lib/jvm/jdk1 1 ..."。
请注意,不要使用 echo 导出,而是直接写入 VARIABLE="value"。
该文件必须使用sudo修改,并且修改必须重启或者source /etc/profile才能生效。
上次帮我公司把Python版本改成3 .8 ,就改成了这个,但是我忘了出处了,终端还是显示3 .7 ,弄得我满头大汗。

3 /etc/profile.d/ 这是我认为最优雅的一个,特别适合系统管理员。
您创建一个 .sh 文件,例如 myjava.sh,在其中写入 export JAVA_HOME...,然后 chmod +x 使其可执行。
优点是易于管理。
例如,如果要更改Oracle的路径,只需更改myoracle.sh即可,无需触及其他文件。
我去年在CentOS 7 上部署了软件包。
我用这个方法来管理文件中的所有环境变量。
最后,我运行了部署脚本,一切都准备好了。

4 临时变量这是最简单的,可以直接导出临时使用。
例如,export TEMP_DIR="/tmp/mytemp" 运行脚本后将被删除。
我经常使用这个测试脚本,比如export PATH=$PATH:/mytool/bin。
它可以运行一次并且无需更改文件即可完成。

优先级尤为重要! 临时变量>用户级别>系统级别。
后面设置的会覆盖前面设置的。
上次我添加了一个临时变量DEBUG=1 ,但是发现程序没有调试好,因为后来系统中有一个配置文件也设置了DEBUG=0。
因此,在更改系统环境变量之前,必须先取消设置临时变量。

验证最简单,echo $VAR_NAME即可。
我习惯改变环境变量后打开一个新终端并回显JAVA_HOME,看看是否正确。

常见问题:变量不生效? 检查您是否忘记了来源 /etc/profile /dev/null。
权限不够? 须藤! 文件错误? 不要写相对路径,使用绝对路径,并且不要添加空格。
我以前写的是export PATH = /bin,但是一直报错。
后来发现是等号,不是单引号。

无论如何,这取决于你。
开发使用~/.bashrc,系统级使用/etc/environment,批量部署使用/etc/profile.d/,导出临时使用。