centos配置c语言环境变量,CentOS7设置环境变量

一、环境变量的概念

1、环境变量的含义

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

2、环境变量的分类

1)按生效的范围分类。

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

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

2)按生存周期分类。

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

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

3、Linux环境变量

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

二、常用的环境变量

1、查看环境变量

1)env命令

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

5c9127533ed1a3b232433e9345bdc0a1.png

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

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

env|grep 环境变量名

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

env|grep PATH

08a238ed4122a3946a3491a2b68b2aa7.png

2)echo命令

echo $环境变量名

95396e1994220cda05a618afb4bc16ee.png

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

2、常用的环境变量

1)PATH

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

255dee54f595c730813417c45096c964.png

2)LANG

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

bde96a03898b0e176c0c454f9b356c5b.png

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目录下有很多脚本文件,例如:

0ebeeb0e8f333b16519176adeaefd4fe.png

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

3d1900fdfc529818d78576e9b54c36ac.png

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

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

2、用户环境变量

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

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

d37df533f9f4bc8644d0c852fe103413.png

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的常用命令也无法执行(要输入绝对路径才能执行)。

示例:

5e10881ac413636989f329c04a622996.png

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

export PATH=$PATH:$HOME/bin

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

示例:

0a86db4a301eb651a3a353cdec657afb.png

2、LANG环境变量

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

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

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

86fdbe9f5c51faa14dafc538070eeb74.png

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)

作者:码农有道

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 3.7.732位安装步骤_Python3.7安装pyaudio教程解析

本人笔记本电脑安装的是 python3.7, 64位操作系统,基于x64的处理器 因为 pyaudio 暂时不支持 python3.7 和 3.8,所以若需要安装 pyaudio 需要下载 whl 文件后再离线进行安装。 首先:下载安装 pyaudio 的 whl 文件 然后按下 ctrlf 输入关键字&…

java语言程序设计是c语言吗,浅析C语言和Java语言的异同.pdf

新一代信息技 m0 l0、… … … …浅析C语言和Java语言的异同张亚荣(通辽职业学院信息技术系,内蒙古通辽 028000)【摘 要l文章根据本人多年对c语言和Java语言教学过程中遇到的一些实际问题,诸如Java语言是不是c语言发展和衍生的产物等。基于此&#xff0c…

python搜论文_python论文

浅谈我眼中的 python 吴凡 摘要: 作为一门非常有潜力的高级语言, python 正在编程上发挥着越来越大的作用。这学期,通 过对 python 基础知识的学习,对 python 有了一定的认识。同时和已经学习的高级语言 C 和 C 有了一定的对比&am…

图书管理系统c语言报告调试分析,图书管理系统C语言程序设计实验分析报告.doc...

图书管理系统C语言程序设计实验分析报告C语言程序设计实验报告系别专业班级姓名学号时间实验题目 图书信息管理系统一、实验目的(1)熟练掌握C语言的相关操作。(2)综合应用C语言的知识,独立完成一个完整的系统,提高编程能力,体会软件程序的开发…

python open写入_Python3 open() 函数详解 读取文件写入文件追加文件二进制文件

Python3 open() 函数详解 读取文件写入文件追加文件二进制文件 open()函数的主要作用是打开文件并返回相应文件对象,使用文件对象可以对当前文件进行读取、写入、追加等操作,默认情况下"r"模式,文件不存在的话会发生OSError错误的。…

python deepcopy报错_python 字典对象赋值之deepcopy遭遇的问题及解决过程(lxml惹的祸)...

今天在写一段代码的时候,需要对字典进行传值操作。一般情况下字典a 字典b,意味着是传引用,b发送改变的情况下a也会发生改变。我的字典如下a{testcase: {attributes: {classname: testdemo, circles: 2, casecode: case02, description: u/u6…

c语言printf函数很长时间,C语言学习之printf()函数特别注意事项

https://m.toutiao.com/is/eLAopLB/做为C语言程序的输出函数printf()在使用时除了其正常的使用之外,还有特别要注意的地方:1、在函数里面,基本上只有三种字符,一种为格式字符,最常见的有%d(十进制整数),%f(浮点数形式)…

python的三种结构_Python控制结构,python

比较运算符 布尔类型 布尔值有两个:True和False 例1: a True a 例2: 2 3 提示: 1.不要把赋值(一个等号)与比较(两个等号)混淆。 2.Python是区分大小写的,所以True与tru…

机器人 知乎碧桂园_万亿负债之下,碧桂园启动人事调整

原标题:万亿负债之下,碧桂园启动人事调整疫情之下,各行各业如履薄冰。作为资金密集型和人员密集型行业,房地产业头顶本就悬着一把「房主不炒」的达摩克里斯之剑,现在又面临销售阻遏,受到的冲击尤其大&#…

python转换函数使用_Python Socket模块中的IP转换函数

Python Socket模块中包含一些有用IP转换函数,说明如下: socket.ntohl(x) // 类似于C语言的ntohl(x) 把32位正整数从网络序转换成主机字节序。 socket.ntohs(x) // 类似于C语言的ntohs(x) 把16位正整数从网络序转换成主机字节序。 socket.htonl(x) // 类似…

嵌入式 c语言 面试题,嵌入式面试题-持续更新

1.用预处理指令#define声明一个常数&#xff0c;用以表示1年中有多少秒(忽略闰年问题)。#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL //最后的UL代表无符号整数。2.写一个“标准”宏MIN&#xff0c;这个宏输入两个参数并返回较小的一个。#define MIN(x, y) ((x) < …

一部分 数据 迁移_从虚机到容器,知名架构师告诉你如何平滑进行业务迁移

【小宅按】近期&#xff0c;短视频产品“秒拍”完成了一个“大动作”——将原来部署在虚拟机上的主体业务迁移到华为云&#xff0c;同时将公司的技术体系承载在下一代虚拟技术容器&#xff08;Docker&#xff09;上。而这一系列动作是在业务不下线&#xff0c;用户无感知的前提…

cuda 实现sift gpu_为Keras提供GPU加速

在刚入坑机器学习时&#xff0c;书上所使用的算法&#xff08;回归、决策树等&#xff09;及实例较为简单&#xff0c;一般CPU&#xff08;中央处理器&#xff09;的计算能力均能胜任&#xff0c;从而快速实现。但若使用keras&#xff08;一种基于深度学习框架的高级应用接口&a…

caged系统pdf_建筑行业单词中英文对照教材.pdf

智能建筑系统 BUILDING AUTOMATION & CONTROL SYSTEMS监视和警报 13850-detection & alarm公用建筑设备 public building equipment登记设备 registration equipment固体废物处理设备 solid waste handling equipment给水和水处理设备 WATER SUPPLY & TREATMENT EQ…

枚举算法称硬币C语言,【算法系列之枚举】称硬币

题目有12枚硬币。其中有11枚真币和1枚假币。假币和真 币重量不同&#xff0c;但不知道假币比真币轻还是重。现在&#xff0c; 用一架天平称了这些币三次&#xff0c;告诉你称的结果&#xff0c;请你 找出假币并且确定假币是轻是重(数据保证一定能找 出来)。输入第一行是测试数据…

此 sqltransaction 已完成;它再也无法使用_win10笔记本自带office报错无法激活的解决方法...

激活win10笔记本电脑自带office出错怎么办?不少笔记本电脑在出厂的时候就自带windows 10操作系统并且将系统部署完成后就有许多软件集成当中&#xff0c;一般按正常步骤进行激活即可正常使用&#xff0c;不过有用户遇到一个问题&#xff0c;在激活自带office时报错了&#xff…

js br不生效_前端标注工具-AILabel.js

# AILabel.js背景&#xff1a;在前端开发过程中难免遇到针对图片的缩放平移&#xff1b;以及在图片上进行矢量数据、文本、标注的展示&#xff1b;如果你有上面的任何需求&#xff0c;恭喜你&#xff0c;找到组织了....<br/>在此背景下&#xff0c;AILabel.js出生了### 相…

android中的后退功能,如何在Android应用中实现一个返回键功能

如何在Android应用中实现一个返回键功能发布时间&#xff1a;2020-11-23 16:28:56来源&#xff1a;亿速云阅读&#xff1a;89作者&#xff1a;Leah今天就跟大家聊聊有关如何在Android应用中实现一个返回键功能&#xff0c;可能很多人都不太了解&#xff0c;为了让大家更加了解&…

bat 连续读取两行_Redis底层数据结构解析(BAT大厂必问)

Redis是一个key-value存储系统&#xff0c;现在在各种系统中的使用越来越多&#xff0c;大部分情况下是因为其高性能的特性&#xff0c;被当做缓存使用。Redis由于其丰富的数据结构也可以被应用到其他场景。Redis是一个K-V的非关系型数据库&#xff08;NoSQL&#xff09;&#…

smart原则_为什么现在少有人用德鲁克的SMART原则做目标管理了?

互联网平台充斥了各类成功学文章&#xff0c;但大多数鸡汤文只谈坚持&#xff0c;不谈策略。王健林定下一个亿的小目标被网友编成了各种段子&#xff0c;却极少有人去探究他实现目标的过程&#xff0c;用的什么方法。从企业规模来看&#xff0c;我们没有理由说王健林定下的目标…