Linux 环境变量查看添加

90 阅读3分钟

环境变量

程序的执行都需要运行环境,这个环境由多个环境变量组成

1、环境变量分类
  • 生效范围分类

    系统环境变量:公共的,对全部的用户都生效

    用户环境变量:用户私有的,自定义的个性化设置,只对该用户生效

  • 生存周期分类

    永久环境变量:在环境变量脚本中配置

    临时环境变量:使用在shell中临时定义

2、环境变量命名:全大写
3、常用的指令
  • env

查看当前用户的全部环境变量

env | grep 环境变量名进行筛选

echo $环境变量名 输出环境变量的值

4、常用的环境变量
  • PATH

    可执行程序的搜索目录,可执行程序:Linux系统命令,用户的应用程序

  • LANG

    Linux系统的语言、地区、字符集

  • HOSTNAME

    服务器的主机名

  • SHELL

    用户当前使用的Shell解析器

  • HISTSIZE

    保存历史命令的数目

  • USER

    当前登录用户的用户名

  • PWD

    当前的工作目录

  • LD_LIBRARY_PATH

    C/C++语言动态链接库文件搜索的目录

  • CLASSPATH

    JAVA语言库文件搜索的目录

5、设置环境变量
变量名=‘值’
export 变量名

如果环境变量的值没有空格等特殊符号,可以不用单引号包含

export 变量名=‘值’

采用export设置的环境变量,在退出Shell后就会失效;在登陆的脚本文件中配置才会永久有效

1)系统环境变量

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

/etc/profile

用户登录时候,会执行上述文件,不建议在上述文件中设置系统环境变量

/etc/profile.d目录中添加环境变量脚本(推荐)

/etc/profile在每次启动时会执行 /etc/profile.d下的全部脚本文件。后者容易维护,想删除环境变量直接删除对应文件就行

vim var.sh

export CC=dd

#退出重新登录
echo $CC #dd

/etc/bashrc

2)用户环境变量

用户环境变量只对当前用户生效,设置用户环境变量的方法

.bash_profile(推荐首选)

当用户登录时执行,每个用户都可以使用该文件来配置自己的环境变量

.bashrc

当用户登录时以及每次打开新的SHELL时该文件都将被读取,不推荐在里面配置用户专用的环境变量,每开一个SHELL,该文件都会被读取一次,效率肯定受影响

.bash_logout

当每次退出系统时执行该文件

bash_history

保存了当前用户使用过的历史命令

6、环境变量脚本文件的执行顺序

执行顺序如下:

`/etc/profile -> /etc/profile.d -> /etc/bashrc -> 用户的.bash_profile -> 用户的.bashrc`

同名的环境变量,如果在多个脚本文件中有配置,以最后执行的脚本中的配置为准

7、环境变量的生效

① 在Shell下,用export设置的环境变量对当前的Shell立即生效,Shell推出后失效

② 在脚本文件中设置的环境变量不会立即生效,退出shell后重新登录时才生效,或者使用source命令让其立即生效

8、★★★应用建议

系统环境变量在/etc/profile.d中配置

用户环境变量在用户的bash_profile中配置

9、重要环境变量详解
1)PATH 环境变量

可执行程序的搜索目录,可执行程序:Linux系统命令,用户的应用程序。

如果可执行程序的目录不在PATH指定的目录中,执行时需要指定目录

① PATH环境变量存放的是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录。

export PATH=目录1:目录2:目录3:....:.

② PATH缺省包含了Linux系统命令所在的目录(/usr/local/bin:/usr/bin:/usr/ocal/sbin:/usr/sbin ),如果不包含这些目录,Linux的常用命令也无法执行(要输入绝对路径才能执行)。

③ 在用户的.bash_profile文件中,会对PATH进行扩充,如下:

export PATH=$PATH:$HOME/bin

④ 如果PATH变量中没有包含圆点.,执行当前目录下的程序需要加./或使用绝对路径。

2)LANG 环境变量

LANG环境变量存放的是Linux系统的语言、地区、字符集

不需手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对LANG的设置

3)LD_LIBRARY_PATH环境变量

C/C++语言动态链接库文件搜索的目录

LD_IBRARY_PATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同

4)CLASSPATH环境变量

JAVA语言库文件搜索的目录

CLASSPATH环境变量存放的也是目录列表,目录之间用冒号:分隔,最后的圆点.表示当前目录,与PATH的格式相同