Centos中的环境变量

环境变量的含义

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息,用来指定操作系统运行环境的一些参数。本质上就是一个变量,可以通过这个变量找到对应的程序,文件等。

环境变量的用途

  1. 查找相应的程序或文件(PATH)
  2. 查找动态库
  3. 保存特定的系统变量
  4. 工作路径(PWD)
  5. 用户信息(LOGNAME, HOME)
  6. 等等

环境变量的查看

  1. printenvenvsetexport查看环境变量
    [root@www ~]# env
    ...
    MAIL=/var/spool/mail/root
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    PWD=/root
    LANG=en_US.UTF-8
    HISTCONTROL=ignoredups
    SHLVL=1
    HOME=/root
    LOGNAME=root
    ...
  2. echo $环境变量名 查看指定的环境变量
    [root@www ~]# echo $PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  3. printenv 环境变量名 查看指定的环境变量
    [root@www ~]# printenv PATH
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

常用的环境变量

  1. PATH:指定可执行程序或者文件的路径
  2. HOME:指定用户的主工作目录
  3. LD_LIBRARY_PATH:指定C/C++动态链接库文件搜索的路径,Centos中默认没有
  4. C_INCLUDE_PATH, CPLUS_INCLUDE_PATH:指定C/C++的头文件搜索的路径,Centos中默认没有
  5. PWD:当前目录。
  6. SHELL:用户所用Shell的种类。
  7. HISTSIZE:保存历史命令记录的条数。
  8. HOSTNAME:主机的名称
  9. LOGNAME:当前用户的用户名。

环境变量的分类

  • 按生命周期分类:
    • 永久的环境变量:系统开机时设置的环境变量,或者用户登录时设置的环境变量
    • 临时的环境变量:在当前终端下声明的环境变量,退出终端后失效
  • 按作用域分类:
    • 系统环境变量:由系统或者管理员创建的全局变量,对所有用户生效
    • 用户环境变量:用户创建的,只对创建的用户生效

临时环境变量的设置

  1. export 变量名=值设置非路径形式的环境变量
    [root@www ~]# export ARCHER=DD
    [root@www ~]# printenv ARCHER
    DD
  2. 设置路径形式的环境变量
    • 创建新的路径形式的环境变量
      export DD=路径1:路径2:路径3 #分号隔开,这很重要,`=`号两边不能有空格
    • 修改路径形式的环境变量
      export PATH=$PATH:路径1:路径2 或 export PATH=路径1:路径2:$PATH #注意分号,千万别覆盖了,`=`号两边不能有空格

永久的环境变量

  1. 系统设置的环境变量一般都是永久的,千万别去改。
  2. 由用户创建的环境变量一般都是保存在文件当中,当系统启动时或者用户登录时生效。
  3. 只需要按照前面设置临时环境变量的方法,将命令写入配置文件当中就行。

配置文件

具有修改权限的用户 配置文件 作用域
root /etc/profile, /etc/bashrc, /etc/environment, /etc/profile.d/文件名 全局
root/普通用户 ~/.bashrc, ~/.bash_profile 当前用户
  • 注意对于/etc/profile.d/文件名,将命令写入/etc/profile.d/下新的文件中,文件名随便取,主要是因为当系统启动或者用户登录时,会执行/etc/profile文件,该文件会执行/etc/profile.d/下的所有脚本,这样做比修改/etc/profile好用。配置完成后,通过source 配置文件. 配置文件使其生效,如source ~/.bashrc. ~/.bashrcsource.将会影响本shell。
  • source命令是一个内置的shell命令,用于从当前shell会话中的文件读取和执行命令。source命令通常用于保留、更改当前shell中的环境变量。简而言之,source一个脚本,将会在当前shell中运行execute命令。.作用和source一致。
  • 本人常用的是:~/.bashrc

参考