环境变量的含义

程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的

环境变量分类

环境变量的分类

  • 按生效的范围分类
    • 系统环境变量:公共的,对全部用户生效
    • 用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效
  • 按生存周期分类
    • 永久环境变量:在环境变量脚本中配置,用户每次登录时会自动执行这些脚本,相当于永久生效
    • 临时环境变量:使用时在shell中临时定义,退出shell后失效

Linux环境变量

Linux环境变量也成为Shell环境变量,习惯上使用大写字母,例如PATH、HOSTNAME、LANG

常用的环境变量

查看环境变量

1
env

使用env命令展示当前用户全部的环境变量

1
echo $PATH

使用echo $变量名 展示指定环境变量

常用的环境变量

  • PATH

    可执行程序的搜索目录,可执行程序包括系统命令和用户的应用程序

  • LD_LIBRARY_PATH

    C/C++语言动态链接库的搜索目录,需要C/C++程序员手动设置

设置环境变量

临时环境变量

1
export MYSITE='ciiki.eu.org'

如果环境变量值无空格或特殊字符,单引号可省略。使用export设置的环境变量在退出shell后失效

系统环境变量

  • 将设置环境变量命令写入/etc/profile(不建议)
  • 将设置环境变量命令写入/etc/bashrc(不建议)
  • 在/etc/profile.d/下新建*.sh,写入*.sh(文件名随意,建议)

用户环境变量

  • 将设置环境变量命令写入.bashrc(不建议)
  • 将设置环境变量命令写入.bash_profile(建议)

环境变量执行顺序

1
/etc/profile->/etc/profile.d/*.sh->/etc/bashrc->用户的.bash_profile->用户的.bashrc

同名环境变量以最后执行的配置为准

重要的环境变量

PATH环境变量

可执行程序的搜索目录

  • PATH环境变量存放的是目录列表,目录之间使用冒号:分隔,最后的原点代表当前目录。

    export PATH=目录一:目录二:...目录n:.

  • PATH默认为
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

  • 在.bash_profile里扩充PATH

    export PATH=$PATH:可执行文件路径一:可执行文件路径二

    $PATH代表载入已有环境变量

LD_LIBRARY_PATH环境变量

export LD_LIBRARY_PATH=目录一:目录二:...目录n

http代理

1
2
3
4
export http_proxy=http://172.30.16.1:1082
export https_proxy=http://172.30.16.1:1082

export ALL_PROXY=socks5://127.0.0.1:1080

取消代理

1
2
3
4
unset http_proxy
unset https_proxy

unset ALL_PROXY

经验之谈

虽然设置环境变量方法多种,为了便于维护,系统环境变量设置在/etc/profile.d/,用户环境变量设置在.bash_profile中,遵守建议就好了