• 【Ubuntu·系统·的Linux环境变量配置方法最全】


    概要

    在Linux环境中,配置环境变量是一种常见的操作,用于指定系统或用户环境中可执行程序的搜索路径。

    读取环境变量的方法

    在Linux中,可以使用以下两个命令来读取环境变量:

    export 命令:用于显示当前系统定义的所有环境变量。
    
    • 1
    export
    
    • 1

    在这里插入图片描述

    echo $PATH 命令:用于输出当前的 PATH 环境变量的值。

    echo $PATH
    
    • 1

    在这里插入图片描述

    这两个命令可以帮助你了解当前系统中定义的环境变量及其取值。
    下面以配置 MySQL 为例子

    Linux环境变量配置方法一:export PATH

    使用 export 命令直接修改 PATH 的值,配置 MySQL 进入环境变量的方法:

    export PATH=/home/uusama/mysql/bin:$PATH
    # 或者把PATH放在前面
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3

    注意事项:

    生效时间:立即生效
    生效期限:当前终端有效,窗口关闭后无效
    生效范围:仅对当前用户有效
    配置的环境变量中不要忘了加上原来的配置,即 $PATH 部分,避免覆盖原来配置
    
    • 1
    • 2
    • 3
    • 4

    Linux环境变量配置方法二:vim ~/.bashrc

    通过修改用户目录下的 ~/.bashrc 文件进行配置:

    vim ~/.bashrc
    # 在最后一行加上
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3

    注意事项:

    生效时间:使用相同的用户打开新的终端时生效,或者手动 source ~/.bashrc 生效
    生效期限:永久有效
    生效范围:仅对当前用户有效
    如果有后续的环境变量加载文件覆盖了 PATH 定义,则可能不生效
    
    • 1
    • 2
    • 3
    • 4

    Linux环境变量配置方法三:vim ~/.bash_profile

    类似于修改 ~/.bashrc 文件,也是在文件最后加上新的路径:

    vim ~/.bash_profile
    # 在最后一行加上
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3

    注意事项:

    生效时间:使用相同的用户打开新的终端时生效,或者手动 source ~/.bash_profile 生效
    生效期限:永久有效
    生效范围:仅对当前用户有效
    如果没有 ~/.bash_profile 文件,则可以编辑 ~/.profile 文件或者新建一个
    
    • 1
    • 2
    • 3
    • 4

    Linux环境变量配置方法四:vim /etc/bashrc

    修改系统配置,需要管理员权限(如 root)或者对该文件的写入权限:

    # 如果 /etc/bashrc 文件不可编辑,需要修改为可编辑
    sudo chmod u+w /etc/bashrc
    
    sudo vim /etc/bashrc
    
    # 在最后一行加上
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意事项:

    生效时间:新开终端生效,或者手动 source /etc/bashrc 生效
    生效期限:永久有效
    生效范围:对所有用户有效
    
    • 1
    • 2
    • 3

    Linux环境变量配置方法五:vim /etc/profile

    类似于修改 /etc/bashrc 文件,需要管理员权限或者对该文件的写入权限:

    # 如果 /etc/profile 文件不可编辑,需要修改为可编辑
    sudo chmod u+w /etc/profile
    sudo vim /etc/profile
    # 在最后一行加上
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意事项:

    生效时间:新开终端生效,或者手动 source /etc/profile 生效
    生效期限:永久有效
    生效范围:对所有用户有效
    
    • 1
    • 2
    • 3

    Linux环境变量配置方法六:vim /etc/environment

    修改系统环境配置文件,需要管理员权限或者对该文件的写入权限:

    # 如果 /etc/environment 文件不可编辑,需要修改为可编辑
    sudo chmod u+w /etc/environment
    
    sudo vim /etc/environment
    
    # 在最后一行加上
    export PATH=$PATH:/home/uusama/mysql/bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意事项:

    生效时间:新开终端生效,或者手动 source /etc/environment 生效
    生效期限:永久有效
    生效范围:对所有用户有效
    
    • 1
    • 2
    • 3

    Linux环境变量加载原理解析:

    在Linux系统中,环境变量的加载顺序影响着配置的优先级和生效顺序。以下是加载环境变量的主要原理:

    系统环境变量分类:
    系统级别: 例如 /etc/environment、/etc/profile、/etc/bash.bashrc。
    用户级别: 例如 /.bash_profile、/.profile、~/.bashrc。

    加载顺序测试方法:
    在不同的环境变量定义文件中,首行添加相同的变量(例如 UU_ORDER)并赋值为当前文件名称。
    观察通过 echo $UU_ORDER 查看变量值的变化,以推测加载顺序。

    推测的Linux环境变量加载顺序:
    /etc/environment
    /etc/profile
    /etc/bash.bashrc
    /etc/profile.d/test.sh
    ~/.profile
    ~/.bashrc
    系统会首先读取 /etc/environment 文件,然后按照上述顺序依次加载其他环境变量文件。在用户环境变量中,系统会先读取 ~/.bash_profile(或者 ~/.profile)文件,如果没有该文件,则读取 ~/.bash_login,然后根据这些文件中的内容再去读取 ~/.bashrc。

    这种加载顺序可以导致相同名称的环境变量定义被覆盖或者不生效。
    文件加载详解:
    /etc/profile 文件中加载 /etc/bash.bashrc 和 /etc/profile.d/ 目录下的 .sh 文件。

    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
    
    if [ -d /etc/profile.d ]; then
      for i in /etc/profile.d/*.sh; do
        if [ -r i ]; then
          .i
        fi
      done
      unset i
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    ~/.profile 文件中加载 ~/.bashrc。
    
    • 1
    if [ -n "BASH_VERSION" ]; then
      if [ -f "HOME/.bashrc" ]; then
        . "HOME/.bashrc"
      fi
    fi
    
    • 1
    • 2
    • 3
    • 4
    • 5

    小技巧

    自定义一个环境变量文件,例如 uusama.profile,并在 ~/.profile 后添加 source uusama.profile,实现自定义变量的全局可用性。
    使用 alias 命令定义命令别名,例如 alias rm=“rm -i”,并将其加入 ~/.profile,方便命令的快捷使用。

  • 相关阅读:
    一些与“区别“相关的知识点
    Ubuntu18虚拟机通过SSH连接嵌入式板&通过rcp传输文件到指定目录
    【C】指针初阶
    基于RSSI的室内wifi定位系统 计算机竞赛
    C++基本点
    手机路径、Windows路径知识及delphiXE跨设备APP自动下载和升级
    新手使用vue引入cesium
    给cmd控制台程序 套壳 美化
    0基础 三个月掌握C语言(11)
    【Flutter】2023 Google 开发者大会给 Fluter 带来了什么
  • 原文地址:https://blog.csdn.net/weixin_47869094/article/details/134426844