Linux环境变量详解

1. 环境变量的概念

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

1.1 环境变量的分类

1. 按生效的范围分类

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

2.按生存周期分类

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

2. 常用的环境变量

2.1 变量的查看

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

输出内容较多时,可以配合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命令,具体看上面推荐的文章。

注意: 通过命令行设置的环境变量只在当前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目录是存放新用户配置文件的目录,当创建一个新用户的时候会将此目录下的文件复制到新用户目录下,可以理解为创建新用户时使用的模板.。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值