ubuntu添加环境变量

本文详细介绍了在Ubuntu系统中如何添加环境变量,推荐在/etc/profile.d/下创建.sh文件来设置。讨论了PATH环境变量的重要性,以及环境变量配置为何放在/etc/profile.d目录下以避免版本更新导致的配置丢失。还解释了source命令的作用,以及/etc/profile和/etc/bash.bashrc的区别。总结了Linux环境下关于环境变量管理的关键点,包括全局与局部变量的区别、环境变量的生效方式和常见环境变量的用途。

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

https://blog.csdn.net/qq_36412526/article/details/112653534?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-112653534-blog-125696742.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.1&utm_relevant_index=3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值