目录

一、 环境变量概念

1、环境变量的含义

2、环境变量的分类

3、Linux环境变量

二、常用的环境变量

1、查看环境变量

1)env命令:查看当前用户全部的环境变量。

2)echo命令:查看当前用户全部的环境变量,符号$不能缺少。

2、常用环境变量

1)PATH

2)LANG

3)HOSTNAME

4)SHELL

5)HISTSIZE

6)USER

7)HOME

8)PWD

9)LD_LIBRARY_PATH

10)CLASSPATH

三、设置环境变量

1、系统环境变量

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

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

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

2、用户环境变量

1).bash_profile(推荐首选)

2).bashrc

3).bash_logout

4).bash_history

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

四、重要环境变量的详解

1、PATH环境变量

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

2)PATH缺省包含了Linux系统命令所在的目录

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

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

2、LANG环境变量

3、LD_LIBRARY_PATH环境变量

4、CLASSPATH

五、环境变量的生效

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

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

六、应用经验

七、版权声明


一、 环境变量概念

1、环境变量的含义

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

2、环境变量的分类

1)按生效的范围分类。

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

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

2)按生存周期分类。

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

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

3、Linux环境变量

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

二、常用的环境变量

1、查看环境变量

1)env命令:查看当前用户全部的环境变量。

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

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 ; doif [ -r "$i" ]; thenif [ "${-#*i}" != "$-" ]; then. "$i"else. "$i" >/dev/nullfifi
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)
作者:码农有道

---------------------------------------------------------以下无正文------------------------------------------------------

注:仅供学习,记录问题和参考,共勉!

参考文章:

1、CentOS7设置环境变量_C语言实战技术的博客-CSDN博客

2、centos设置环境变量三种方式_嘻嘻哈哈111111的博客-CSDN博客_centos 修改环境变量

3、linux中怎么修改path环境变量,linux中修改PATH环境变量_Jame Louis的博客-CSDN博客

centos7环境变量设置相关推荐

  1. Linux环境变量设置

    linux环境变量设置图解,Linux环境变量设置 linux环境变量设置图解 一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成 ...

  2. ubuntu系统php环境变量设置,Ubuntu系统环境变量详解

    使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题 ...

  3. 1.2 JDK安装与环境变量设置

    我们会以Java语言来进行脚本编写,所以需要进行JDK安装以及必要的环境变量设置.本书会使用JDK 8的版本,而不会使用JDK 9(太新的有的软件不兼容). 可以直接取Oracle官网选择相应的JDK ...

  4. ubuntu18.04.4 环境变量设置 export path

    ubuntu18.04.4 环境变量设置 export path 1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设 ...

  5. jar java classpath_win7中java编程工具安装 java环境变量设置

    win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...

  6. java环境变量设置

    一,java环境变量设置 - 精简版 1.右键打开我的电脑->属性->高级->环境变量 2.新建系统变量JAVA_HOME和CLASSPATH 变量名(N):JAVA_HOME  变 ...

  7. Linux环境变量设置中配置文件分析(/etc/profile,~/.bashrc等)(转)

    说明:在研究中发现,对于不同版本的Linux系统有着不同的文件,但是总的入口是不变的/etc/profile,下面只是展示加载顺序的研究过程,所以会有些系统没有这个文件等问题. 一.配置文件与作用域: ...

  8. JDK1.6安装与环境变量设置详细图解

    JDK1.6安装图解与环境变量设置为初学者详细介绍了JDK从下载到安装,整个开发伊始的那些事究竟是如何呢?让我们开始吧. 一.JDK1.6安装图解之JDK1.6的下载 JDK现在最新版本是JDK1.6 ...

  9. Linux下环境变量设置

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

最新文章

  1. 烟台大学计算机专业录取分数线,2017烟台大学录取分数线排行榜
  2. centos6 升级gcc / 无法识别的命令行选项“-std=gnu++1y”的解决办法
  3. 取消计算机关机设置,旧驱动程序教您如何设置和取消计算机的自动关机命令
  4. 为什么说区块链是具有革命性意义的?
  5. _Default同时存在于两个dll文件中的解决办法
  6. 关于文件上传,我要向struts提点意见
  7. Win2008 R2 VDI动手实验系列之三:远程桌面会话主机配置
  8. php如何进行微信支付宝,php实现微信和支付宝支付的示例代码
  9. 地图导航软件测试大乐,敢问路在何方?四款手机地图软件横向测评!
  10. 冰点还原无法修改计算机时间,安装冰点还原后无法更改系统时间怎么办
  11. 谷尼国际软件-企业竞争情报系统
  12. 知乎页面颜色个性化修改
  13. Vue简单快速上手 idea版
  14. 近红外超扫描 | 群际冲突会影响脑间同步
  15. python数据爬取、分析与内容审核基于PaddlePaddle
  16. Spring Boot+JSP
  17. Win11 JDK 环境变量配置(详细)
  18. CSI SAP2000 v17.2.0.1140 1CD结构有限元分析
  19. 走吧,向着未知的世界
  20. 盘点2010年IT业界十大囧事 iPhone居首

热门文章

  1. TypeError: slice indices must be integers or None or have an __index__ method
  2. MATLAB-GUI-CALLBACK用法大全
  3. CSDN更换博客皮肤教程
  4. mssql查询括号前的数据及括号中的数据
  5. c语言外快项目,赚外快
  6. 华为2018年校园招聘机试题
  7. 运放积分器为什么要在电容两端并联一个电阻,阻值怎么计算
  8. 2023最新仿小鸟云主机服务器IDC网站源码+支持WAP响应式
  9. 手机在线抓娃娃:600亿的「直播+物联网」爆发市场,会有你的份吗?
  10. 3D Tiles介绍(一)