Linux 环境变量

Linux的变量种类

按变量的生存周期来划分,Linux变量可分为两类:

  1. 永久的:需要修改配置文件,变量永久生效。
  2. 临时的:使用export命令声明即可,变量在关闭shell时失效。

设置环境变量

  1. /etc/profile文件中添加变量【对所有用户生效(永久的)】
    用vi在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

示例:
编辑/etc/profile文件,添加CLASSPATH变量

vi /etc/profile 
export CLASSPATH=$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行source /etc/profile不然只能在下次重进此用户时生效。

  1. 在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
    用vi在用户目录下的.bash_profile文件中增加变量,该变量仅会对当前用户有效,并且是“永久的”。

示例:
编辑xueying用户目录(/home/xueying)下的.bash_profile
vi /home/xueying/.bash_profile 添加如下内容:

vi /home/xueying/.bash_profile
export CLASSPATH=$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行source /home/xueying/.bash_profile不然只能在下次重进此用户时生效。

  1. 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
    在shell的命令行下直接使用[export 变量名=变量值] 定义变量。该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

查看环境变量

  1. 使用echo命令查看单个环境变量。例如:
    echo $PATH
  2. 使用env查看所有环境变量。例如:
    env
  3. 使用set查看所有本地定义的环境变量。

使用unset删除指定的环境变量

set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。

示例如下:

export TEST="Test..." #增加一个环境变量TEST
env | grep TEST #此命令有输入,证明环境变量TEST已经存在了 
TEST=Test... 
unset TEST #删除环境变量TEST 
env | grep TEST #此命令没有输出,证明环境变量TEST已经删除

常用的环境变量

PATH 决定了shell将到哪些目录中寻找命令或程序 
HOME 当前用户主目录 
HISTSIZE 历史记录数 
LOGNAME 当前用户的登录名 
HOSTNAME 指主机的名称 
SHELL 当前用户Shell类型 
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量 
MAIL 当前用户的邮件存放目录 
PS1 基本提示符,对于root用户是#,对于普通用户是$

扩展阅读一

set,env和export这三个命令都可以用来显示shell变量,其区别?

set 用来显示本地变量
env 用来显示环境变量
export 用来显示和设置环境变量

set 显示当前shell的变量,包括当前用户的变量
env 显示当前用户的变量
export 显示当前导出成用户变量的shell变量

每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量;但shell自己的变量对于不同的shell是不同的,比如BASH_ARGC,BASH等,这些变量只有set才会显示,是bash特有的;export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过export “导出”变成一个用户变量。

[root@linux ~]# aaa=bbb
[root@linux ~]# echo $aaa
bbb
[root@linux ~]# set | grep aaa
aaa=bbb
[root@linux ~]# env | grep aaa
[root@linux ~]# export aaa
[root@linux ~]# env | grep aaa
aaa=bbb

扩展阅读二

set、env、export — Linux中的环境变量命令
Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

  1. 什么是环境变量
    环境变量是一个具有特定名字的对象,它包含了一个或者多个应用程序将使用到的信息。通过使用环境变量,你可以很容易的修改一个牵涉到一个或多个应用程序的配置信息。
  2. 常见的环境变量
  • PATH 指定命令的搜索路径。
  • LIBRARY_PATH 用于在程序编译期间查找动态链接库时指定查找共享库的路径。

指定gcc编译需要链接动态链接库的目录。
设置libtest1和libtest2目录

# export LIBRARY_PATH=libtest1:libtest2:$LIBRARY_PATH
# gcc *.c -L./libtest1 -L./libtest2 -ltest1 -ltest2 // 编译时分别链接libtest1目录下的libtest1.so库与libtest2目录的libtest2.so库。
  • LD_LIBRARY_PATH 用于在程序运行期间查找动态链接库时指定除了系统默认路径(/usr/lib)之外的路径。

可执行文件运行程序之前执行:

# export LD_LIBRARY_PATH=libtest1:libtest2:$LD_LIBRARY_PATH
# ./program // 运行可执行程序

除此之外,还有下面一些常见环境变量。

HISTSIZE 保存历史命令记录的条数。
LOGNAME 当前用户的登录名。
HOSTNAME 主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
SHELL 当前用户用的是哪种Shell。
LANG/LANGUGE 和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
MAIL 当前用户的邮件存放目录。
PS1 基本提示符,对于root用户是#,对于普通用户是$。PS2是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt”。

扩展阅读三

关于 LIBRARY_PATH 和 LD_LIBRARY_PATH 的关系。

  1. Linux gcc编译链接时的动态库搜索路径
    GCC编译、链接生成可执行文件时,动态库的搜索路径顺序如下(注意不会递归性地在其子目录下搜索):
1. gcc编译、链接命令中的-L选项;
2. gcc的环境变量的LIBRARY_PATH(多个路径用冒号分割);
3. gcc默认动态库目录:/lib:/usr/lib:usr/lib64:/usr/local/lib。
  1. 执行二进制文件时的动态库搜索路径
    链接生成二进制可执行文件后,在运行程序加载动态库文件时,搜索的路径顺序如下:
1. 编译目标代码时指定的动态库搜索路径:用选项-Wl, rpath和include指定的动态库的搜索路径,比如gcc -Wl, -rpath, include -L. -ltest hello.c,在执行文件时会搜索路径`./include`2. 环境变量LD_LIBRARY_PATH(多个路径用冒号分割);
3./etc/ld.so.conf.d/ 目录下的配置文件指定的动态库绝对路径(通过ldconfig生效,一般是非root用户时使用);
4. gcc默认动态库目录:/lib:/usr/lib:usr/lib64:/usr/local/lib等。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值