什么是环境变量

环境变量是操作系统用来存储系统配置信息的一种机制,简单来说就是告诉系统去哪里找可执行文件、库文件或者用户自己的程序路径。在Linux机器上,环境变量就像是一个个全局变量,系统启动时会加载这些变量,方便用户和程序直接调用。

比如你安装了Java或者Python,系统并不知道它们安装在哪里,这时候就需要通过配置环境变量来告诉系统这些程序的安装路径。很多刚接触Linux的朋友在安装软件后直接输命令发现报错“command not found”,大概率就是环境变量没有配置好。

怎么查看当前环境变量

linux系统环境变量生效_环境变量linux_linux 机器安装环境变量

在Linux机器上查看当前所有环境变量很简单,直接在终端输入env或者printenv命令,系统就会把当前所有的环境变量列出来,包括PATH、HOME、SHELL这些常见的变量。如果你想看某一个具体变量,比如查看PATH,可以用echo $PATH

这里面最常用的就是PATH变量,它决定了系统在哪些目录下搜索可执行文件。你可以看到PATH里面有很多用冒号隔开的路径,比如/usr/local/sbin/usr/local/bin/usr/bin等等。当你输入一个命令的时候,系统会按照这些目录的先后顺序去查找有没有对应的可执行程序。

如果你发现某个命令无法使用,先检查一下这个命令的安装路径是否已经添加到了PATH中。这个检查步骤虽然简单,但很多人会忽略,导致后面反复折腾。

linux 机器安装环境变量_linux系统环境变量生效_环境变量linux

临时设置环境变量的方法

临时设置环境变量适用于当前终端会话,关闭终端后就会失效。操作非常简单,直接用export命令就可以。比如你把某个软件安装在/opt/myapp/bin目录下linux系统日志,想临时把这个目录加到PATH里,输入export PATH=$PATH:/opt/myapp/bin

这里的$PATH表示保留原有的PATH内容linux 机器安装环境变量,然后加上新的路径,注意冒号是分隔符。如果你不加$PATH,直接写export PATH=/opt/myapp/bin,那原来的PATH就会被覆盖掉,很多系统命令会找不到,非常危险。

环境变量linux_linux系统环境变量生效_linux 机器安装环境变量

还有一种情况是设置自定义变量,比如设置JAVA_HOME,可以这样写:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk。这种临时设置方法适合测试或者临时使用,不影响系统全局配置。

永久配置环境变量怎么做

永久配置环境变量需要修改配置文件。Linux系统下常见的配置文件有几个,你需要根据自己的用户和需求选择。首先是全局配置文件/etc/profile,这个文件对所有用户生效,但需要root权限才能修改。修改后需要执行source /etc/profile让配置生效。

环境变量linux_linux 机器安装环境变量_linux系统环境变量生效

对于单个用户来说,更常用的是用户主目录下的~/.bashrc或者~/.bash_profile。这两个文件的作用略有不同linux 机器安装环境变量~/.bashrc在每次打开新的终端时都会执行,~/.bash_profile只在登录时执行一次。如果你用的是bash,推荐把环境变量配置写在~/.bashrc里。

具体操作是用文本编辑器打开文件,比如vim ~/.bashrcredhat linux下载,然后在文件末尾添加export PATH=$PATH:/your/path或者export JAVA_HOME=/your/java/path。保存退出后,执行source ~/.bashrc就可以立即生效。以后每次打开终端都会自动加载这些变量。

配置环境变量后需要注意的问题

环境变量linux_linux系统环境变量生效_linux 机器安装环境变量

配置完成后一定要验证一下是否生效。最简单的办法是重新打开一个终端窗口,然后执行echo $PATH或者echo $JAVA_HOME,看输出是否包含你添加的路径。如果路径没有出现,说明配置文件没有被正确加载,或者你写错了文件。

还有一个容易踩坑的地方是路径写错。比如路径里多了个空格,或者路径本身就不存在,这些都会导致配置失败。建议在添加路径之前先用ls命令确认一下这个目录是否存在。另外注意权限问题,有些目录普通用户没有执行权限,即使加到PATH里也可能报权限错误。

如果你修改了全局配置文件/etc/profile,建议谨慎操作,因为一旦写错,可能会影响所有用户甚至系统本身。最好先备份原文件,或者先在用户自己的配置文件中测试。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复