Linux环境变量

一、什么是环境变量?

环境变量:环境变量顾名思义就是变量,它是可变的,它可以指代某一个具有特定名称的对象,特定对象的信息可能会被多个应用程序所使用的。一般是指在操作系统中用来指定操作系统运行环境的一些参数。

二、Linux下的环境变量

linux的变量分为环境变量和本地变量:
环境变量:是一种全局变量,存在所有的shell中,在登录的时候就有系统定义的环境变量了。linux的环境变量具有继承性,即shell会继承父shell的环境变量。
本地变量:当前shell中的变量,本地变量中包含环境变量。linux的本地变量的非环境变量不具备继承性。
在linux下面的变量按照生存周期可分为两类:
1、永久的:需要修改配置文件,变量永久的生效。
2、临时的:使用export命令声明即可,变量在关闭shell时失效。

三、常见的环境变量

PATH : 指定命令的搜索路径
在这里插入图片描述
HOME : 指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)
在这里插入图片描述
SHELL : 当前Shell,它的值通常是/bin/bash。
在这里插入图片描述
MAIL : 指当前的用户邮件存放的目录。
在这里插入图片描述
HISTSIZE :保存历史命令记录的条数 。
在这里插入图片描述
LANG/LANGUGE :和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
在这里插入图片描述

四、有了环境变量,如何操作环境变量?

1、echo:显示某个环境变量的值
2、export:设置一个新的环境变量
3、env:显示所有环境变量
4、unset:消除环境变量
5、set:显示本地定义的shell变量和环境变量

五、环境变量表

在这里插入图片描述
每一个进程都会生成类似这样的环境变量表,以NULL为结束标志,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串

六、使用第三方接口获取环境变量

1、命令行第三个参数char* env[]

#include<stdio.h>
int main(int argc,char* argv[],char* env[]){
int i = 0;
for(i = 0; env[i] != NULL; ++i){
printf("%s \n",env[i]);
}
return 0;
}

2、第三方环境变量environ获取

#include<stdio.h>
int main(int argc,char* argv[],char* env[]){
extern char** environ;
int i = 0;
for(i = 0; environ[i] != NULL; ++i){
printf("%s \n",environ[i]);
}
return 0;
}

3、系统库

getenv、putenv

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("%s\n",getenv(“PATH”));
return 0;
}

七、存放环境变量 的文件

我们知道,在linux中一切皆文件。所以环境变量也是存放在文件中的。linux中有很多记载环境变量的文件,他们是按照一定顺序被系统读入的。

1、/etc/profile:

这个文件是每个用户登录时都会运行的环境变量设置,当用户第一次登录时该文件被执行,并从/ect/profile.d目录的配置文件中搜索shell的设置。这个文件的作用就是当用户登录的时候用于获取系统的环境变量,只在登陆的时候获取一次。

2、/ect/bashrc:

在执行完/etc/profile内容后,如果用户运行bash shell的话,则就执行这个文件。当每次一个新的bash shell被打开时,该文件被读取。所以,如果想每打开一个bash都执行某些操作,就可以在这个文件里面设置。

3、~/.bash_profile:

每个用户都可以使用该文件输入自己专用的shell信息,当用户登录时,该文件仅仅被执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。单个用户对于此文件的修改只会影响到他以后的每一次登录。

5、~/.bashrc:

该文件只包含专用于你的bash信息,当你登录时以及每次打开新的shell时,该文件就会自动被读取。

6、~/.bash_logout:

每次在退出shell的时候会执行该文件。它提供了定制用户环境的功能,比如删除账号内的临时文件等命令就可以放在bash_logout文件内。如果这个文件不存在的话则就执行其他的命令。

总结:

这些文件都是为了为用户配置环境变量提供的。可以看到/ect/profile就相当于构造函数,~/.bash_logout就相当于析构函数。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值