• Linux环境变量详解


    1. 环境变量的概念

    不同的程序的执行需要不同的运行环境,这个环境就成为环境变量。

    1.1 环境变量的分类

    1. 按生效的范围分类

    • 系统环境变量: 公共的,对系统全部用户都生效;
    • 用户环境变量: 用户私有的、自定义的个性化设置,只对该用户生效;

    2.按生存周期分类

    • 永久环境变量: 在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效;
    • 临时环境变量: 使用时在Shell中临时定义,退出Shell后失效;

    2. 常用的环境变量

    2.1 变量的查看

    env     # 显示当前用户的变量
    set     # 显示当前shell的变量,包括当前用户的变量
    export  # 显示当前导出成用户变量的shell变量
    
    • 1
    • 2
    • 3

    输出内容较多时,可以配合grep命令进行筛选,以便查看。也可以使用echo 变量名查看相应变量。

    2.2 常用变量

    1. HOME:用户的家目录;
    2. HOSTNAME:服务器的主机名;
    3. SHELL:用户当前使用的Shell解析器;
    4. HISTSIZE:保存历史命令的数目;
    5. USER:当前登录用户的用户名;
    6. PWD:当前工作目录;
    7. PYTHONPATH:Python导入包的路径,内容是以冒号分隔的路径列表;
    8. C_INCLUDE_PATH:C语言的头文件路径,内容是以冒号分隔的路径列表;
    9. CPLUS_INCLUDE_PATH:CPP的头文件路径,内容是以冒号分隔的路径列表;
    10. LD_LIBRARY_PATH:用于指定动态链接库(.so文件)的路径,其内容是以冒号分隔的路径列表,非系统默认;
    11. PATH:可执行文件(命令)的存储路径。路径与路径之间用:分隔。当某个可执行文件同时出现在多个路径中时,会选择从左到右数第一个路径中的执行;
    12. JAVA_HOME:jdk的安装目录;
    13. CLASSPATH:存放Java导入类的路径,内容是以冒号分隔的路径列表,非系统默认;
    14. LANG:LANG环境变量存放的是Linux系统的语言、地区、字符集,它不需要系统管理员手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对LANG的设置。

    3. 环境变量的设置

    可以看看文章:[Shell详解-2]:变量、默认变量、数组

    3.1 命令格式

    变量名=值
    export 变量名
    或者
    export 变量名=值
    
    # 也可以用 declare命令,具体看上面推荐的文章。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意: 通过命令行设置的环境变量只在当前bash及其子bash中有效,在退出Shell后就会失效,下次登录时需要重新设置。如果希望环境变量永久生效,需要在文件中配置系统变量或用户变量。

    无论是修改系统变量或是用户变量,在修改后都需要使用source 文件名或者. 文件名或者重启Shell的方式使修改生效。

    3.2 设置系统环境变量

    系统环境变量对全部的用户生效,设置系统环境变量有三种方法。

    方法1: 在/etc/profile文件中设置
    用户登录时会自动执行/etc/profile文件中设置系统的环境变量,每打开一个新的Shell时都会被执行一次,打开子bash不会被执行

    方法2:在/etc/profile.d目录中增加环境变量脚本文件
    /etc/profile在每次启动时会执行 /etc/profile.d 下全部的脚本文件。 /etc/profile.d/etc/profile好维护,不想要什么变量直接删除 /etc/profile.d下对应的 shell 脚本即可。

    方法3:在/etc/bashrc文件中设置环境变量
    该文件配置的环境变量将会影响全部用户的bash shell。在Ubuntu中可能为bash.bashrc

    3.3 修改用户环境变量

    用户环境变量只对当前用户生效,设置用户环境变量也有多种方法。以下三个文件都位于用户家目录。

    方法1: 修改.bash_profile
    每打开一个新的Shell时都会被执行一次,打开子bash不会被执行,每个用户都可以使用该文件来配置专属于自己的环境变量。在Ubuntu中可能为.profile

    方法2: 修改.bashrc
    当用户登录以及每次打开新的Shell时该文件都将被执行,打开子bash也会被执行。

    方法3:修改.bash_logout
    每次退出系统或退出bash时系统会执行该文件。

    注意: 如果在家目录找不到这三个文件,可以去/etc/skel目录复制一份。/etc/skel目录是存放新用户配置文件的目录,当创建一个新用户的时候会将此目录下的文件复制到新用户目录下,可以理解为创建新用户时使用的模板.。

  • 相关阅读:
    Hive——操作数据库&创建修改表(DDL数据定义)
    微信授权登录功能实现
    程序员如何选择职业赛道?
    自动化测试面试题
    Ansible 多机自动化工具 初学笔记
    18.1 Socket 原生套接字抓包
    【MySQL查缺补漏学习】六、MySQL中使用JOIN小结
    Linux基本操作思维导图(五)
    ZYNQ搭建HP总线从DDR进行PL与PS交互
    代码随想录刷题| 多重背包理论基础、背包问题的总结
  • 原文地址:https://blog.csdn.net/weixin_52341477/article/details/127740632