一、环境变量的概念

1、环境变量的含义

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

2、环境变量的分类

1)按生效的范围分类。

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

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

2)按生存周期分类。

永久环境变量:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。

临时环境变量:使用时在Shell中临时定义,退出Shell后失效。

3、Linux环境变量

Linux环境变量也称之为Shell环境量变,以下划线和字母打头,由下划线、字母(区分大小写)和数字组成,习惯上使用大写字母,例如PATH、HOSTNAME、LANG等。

二、常用的环境变量

1、查看环境变量

1)env命令

在Shell下,用env命令查看当前用户全部的环境变量。

上图只截取了部分环境变量,并非全部。

用env命令的时候,满屏显示了很多环境变量,不方便查看,可以用grep筛选。

env|grep 环境变量名

例如查看环境变量名中包含PATH的环境变量。

env|grep PATH

2)echo命令

echo $环境变量名

注意,符号$不能缺少,这是语法规定。

2、常用的环境变量

1)PATH

可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序,PATH变量的具体用法本文后面的章节中有详细的介绍。

2)LANG

Linux系统的语言、地区、字符集,LANG变量的具体用法本文后面的章节中有详细的介绍。

3)HOSTNAME

服务器的主机名。

4)SHELL

用户当前使用的Shell解析器。

5)HISTSIZE

保存历史命令的数目。

6)USER

当前登录用户的用户名。

7)HOME

当前登录用户的主目录。

8)PWD

当前工作目录。

9)LD_LIBRARY_PATH

C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。

10)CLASSPATH

JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要,具体用法本文后面的章节中有详细的介绍。

三、设置环境量

变量名='值'

export 变量名

export 变量名='值'

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

示例:

export ORACLE_HOME=/oracle/home

export ORACLE_BASE=/oracle/base

export ORACLE_SID=snorcl11g

export NLS_LANG='Simplified Chinese_China.ZHS16GBK'

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:.

采用export设置的环境变量,在退出Shell后就会失效,下次登录时需要重新设置。如果希望环境变量永久生效,需要在登录脚本文件中配置。

1、系统环境变量

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

1)在/etc/profile文件中设置。

用户登录时执行/etc/profile文件中设置系统的环境变量。但是,Linux不建议在/etc/profile文件中设置系统环境变量。

2)在/etc/profile.d目录中增加环境变量脚本文件,这是Linux推荐的方法。

/etc/profile在每次启动时会执行/etc/profile.d下全部的脚本文件。/etc/profile.d比/etc/profile好维护,不想要什么变量直接删除/etc/profile.d下对应的 shell 脚本即可。

/etc/profile.d目录下有很多脚本文件,例如:

在以上示例中,/etc/profile.d目录中的oracle.sh是Oracle数据库的环境变量配置文件,内容如下:

3)在/etc/bashrc文件中设置环境变量。

该文件配置的环境变量将会影响全部用户使用的bash shell。但是,Linux也不建议在/etc/bashrc文件中设置系统环境变量。

2、用户环境变量

用户环境变量只对当前用户生效,设置用户环境变量也有多种方法。

在用户的主目录,有几个特别的文件,用ls是看不见的,用 ls .bash_* 可以看见。

1).bash_profile(推荐首选)

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

2).bashrc

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

3).bash_logout

当每次退出系统(退出bash shell)时执行该文件。

4).bash_history

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

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

环境变量脚本文件的执行顺序如下:

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

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

还有一个问题需要注意,在/etc/profile中执行了/etc/profile.d的脚本,代码如下:

for i in /etc/profile.d/*.sh ; do

if [ -r "$i" ]; then

if [ "${-#*i}" != "$-" ]; then

. "$i"

else

. "$i" >/dev/null

fi

fi

done

所以,/etc/profile.d和/etc/profile的执行顺序还要看代码怎么写。

四、重要环境变量的详解

1、PATH环境变量

可执行程序的搜索目录,可执行程序包括Linux系统命令和用户的应用程序。如果可执行程序的目录不在PATH指定的目录中,执行时需要指定目录。

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

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

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

示例:

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

export PATH=$PATH:$HOME/bin

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

示例:

2、LANG环境变量

LANG环境变量存放的是Linux系统的语言、地区、字符集,它不需要系统管理员手工设置,/etc/profile会调用/etc/profile.d/lang.sh脚本完成对PATH的设置。

CentOS6.x 字符集配置文件在/etc/syscconfig/i18n文件中。

CentOS7.x 字符集配置文件在/etc/locale.conf文件中,内容如下:

3、LD_LIBRARY_PATH环境变量

C/C++语言动态链接库文件搜索的目录,它不是Linux缺省的环境变量,但对C/C++程序员来说非常重要。

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

export LD_LIBRARY_PATH=目录1:目录2:目录3:......目录n:.

4、CLASSPATH

JAVA语言库文件搜索的目录,它也不是Linux缺省的环境变量,但对JAVA程序员来说非常重要。

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

五、环境变量的生效

1)在Shell下,用export设置的环境变量对当前Shell立即生效,Shell退出后失效。

2)在脚本文件中设置的环境变量不会立即生效,退出Shell后重新登录时才生效,或者用source命令让它立即生效,例如:

source /etc/profile

六、应用经验

虽然设置环境变量的方法有多种,但是建议系统环境变量建议在/etc/profile.d目录中配置,用户环境变量在用户的.bash_profile中配置,不建议在其它脚本文件中配置环境变,会增加运维的麻烦,容易出错。

七、版权声明

C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。

来源:C语言技术网(www.freecplus.net)

作者:码农有道

如果文章有错别字,或者内容有错误,或其他的建议和意见,请您留言指正,非常感谢!!!

centos配置c语言环境变量,CentOS7设置环境变量相关推荐

  1. CentOS7设置环境变量

    文章目录 一.环境变量的概念 1.环境变量的含义 2.环境变量的分类 3.Linux环境变量 二.常用的环境变量 1.查看环境变量 2.常用的环境变量 三.设置环境量 1.系统环境变量 2.用户环境变 ...

  2. jupyter怎么配置python_python-如何在Jupyter noteb中设置环境变量

    python-如何在Jupyter noteb中设置环境变量 我有一个问题,Jupyter在bashrc文件中看不到env变量,有没有办法在jupyter中加载这些变量或向其中添加自定义变量? 8个解 ...

  3. mysql要怎么定义环境变量_mysql设置环境变量

    临时修改环境变量 我们可以使用set语法在运行时修改环境变量,修改global变量后,对修改之前的session没有影响,对修修改之后的session生效:修改session变量后,修改后,对于该se ...

  4. Linux设置环境变量小结:设置永久变量临时变量 全局变量局部变量

    1.总结背景 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行 ...

  5. linux取消设置环境变量,linux设置环境变量

    1.临时生效性(只对当前会话有效) export http_proxy="socks://192.168.0.1:10808" 2.永久生效性 (1)在/etc/profile尾部 ...

  6. python设置环境变量_Python设置环境变量

    python设置环境变量 We can set an environment variable in Python using os module. Python os module environ ...

  7. mysql查询结果赋予变量_MySQL设置会话变量:把查询结果赋值给变量

    MySQL设置变量有两种方式:会话变量和存储过程变量. 1.使用set或select直接赋值,变量名以@开头 例如:set @var=1; 可以在一个会话的任何地方声明,作用域是整个会话,称为用户变量 ...

  8. vim c语言环境变量,vim设置环境变量的具体方法

    大家知道vim如何进行环境变量设置吗?想要学习的朋友一起看一看小编给大家讲的vim环境变量设置的方法吧,希望大家能够得到帮助. 一.VIM配置文件 VIM的配置文件位于用户目录下,它是一个隐藏文件,我 ...

  9. c语言环境变量win10,设置系统环境变量是干嘛的?教你在哪设置win10环境变量

    首先我们要了解什么是环境变量,环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息.如果你为了想你的电脑快速地启动或运行某些应用或程序可以试着使用环境变量,在特殊 ...

最新文章

  1. Apache Spark 2.2中基于成本的优化器(CBO)(转载)
  2. 服务器删除网站文章,如何一次性删除wordpress所有文章
  3. boost::range_const_iterato相关的测试程序
  4. CRMEB后台前端文档说明
  5. 多线程与高并发(四):LockSupport,高频面试题,AQS源码,以及源码阅读方法论
  6. 初学swift笔记 枚举(七)
  7. C++/C 宏定义(define)中# ## 的含义(转)
  8. Windows下使用emacs+cscope
  9. 来给你的CSDN博客换个皮肤~
  10. Unity插件-HighlightingSystem(边缘光)
  11. 一个可以免费下载数据集的网站
  12. 三子棋游戏(C语言实现)
  13. linux uwf开放80端口,SELinux - osc_a3uwfsx7的个人空间 - OSCHINA - 中文开源技术交流社区...
  14. html5 五线谱,五线谱难学?5分钟完成五线谱入门
  15. 别再用mybatis了,mybatis-plus 这个神级工具一发入魂
  16. 【卡尔曼滤波】我所理解的卡尔曼滤波
  17. css 绘制心形图案
  18. 知识分享 | Oracle的官方ACE是个啥 and如何搞定一个ACE!
  19. :aria-checked_动手使用ARIA:首页元素和标准导航
  20. 手写体数字图像识别图像_手写识别调整笔画大小而不是图像

热门文章

  1. 年轻的程序员该如何规划自己的未来
  2. Leetcode--738. 单调递增的数字
  3. Leetcode--90. 子集Ⅱ
  4. Linux下载cfg命令,Linux安装详解-配置ks.cfg实现自动安装过程
  5. mybatis代码自动生成器_最近很火的文章自动生成器,python源码公开了(内附python代码)
  6. adnroid string拼接_Android开发中string.xml文件中字符串的拼接
  7. python爬取网页新闻_Python爬取新闻网数据
  8. 深度学习需要注意的11个方面
  9. linux系统下codeblocks控制台打印中文乱码
  10. Linux、Windows、RHEL操作系统镜像