Unix系统中如何设置环境变量?
老胡的看法:
Linux中的环境变量$PATH通常是定义了可执行程序和脚本所在的路径,当我们在Linux系统中通过终端敲命令的方式来运行某个程序或者脚本的时候,系统就会根据$PATH定义的路径依次去寻找这个命令。有时候我们会临时安装一些新的程序或者脚本,需要直接通过它们的名字来运行,这时候就需要把它们所在的目录加到$PATH中,例如:
export $PATH=$PATH:/usr/share/command/bin这样是临时设置环境变量$PATH,当shell关闭的时候就会失效,想要永久生效,有两种思路:
一、系统范畴内永久生效
1、修改/etc/environment。
将
PATH=PATH:/usr/share/command/bin加入到/etc/environment文件中。/etc/environment中对环境变量的赋值会对所有用户起作用,并且无论使用X窗口环境还是纯命令行终端,都会加载其中的变量。
(老胡新装的系统,environment还是空的)
需要注意的是,在environment中定义环境变量时无法使用其他变量。以下这样定义$PATH是不会生效的:
JAVA_HOME="/usr/lib/java"PATH="$JAVA_HOME/bin:$PATH"2、修改/etc/profile 和在 /etc/profile.d/
下面添加自定义环境变量的脚本。
这两个地方的文件只对shell起作用。
二、用户范畴内永久生效
1、修改~/.profile
这个文件的作用类似/etc/profile,对当前用户下由终端启动的所有程序和bash脚本生效。不同的用户,在各自的~目录下各有一份这样的配置文件,可以各自定义自己喜好的环境变量。
2、修改~/.bashrc
在这个文件里定义的环境变量,只在当前用户的bash shell中有效。如果你用的是zsh shell,那么就修改~/.zshrc
。这个文件里定义的环境变量不能用于其他程序。
总结一下,使环境变量$PATH永久生效可以在系统范畴内实现,也可以在用户范畴内实现,另外的区别是可以使用$PATH的情形。Linux提供了丰富灵活的实现方式,可以根据具体的环境做出不同的配置搭配,可以不互相影响。
如果我的回答对你有点价值,请莫忘点赞加关注,谢谢!欢迎在评论区发表各种意见。
本文为作者原创,严禁转载,违者必究。