Ubuntu/linux系统环境变量配置详解

一 环境变量配置文件解释

/etc/profile

在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
*

/etc /environment

在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
*

~/.profile

在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
*

/etc/bashrc

为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
*

~/.bashrc

该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

  • ~/.bash_profile

    每个用户都可使用该文件输入专用于自己 使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc是交互式 non-login 方式进入 bash 运行的。通常二者设置大致相同,所以通常前者会调用后者。

  • ~./bash_login

    不推荐使用这个,这些不会影响图形界面。而且.bash_profile优先级比bash_login高。当它们存在时,登录shell启动时会读取它们。

  • ~/.bash_logout

    当每次退出系统(退出bash shell)时,执行该文件.

  • ~/.pam_environment

    用户级的环境变量设置文件。

    另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

二 查看环境变量

查看环境变量有三个命令

  • env
    env命令是environment的缩写,用于列出所有的环境变量,查看Ubuntu用户级环境变量
    printenv查看系统级环境变量
  • export
    单独使用export命令也可以像env列出所有的环境变量,不过export命令还有其他额外的功能
  • echo $PATH
    echo $PATH用于列出变量PATH的值,里面包含了已添加的目录

三 设置方式

设置环境变量通常有两种设置方式

3.1 把你的路径加入PATH

可以直接添加到环境变量PATH中。$PATH表示变量PATH的值,包含已有的目录

这种方法需要注意路径的顺序,如果遇到有同名的命令,那么PATH里面哪个目录先被查询,则那个目录下的命令就会被先执行

powershell 复制代码
# 加到PATH末尾
export PATH=$PATH:/path/to/your/dir

# 加到PATH开头
export PATH=/path/to/your/dir:$PATH

3.2 命名一个新的环境变量

也可以直接命名一个新的环境变量,用于其它程序引用

powershell 复制代码
export VAR_NAME=value

四 作用域

环境变量的作用域通常有三个

4.1 用于当前终端

打开一个终端,输入添加环境变量的语句

powershell 复制代码
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

终端所添加的环境变量是临时的,只适用于当前终端,关闭当前终端或在另一个终端中,添加的环境变量无效

4.2 用于当前用户

如果只需要添加的环境变量对当前用户有效,可以写入用户主目录下的.bashrc文件

powershell 复制代码
vim ~/.bashrc

添加语句

powershell 复制代码
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

注销或者重启可以使修改生效,如果要使添加的环境变量马上生效

powershell 复制代码
source ~/.bashrc
4.3 用于所有用户

要使环境变量对所有用户有效,可以修改profile文件

powershell 复制代码
sudo vim /etc/profile 

添加语句

powershell 复制代码
export CLASS_PATH=./JAVA_HOME/lib:$JAVA_HOME/jre/lib

注销或者重启可以使修改生效,如果要使添加的环境变量马上生效

powershell 复制代码
source /etc/profile
4.4 从文件中导入环境变量
powershell 复制代码
# 在Ubuntu系统中,可以将环境变量定义存储在单独的文件中,然后从该文件中导入环境变量。可以使用如下命令:
source /path/to/your/env/file

# 例如,以下命令将从/home/user/env.sh文件中导入所有定义的环境变量:
source /home/user/env.sh

在Ubuntu中,还可以将别名和函数定义保存在环境变量文件中,并从该文件中加载它们。

相关推荐
不是笨小孩i5 分钟前
开源AI图片处理工具HivisionIDPhotos安装与证件照制作指南
ubuntu
lihuhelihu1 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
零意@3 小时前
ubuntu切换不同版本的python
windows·python·ubuntu
饮啦冰美式6 小时前
22.04Ubuntu---ROS2使用rclcpp编写节点
linux·运维·ubuntu
wowocpp6 小时前
ubuntu 22.04 server 安装 和 初始化 LTS
linux·运维·ubuntu
wowocpp6 小时前
ubuntu 22.04 server 格式化 磁盘 为 ext4 并 自动挂载 LTS
服务器·数据库·ubuntu
Lign173146 小时前
ubuntu unrar解压 中文文件名异常问题解决
linux·运维·ubuntu
wowocpp14 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君14 小时前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别