linux中添加环境变量
一般在/etc/profile中添加环境,但是建议在/etc/profile.d/下创建一个以.sh结尾的文件
sudo touch /etc/profil.d/my_env.sh
sudo gedit /etc/profil.d/my_env.sh
示例—添加JAVA环境:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212 # 创建一个JAVA_HOME的全局变量
export PATH=$PATH:$JAVA_HOME/bin # 将java的路径添加到PATH中
注意:全局变量需要用大写,局部变量用小写,export是将局部变量变为全局变量
重启环境:只需要重新执行/etc/profile
source /etc/profile
补充知识:Linux 环境变量相关知识点
1. PATH
PATH环境变量定义了用于进行命令和程序查找的目录,便于外部命令的查找,并且目录之间是通过冒号:分隔开的
echo $PATH
如果命令或者程序的位置没有包括在PATH的目录中,如果不使用绝对路径shell是没有办法找到的。
解决办法:在PATH中添加路径
PATH=$PATH:路径
因为PATH是bash shell默认的环境变量,因此可以修改它的值,又由于PATH的目录分割符是冒号,需要加冒号进行分割。但是现在这个PATH只在当前shell环境下有用,如果想在新的shell中同样有用,需要将它导出export,才能让子shell使用
export PATH=$PATH:路径
但是现在这种情况只能持续到退出或重启系统,因此了为了环境的持久化,将环境变量写进到/etc/profile或者在/etc/profile.d/目录下创建一个以.sh结尾的文件,但是建议将环境变量放到/etc/profile.d/的目录下
2. 为什么环境变量要放在这个/etc/profile.d目录下面
如果讲环境变量放在/etc/profile,如果升级了所用的发行版本,该文件也会更新,就会导致环境变量配置丢失了。
下图为/etc/profile的部分内容,bash shell每次启动都会执行/etc/profile.d/中以.sh结尾的文件,因此建议将环境返在/etc/profile.d下。

3. source 命令
source命令的功能是用于指定文件中读取和执行命令,可以用于修改后的文件,使里面的参数理解生效。
4.ubuntu系统下的/etc/profile和/etc/bash.bashrc的作用
(1)./etc/profile文件
profile文件的作用:
用于设置系统级的环境变量和启动程序,在这个文件中的设置会对所有的用户生效
当有用户登录系统时,该文件会被执行,并从/etc/profile.d目录的配置文件中查找shell设置。
在profile文件中添加环境变量:
export HOST = linux
导出关键字 变量名(一般大写) 变量值
一个变量名可以对应多个变量值,多个变量值需要使用:进行分隔。
添加环境变量后,需要重新登录才能生效,也可以使用source命令强制立即生效:source /etc/profile.用户级别的该文件一般都在用户的家目录下,以.开头的隐藏文件形式存在,修改用户级的文件只对该用户生效,所以可设置自己的一些环境变量。 只要有用户登录系统,该文件就会被执行
(2)./etc/bash.bashrc
bash.bashrc文件是为bash shell(Linux下有很多种解释器,sh, zsh …)设定的配置文件, 这个文件主要保存个人的一些个性化设置,如命令别名、路径等。每次修改.bashrc后,使用 source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。和profile文件一样,etc下的为全局配置,用户家目录下为个人配置,也是以点开头的隐藏文件,该文件一般是新开一个shell终端里面的设置就会生效。(Linux对这两个文件的执行以及用户家目录的文件执行会有个顺序,需要了解的可以自行查找资料)
5. 一些总结
此文件涉及系统的环境,即环境变量相关。这里的修改会对所有用户起作用。/etc/profile会首先执行/etc/profile.d/目录下的所有*.sh文件。
(1)Linux是一个多用户操作系统。用户登录或切换(即Login shell 启动)时都有一个专用的运行环境,但首先执行 /etc/profile 。
(2)在 /etc/profile 文件中设置的变量是全局变量。而 .bashrc文件(在用户的家目录下)则只对当前用户有用。/.bashrc、/.bash_file 是当前用户目录下的配置信息。修改后用 source 命令更新。
(3)操作环境变量:(在profile文件添加或修改的内容需要注销系统才能生效。同名的环境变量,后写入的起作用)
- 在文件末尾添加环境变量(引号可省略):
"NAME=\<name>" - 添加一个customer.sh文本文件到 /etc/profile.d/目录
- 写入环境变量:export PATH=$PATH:/opt/lamp/mysql/bin
- 立即生效:source /etc/profile(下一次登陆也会生效)
(4)常见的环境变量:(最好通过在/etc/profile.d/路径下新建脚本,修改环境变量)
PATH: 预设可执行文件或命令的搜索路径。env命令显示所有的环境变量 。环境变量以" : "分开。环境变量名前" $ "符号表示该变量本次定义之前的值。
- USER: 用户登录时使用的用户名。
- HOME:当前用户主目录
- SHELL:是指当前用户用的是哪种Shell。set命令显示所有本地定义的Shell变量。
- LOGNAME:指当前用户的登录名。其值为$USER。
- HOSTNAME:所使用的主机名。供应用程序使用。
(5)使环境变量生效:source /etc/profile,执行一下文件。但不能用 sh /etc/profile。sh 是在子 shell 进程中执行的,即使PATH改变了也不会反应到当前环境中。而 source 是在当前 shell 进程中执行的,所以我们能看到PATH的改变。
(6)export 相当于导出变量。" = "赋值符号定义的变量只在当前shell中可用,外部(子shell中)使用时,定义时需要用export A=“xxx”,或在使用时 使用export A。 如果希望下载软件后不加入路径就能启动该程序,要把可执行程序的路径加入 PATH 中。
参考链接:
https://blog.csdn.net/Andy86666/article/details/125696742
本文详细介绍了在Ubuntu系统中如何添加环境变量,推荐在/etc/profile.d/下创建.sh文件来设置。讨论了PATH环境变量的重要性,以及环境变量配置为何放在/etc/profile.d目录下以避免版本更新导致的配置丢失。还解释了source命令的作用,以及/etc/profile和/etc/bash.bashrc的区别。总结了Linux环境下关于环境变量管理的关键点,包括全局与局部变量的区别、环境变量的生效方式和常见环境变量的用途。

1万+

被折叠的 条评论
为什么被折叠?



